1790083

Linux: Mit SSH den Alltag sicherer machen

09.07.2013 | 11:00 Uhr |

Jedes Linux-System spricht SSH. Das Protokoll eignet sich dabei nicht nur zum Ausführen von Befehlen, sondern auch zur Dateiübertragung und sogar für sichere Proxy-Verbindungen.

Um zwei Linux-Systeme zu verbinden, ist kaum mehr nötig als SSH. Bekannt wurde das verschlüsselte Protokoll in grauer Unix-Vorzeit über die Möglichkeit, sich über eine unsichere Verbindung sicher an einem Server anzumelden, um dort Befehle auszuführen. SSH kann aber viel mehr und eignet sich zur verschlüsselten Dateiübertragung und für verschlüsselnde Netzwerktunnel aller Art. SSH ist ein Client-Server-Protokoll, und unter Linux erfüllt Open SSH beide Rollen. Dennoch ist bei den üblichen Linux-Distributionen erst mal nur der Client vorinstalliert; der Server muss über das Paket „openssh-server“ gegebenenfalls erst noch nachgerüstet werden.

Sicherer Dateitransport mit SSH

Der Midnight Commander bietet SSH-Verbindung in den Menüs der Dateifenster als „Shell-Verbindung“ an und macht den Dateitransfer einfach.
Vergrößern Der Midnight Commander bietet SSH-Verbindung in den Menüs der Dateifenster als „Shell-Verbindung“ an und macht den Dateitransfer einfach.

SSH sorgt für eine verschlüsselte Übertragung der Anmeldeinformationen und für die sicherere Datenübertragung. Damit ist es das ideale Protokoll für Serverzugriff und ein Ersatz für das unverschlüsselte FTP. Das Kommandozeilenprogramm für die Dateiübertragung vom Client auf den Server per SSH heißt scp, kurz für „secure copy“:

scp datei.ext <name>@<server>:/home/<name>/

Damit kopieren Sie eine Datei „datei.ext“ als Benutzer „<name>“ auf einen Server in das Verzeichnis „/home/<name>“. Mehr Komfort gefällig? Der Dateimanager Midnight Commander kann ebenfalls Dateien per SSH übertragen. Diese Funktion steckt in den Menüs „Links/Rechts > Shell-Verbindung“. Noch mehr Komfort gewünscht? Unter KDE unterstützen alle KDE-Programme das Protokoll-Prefix „sftp://“, um auf einen SSH-Server zuzugreifen. Im Dateimanager Dolphin können Sie mit

sftp://<name>@<server>

in der Adresszeile direkt eine Verbindung zu einem SSH-Server öffnen.

Parallele Installation von Linux und Windows auf UEFI-PC

Hinterlegter Schlüssel: Passwortloses SSH

Bei häufigen Verbindungen zum gleichen Server wird es lästig, immer das Passwort einzutippen. Für diese Zwecke bietet SSH auch eine Public-Key-Authentifizierung an, bei der eine Anmeldung per hinterlegtem Schlüssel von einem vorkonfigurierten Client aus gelingt. Um den Rechner dazu vorzubereiten, erstellen Sie erst mit

ssh-keygen -t rsa

ein Schlüsselpaar. Bestätigen Sie alle Rückfragen mit der Enter-Taste, und geben Sie auch kein optionales Passwort (Passphrase) ein. Anschließend kopieren Sie den so erzeugten öffentlichen Schlüssel mit dem Befehl

ssh-copy-id -i ~/.ssh/id_rsa.pub<name>@<server>

auf den gewünschten Server. Selbstverständlich geht der öffentliche Schlüssel verschlüsselt über die Leitung. Ab jetzt ist die SSH-Anmeldung von diesem Client aus ohne Passwort möglich.

Eingehängt: SSH-Verbindungen als Laufwerk

