Mosh - Screenshot

HowTo: Mosh – stabiler Ersatz für SSH auf Ubuntu

SSH ist eine sehr gute Möglichkeit, aus der Ferne auf die eigenen Rechner/Server zugreifen zu können, jedoch ist es nicht die flexibelste oder stabilste Variante. Mosh will hier Abhilfe schaffen und da ich es schon lange nutze, möchte ich euch die Vorteile zeigen und kurz beschreiben, wie schnell es installiert ist.

Mosh - Screenshot
Mosh – Screenshot

SSH nutzt TCP als Protokoll und erwatet bei jeder Änderung und Eingabe einen Handshake, der bestätigt, dass die übermittelten Daten verarbeitet wurden. Dadurch kommt es bei schlechten Verbindungen zu Wartezeiten, Abbrüchen der Verbindung und der Unfähigkeit, beim Wechsel eines Netzes, die Verbindung aufrecht zu erhalten.

Mosh kommt als Ersatz für SSH, der sich jedoch zur Aushandlung der Verbindung und der Authentifizierung, des bestehenden SSH-Servers bemächtigt und danach die Verbindung übernimmt. Mosh arbeitet über UDP und ist in der Lage ein Roaming zu realisieren, sprich Wechsel zwischen Netzwerken (vom mobil -> WLAN usw.) werden somit ohne Abbruch der Verbingung möglich. Ebenfalls können Verbindungen, die durch den Wechsel in den Stromsparmodus eines Notebooks mit SSH abgebrochen wurden, mit Mosh zu einem späteren Zeitpunkt einfach wieder weitergeführt werden.

Ihr seht also, Mosh ist flexibler und wird von mir daher bevorzugt. Entsprechende Android-Clients, die Mosh unterstützen gibt es ebenfalls, ich nutze hierzu:

[appbox googleplay com.sonelli.juicessh]

Was müsst ihr aber tun, damit Mosh auf eurem Ubunturechner oder Server genutzt werden kann?

Mosh installiert ihr durch den simplen Aufruf von: sudo apt-get install mosh

Voraussetzung ist, ihr habt einen SSH-Server laufen, sollte das nicht der Fall sein, könnt ihr vorher einen installieren: sudo apt-get install openssh-server

Mosh müsst ihr, wie oben beschrieben, natürlich auch auf dem Rechner installiert haben, von dem aus ihr zugreifen wollt, ist das aber geschehen, so könnt ihr, wie ihr das von SSH kennt, identisch auf den Zielrechner zugreifen: mosh user@servername.domain

Nutzt ihr für SSH einen Port, der abweichend vom Standardport 22 ist, könnt ihr den Port im Aufruf anhängen: mosh user@servername.domain:2222

Das ist auch schon das Hexenwerk und ich hoffe ich konnte euch damit weiterhelfen und eine flexiblere Art des Zugriffes präsentieren. Ich könnte nicht mehr ohne, weil ich notorisch dafür bekannt bin, zwischen Netzwerken zu springen, meiner Verbindungen schlicht zu vergessen und das Notebook zuzuklappen oder oder oder… 😉

tsocks Config Ubuntu

Apps mittels tsocks unter Debian und Ubuntu durch SSH tunneln

Die Sicherheit von Verbindungen ist nicht nur in öffentlichen WLANs wackelig, wer seine Verbindungen gerne über einen Server, der sich in der eigenen Aufsicht befindet, tunneln möchte, der sucht nach Lösungen. Eine dieser Lösungen möchte ich euch heute vorstellen: tsocks!

tsocks Config Ubuntu
tsocks Config Ubuntu

Habt ihr einen Server mit aktiviertem SSH Server? Im Zweifelsfall nutzt ihr SSH bereits um Verbindungen zu tunneln, eventuell sogar die Option, über SSH einen Socks Proxy zu erstellen. Nutzt man SSH nämlich mit folgendem Aufruf:

ssh -D 1234 benutzer@servername.domain

Kann man im Anschluss Programmen wie zum Beispiel Firefox (sofern sie es erlauben einen Proxy einzutragen), einen Socks Proxy auf localhost mit Port 1234 (in diesem Beispiel) zuweisen um die Verbindungen dann über den Zielserver ins Netz zu tunneln. Leider bleiben hier Anwendungen aussen vor, die keinen Proxy eintragen lassen. Möchte man nun keinen Systemweiten Proxy eintragen und vor allem wieder austragen, wenn man keinen Proxy nutzen möchte, dann kann man mit tsocks, eine etwas bequemere Variante nutzen, denn tsocks erstellt quasi einen Wrapper und erlaubt es einzelne Programme mit Proxynutzung zu starten. Dies bietet die wunderbare Möglichkeit nur bestimmte Anwendungen über einen Tunnel zu jagen oder gar unterschiedliche Tunnel zu nutzen.

Unter Ubuntu und Debian-Systemen ist tsocks in den Paketquellen vorhanden und kann über:

sudo apt-get install tsocks

installiert werden. Eine kurze Anpassung später – denn tsocks bindet auf die aktuell geltende IP – kann man die Konfiguration auf die eigenen Wünsche biegen.

sudo vi /etc/tsocks.conf

Die Einträge „server“ und „server-port“ kann man nach eignen Gusto anpassen, für den server empfiehlt sich die 127.0.0.1, als Port kann man nutzen, was man möchte, oder den Standardport von tsocks beibehalten (siehe Screenshot).

Nun startet man SSH und generiert einen Socks Proxy, der den zuvor beschriebene Port nutzt:

ssh -D 1080 benutzer@servername.domain

Nun kann man die gewünschten Anwendungen mit tsocks starten, zum Beispiel die Browser:

tsocks firefox

tsocks google-chrome

Generell kann man beinahe jede Anwendung mittels tsocks starten und nutzen, hierzu einfach tsocks gefolgt vom Programmnamen aufrufen, auch Parameter können wie gewohnt an die Anwendung übergeben werden.

So spart man sich Proxies in den Programmen einzutragen und kann Anwendungen nutzen, die gar keinen Proxy eintragen lassen. Ideal für öffentliche Netze, Urlaube und und und…

Viel Spaß damit und gerne weitersagen, denn eure Freunde freuen sich bestimmt über ein Mehr an Sicherheit!

Howto: Ubuntu Linux SSH Server mit Google Authenticator OTP absichern

Sicherheit ist gerade in der vernetzten Welt das A und O. Gestattet man nun per SSH Zugriff auf den eigenen PC oder einen Server, so sollte man diesen Zugang zusätzlich absichern, denn SSH verlockt gerne zum Bruteforce-Angriff.

Wie man seinen SSH-Zugang sichern kann, haben ich bereits im Artikel HowTo: Ubuntu Server SSH Zugang mit OTP absichern beschrieben, diesen will ich zum Anlass nehmen um ein „Update“ zu veröffentlichen, dass sich mit dem Google Authenticator beschäftigt. Google bietet nicht nur eine 2-Faktor Authentifizierung für die eigenen Dienste an, sondern auch als PAM Modul, welches man in alle Applikationen einbinden kann, die PAM Module unterstützen.

Die Google Authenticator App gibt es für Android, Blackberry OS und iOS, für Windows Phone stehen Drittanbieter-Apps zur Verfügung, die mit Google Authenticator nutzbar sind.

[appbox googleplay com.google.android.apps.authenticator2 screenshots]

Die jeweilige App solltet ihr euch auf euer Endgerät installieren, bevor es an die Installation des PAM Modules und die Konfiguration des SSH Servers geht.

Installation des PAM Moduls:

  • Der Google Authenticator befindet sich in den Ubuntu Quellen: sudo apt-get install libpam-google-authenticator
  • Fügt die Zeile „auth required pam_google_authenticator.so“ in die /etc/pam.d/sshd hinzu
  • In der /etc/ssh/sshd_config muss der Eintrag ChallengeResponseAuthentication auf Yes gesetzt werden

Benutzereinrichtung:

  • Mit dem aktuellen Benutzer führt ihr nun google-authenticator aus. Bedenkt dass die Einrichtung benutzerbezogen ist und für jeden Benutzer einzeln durchgeführt werden muss.