Auch wenn Dateimanager und KDE-Programme mit SSH umgehen können: Viele Programme erwarten lokal gespeicherte Dateien. Um Dateien auf einem SSH-Server so zu öffnen, als lägen Sie auf der lokalen Festplatte, eignet sich das Tool sshfs. Dabei handelt es sich um ein Fuse-Dateisystem, das eine SSH-Verbindung ähnlich wie der Befehl mount in ein Verzeichnis einhängt. Unter Ubuntu und Debian installieren Sie das Tool mit sudo apt-get install sshfs und können dann beispielsweise in einem Terminal-Fenster mit

sshfs <name>@<server>:/home/<name>~/server

das Verzeichnis „/home/<name>“ auf dem SSH-Server lokal im Verzeichnis „~/server“ verfügbar machen und mit beliebigen Programmen zugreifen. Dies ist zwar bei Servern im Internet zwar nicht besonders schnell, aber ein guter Ersatz für komplizierte und nicht wesentlich schnellere Lösungen mit NFS. Mit fusermount -u /home/<name> trennen Sie die Verbindung wieder.

Zeit gespart mit Linux-Kommandozeilen-Befehlen

Sicher ins Web mit Socks-Proxy

Socks-Proxy: Er leitet die Firefox-Anfragen über SSH um, und der Proxy-Port steht auf dem „localhost“.
Vergrößern Socks-Proxy: Er leitet die Firefox-Anfragen über SSH um, und der Proxy-Port steht auf dem „localhost“.

Unterwegs mit dem Notebook sind öffentliche WLANs ein Risiko bei der Anmeldung auf Webseiten, die kein HTTPS bieten. Für diese Fälle ist mit SSH schnell ein Proxy aufgebaut, um den Netzwerkverkehr des Browsers verschlüsselt mittels SSH über den Server umzuleiten. Als Server kommt etwa der Webserver mit der eigenen Homepage in Betracht. Verbinden Sie sich dazu im Terminal-Fenster mit

ssh -ND 8080 <name>@<server>

zum gewünschten Server.

Gehen Sie dann in die Browsereinstellungen, und tragen Sie dort als „Socks Host“ beziehungsweise „Socks Proxy“ einfach localhost ein und als Port 8080. Ab jetzt gehen die Browseranfragen per SSH zunächst zum Server, der die Webseiten als Proxy abruft und verschlüsselt zurück zum Browser schickt. Das Terminal-Fenster muss dazu übrigens geöffnet bleiben.

Linux-Grundausstattung für kleine Unternehmen

Serverseitig: Mit fail2ban Angriffe blocken

Jeder, der einen Linux-Server betreibt, der über eine Internet-Verbindung erreichbar ist, kennt das Problem: Einfallslose Angreifer versuchen, sich über Dictionary-Attacken auf dem SSH-Port mit dem Server zu verbinden. Bei jedem halbwegs vernünftig gewählten Passwort und dem Verzicht auf sehr einfache Benutzernamen wie „Gast“ oder „Admin“ sind diese Angriffe erfolglos. Bei mehreren hundert gescheiterten Verbindungsversuchen täglich wird das Security- und Access-Logfile allerdings unübersichtlich. Dagegen ist ein Kraut gewachsen:

Das Tool fail2ban ist ein Hintergrundprozess (Daemon), der die Logdateien auf erfolglose Log-in-Versuche überprüft und die IP-Adresse dieser Angreifer nach einer definierbaren Zahl von fehlgeschlagenen Anmeldungen einige Zeit blockt. Das Paket fail2ban steht unter Ubuntu, Debian, Fedora und Open Suse über den Paketmanager zur Verfügung und muss bei Debian und Ubuntu nicht mal mehr groß konfiguriert werden: In den Standardeinstellungen kommt ab fünf Versuchen für zehn Minuten die IP-Adresse des Clients in den Giftschrank und wird mittelt iptables geblockt. In der Konfigurationsdatei „/etc/fail2ban/jail.conf“ lässt sich die erlaubte Anzahl der Versuche und eine Liste von nicht zu blockenden IP-Adressen festlegen.

0 Kommentare zu diesem Artikel
1790083