Google Authenticator SSH Ubuntu Server

  • Scannt den Barcode mit eurem Smartphone und sichert euch die „scratch codes“, denn diese können einmalig genutzt werden, solltet ihr euer Smartphone nicht zur Hand haben.
  • Die folgenden Fragen sollten nach bestem Wissen und Gewissen beantwortet werden: Zuerst lässt man die Konfigurationsdatei des Users schreiben (y), dann unterbindet man die mehrfache Nutzung eines Tokens (y), dann verzichtet man auf kürzere Synchronzeiten (n) und stellt sicher dass sowohl Server als auch Endgerät die indentische Zeit besitzen und schlussendlich aktiviert man das Limit dass nicht mehr als drei Loginversuche innerhalb von 30 Sekunden erlaubt sein sollen (y)
  • Nach einem Neustart des ssh-Dienstes solltet ihr beim Login mit eurer Passwortabfrage begrüsst werden, gefolgt von der Aufforderung den aktuellen Token einzugeben.

Dieser kleine Schritt bringt eine gehörige Portion an zusätzlicher Sicherheit mit sich, unterscheidet sich aber im Prinzip nicht von der Methode mittels OTP und opiekey, aus dem alten Artikel, da sich aber Google Authenticator zunehmender Beliebtheit erfreut, wollte ich euch natürlich zeigen wie man eine solche 2-Faktor Authentifizierung mit Ubuntu und dem Google Authenticator realisieren kann.

Für Anmerkungen und Fragen stehe ich euch gerne zur Verfügung, lasst einfach einen Kommentar da oder haut mich bei Google+ an.

 

Android Datenübertragung in öffentlichen WLANs verschlüsseln

Es ist noch nicht allzu lange her, da gab es ein riesen Theater darum, dass Google Anwendungen teilweise Daten unverschlüsselt überträgen. Das Problem wurde teilweise behoben und die bemängelten Google Anwendungen benutzen nun SSL zur Verschlüsselung, jedoch ist dieses Problem nicht Google exklusiv. Jeder der sich in einem ungesicherten WLAN befindet oder über einen WLAN Hotspot surft, ist potenziell gefährdet. Ein Angreifer kann problemlos an die übertragenen Daten gelangen und diese dann unter Umständen missbrauchen, wie es bei Googles Anwendungen möglich war. Es gibt viele Apps, die das in Android eingetragene Google Konto verwenden und sensible Daten wie Passwörter im Klartext durch die Luft schicken. Dem kann man nur entgegen steuern, indem man den gesamten Traffic einer Anwendung oder des ganzen Systems getunnelt über eine SSH- oder eine VPN- Verbindung laufen lässt. Das ist aber nicht immer einfach und oft wissen nur Leute, die sich wirklich damit auskennen, wie genau man so etwas unter Android macht.

Abhilfe schafft da ein Programm wie SSH Tunnel. Diese App ermöglicht es ganz bequem einen SSH Tunnel aufzubauen und den Datenverkehr einzelner Apps, oder des gesamten Android-Systems, umzuleiten. SSH Tunnel erlaubt es mehrere Profile anzulegen, welche alle unterschiedliche konfiguriert werden können. Man könnte theoretisch für jeden Hotspot einen anderen Proxy benutzen. 😉

SSH Tunnel Einstellungen

Die Konfiguration ist für jeden verständlich: Hostnamen und Port des Servers eingeben, auf dem ein SSH Deamon verfügbar ist. Benutzer und Passwort eingeben und eigentlich seid ihr dann auch schon fertig. Einfach Verbinden, und der Traffic geht sichere Wege. KeyFiles können natürlich auch verwendet werden (nur OpenSSH). Optional könnt ihr auch Port Forwarding betreiben, leider funktioniert das Ganze nur mit Root. Wollt ihr den ganzen Spaß nur für einzelne Anwendungen benutzen, muss zusätzlich noch iptables vorhanden sein.

Ein praktisches Feature ermöglicht es, den SSH Tunnel an WLAN Netze oder 2G/3G zu binden, so wird der SSH Tunnel nur aktiv, wenn ihr in einem speziellen WLAN seid.

Testet es selbst einmal und schreibt uns eure Erfahrungen!

 

[sws_blue_box box_size=“620″]Positiv:
[sws_ui_icon ui_theme=“ui-smoothness“ icon=“ui-icon-plus“] [/sws_ui_icon] Gelungene App, die ein großes Maß an Sicherheit in offenen WLANs und Hotspots garantiert.
[sws_ui_icon ui_theme=“ui-smoothness“ icon=“ui-icon-plus“] [/sws_ui_icon] Viele Einstellungsmöglichkeiten, sehr einfache Konfiguration und praktische Features.

Negativ:
[sws_ui_icon ui_theme=“ui-smoothness“ icon=“ui-icon-minus“] [/sws_ui_icon]  Nur mit Root wirklich lauffähig.[/sws_blue_box]

Serververbindungen mit Monocaffe verwalten

Monocaffe Verbindungs Manager
Monocaffe Verbindungs Manager

Im Laufe der Zeit sammeln sich zunehmend Serververbindungen an, die man immer wieder nutzt. Monocaffe bietet als zentrales Verwaltungsprogramm ein bisschen Übersicht im Dickicht der Verbindungsvielfalt.

In Monocaffe können Verbindungen zu Servern angelegt und bei Bedarf immer wieder aufgerufen werden. Mit der recht aufgeräumten Oberfläche bietet es somit einen schnellen Zugriff auf die gewünschte Verbindung. Mehrere gleichzeitige Verbindungen werden in eigenen Tabs sortiert, für mehr Übersichtlichkeit und schnelle Wechsel.

Monocaffe unterstützt aktuell folgende Verbindungstypen:

  • SSH
  • VNC
  • RDP
  • FTP
  • Telnet
  • SSH Tunnel

Die eingetragenen Verbindungen können exportiert und an anderer Stelle wieder importiert werden, so ist es recht bequem machbar, dass man zwei Installationen von Monocaffe auf unterschiedlichen PCs auf dem gleichen Stand hält. Darüber hinaus erlaubt es Monocaffe Befehle auf alle geöffneten Verbindungen zu publizieren, um ein und den selben Aufruf in allen SSH Verbindungen (z.B.) auszuführen.

Monocaffe ist unter GPLv3 veröffentlicht, fertige Pakete für Debian/Ubuntu Systeme stehen auf der Downloadseite zur Verfügung. Ein ideales Tool für Alle, die häufig mit Servern und unterschiedlichen Verbindungstypen zu tun haben.

Wichtige Links im Überblick:

HowTo: Ubuntu Server SSH Zugang mit OTP absichern

Opiekey auf Android
Opiekey auf Android

Dienste die mit geöffneten Ports im Internet laufen sollten abgesichert werden. Sehr wichtig ist hier vor allem der SSH Dienst, denn dieser erlaubt einen direkten Zugriff auf das System, sofern man die Benutzer/Passwort Kombination weiss. Es gibt verschiedenste Wege SSH abzusichern, die gängigen wurden von Patrick schon zusammengefasst. Ich möchte daher eine Absicherung vorstellen, die darüber hinaus geht.

Man kann SSH mittels OTP (One-time passwords, also Einmalpasswörtern) absichern, dies bietet eine sehr grosse Sicherheit gegenüber Angreifern und schützt parallel auch vor Keyloggern auf unsicheren PCs, denn das Passwort wird nach Benutzung ungültig. Hierzu wird eine Server/Client-Struktur geschaffen, man benötigt auf dem Server, auf den man zugreifen will, einen Serverdienst und einen Client am zugreifenden PC. In Zeiten von Smartphones lässt sich das sogar über geeignete Software auf dem Smartphone lösen. Somit braucht man auf dem zugreifenden PC keinen Client und kann von überall zugreifen, sofern man sein Smartphone dabei hat. Auf meinem Android benutze ich „Opiekey“, welches reibungslos mit dem auf Ubuntu installierten Opie-Servern zusammen arbeitet.

Man braucht zuerst auf dem Server, auf den man zugreifen will zwei Applikationen die man mittels:

sudo apt-get install opie-server opie-client

installiert. Nun generiert man erstmalig ein gültiges Opie-Passwort und versieht es mit einer Passphrase (achtet darauf eine möglichst sichere zu wählen!):

opiepasswd -c

Mehr lesen