2191943

Passwort plus Gerät: Zwei-Faktor-Authentifizierung macht SSH einbruchssicher

01.10.2016 | 09:01 Uhr |

Das Multitalent SSH unterstützt eine Anmeldung nicht nur mit Benutzernamen und Passwort oder einem Schlüssel: Eine Zwei-Faktor-Authentifizierung kann den Zugang mit wenig Aufwand zusätzlich absichern.

Zur Anmeldung am heimischen Server per SSH ist die Absicherung eines Benutzerkontos mit Passwort ausreichend sicher. Soll der Zugang nur von einem PC aus möglich sein, dann unterstützt SSH auch die Authentifizierung per Schlüsselpaar, dessen öffentlicher Teil zuvor vom Client-PC auf den SSH-Server kopiert wird. Diese Form der Anmeldung ist zwar sehr sicher, schließlich verbleibt der geheime Schlüsselteil auf dem Clientrechner. Ein Problem besteht aber weiterhin: Geht der Client physikalisch verloren, etwa im Fall eines gestohlenen Notebooks, oder wird dieser kompromittiert, so gerät schlimmstenfalls auch der geheime Schlüssel in fremde Hände.

Lese-Tipp: 10 Sicherheits-Tipps für jeden Anwender

Zwei Faktoren: Wissen plus Besitzen

Eine andere Methode, SSH-Zugänge zusätzlich abzusichern, ist die Zwei-Faktor-Authentifizierung mit einem zusätzlichen Modul. Diese Art der Anmeldung führt eine weitere Benutzerverifizierung ein. Der Identitätsnachweis besteht aus einem geheimen Teil, den man kennen muss, und einer zweiten physischen Komponente, die man besitzen muss. Die geheime Komponente ist das Passwort und die physische ein autorisiertes Smartphone oder Tablet, das einen persönlichen Sicherheitscode generiert. Ein Angreifer, der Benutzernamen und Passwort eines SSH-Zugangs erspäht hat, wird sich trotzdem nicht anmelden können. Denn dazu ist auch noch das zuvor freigeschaltete Mobilgerät des Kontoinhabers nötig.

Die Authenticator-App produziert alle 30 Sekunden einen neuen sechsstelligen Code.
Vergrößern Die Authenticator-App produziert alle 30 Sekunden einen neuen sechsstelligen Code.

Codes per Google Authenticator: Eine Open-Source-Umsetzung der Zwei-Faktor-Authentifizierung, die auch eine Einbindung in den Anmeldeprozess von SSH erlaubt, ist der Google Authenticator. Dieser setzt die offengelegten Standards der Arbeits-gruppe OATH (Initiative for Open Authentication) um und liegt im Quellcode auf Github vor. Die Einbindung in SSH erfolgt mit einer Programmbibliothek, die sich in den Standardpaketquellen von Debian, Ubuntu, Fedora und Cent-OS befindet und damit schnell installiert ist.

Zugehörige Einmalcodes kann der Google Authenticator generieren, den es als App für Android, iOS und Blackberry gibt.

Lese-Tipp: SSH mit Putty - Passwortlose Anmeldung per Schlüssel

Vorbereitung auf dem Server

Bevor ein SSH-Server eine Zwei-Faktor-Authentifizierung durchführen kann, ist die Einbindung des Google Authenticators als PAM-Bibliothek (Pluggable Authentication Module) notwendig.

Debian und Ubuntu: Die PAM-Bibliothek ist mit dem Kommando

sudo apt-get install libpam-google-authenticator

schnell installiert. Um sie zu aktivieren, öffnen Sie die Konfigurationsdatei „/etc/ssh/sshd_config“ des SSH-Dienstes mit root-Privilegien in einem Texteditor. Die Zeile „ChallengeResponseAuthentication no“ in der Mitte der Datei ändern Sie zu

ChallengeResponseAuthentication yes

sowie die nachfolgende Zeile „#PasswordAuthentication yes“ darunter wie folgt:

PasswordAuthentication no

Stellen Sie zudem sicher, dass „UsePAM“ ganz am Ende der Datei auf die Standardeinstellung

UsePAM yes

gesetzt ist. Speichern Sie die Datei ab, und öffnen Sie die weitere Konfigurationsdatei „/etc/pam.d/sshd“ in einem Texteditor – wieder mit root-Rechten. Dort tragen Sie oben nach der Zeile „@include common-auth“ noch die folgende Zeile

auth required pam_google_authenticator.so

ein. Damit die Bibliothek sowie der SSH-Dienst neu geladen werden, ist ein Neustart des SSH-Servers mittels des Befehls

sudo service ssh restart

erforderlich.

Lese-Tipp: Linux-Top-20 - So finden Sie Ihr Lieblings-Linux

Fedora und Cent-OS 7: In Fedora wird die Bibliothek mit

sudo dnf install google-authenticator

installiert und in Cent-OS so:

sudo yum install google-authenticator

Die Anpassungen in der Dateien „/etc/ssh/sshd_config“ entsprechen jenen unter Debian/Ubuntu. In der Datei „/etc.pam.d/sshd“ tragen Sie die Zeile

auth required pam_google_authenticator.so

am Ende der Datei ein. Mit

sudo systemctl restart sshd

starten Sie den SSH-Dienst neu.

Der weitere Weg ist bei allen Distributionen gleich: Für das Benutzerkonto, das über SSH eine Zwei-Wege-Authentifizierung bekommen soll, rufen Sie im Terminal die Accounteinrichtung mittels

google-authenticator

auf – hier ausdrücklich nicht als root, da es sich um eine Einstellung des Benutzerkontos handelt. Die Frage „Do you want authentication tokens to be time-based?“ beantworten Sie mit „y“. Nun bekommen Sie im Terminal einen QR-Code und einen Schlüssel angezeigt. Den Schlüssel oder den QR-Code brauchen Sie für die Einrichtung des Einmalcode-Generators auf dem Smartphone oder Tablet. Bei den weiteren drei Fragen ist ebenfalls bejahendes „y“ zu empfehlen. Lassen Sie das Terminalfenster mit dem QR-Code zur Freischaltung des Smartphones danach noch geöffnet. Notieren Sie sich außerdem die fünf „Emergency scratch codes“ und verwahren Sie diese an einem sicheren Ort.

QR-Code bei der Einrichtung des Google Authenticators mit dem Smartphone/Tablet fotografieren.
Vergrößern QR-Code bei der Einrichtung des Google Authenticators mit dem Smartphone/Tablet fotografieren.

Smartphone oder Tablet einrichten

Damit ein Mobilgerät passende Einmalcodes zur Anmeldung erstellen kann, muss dort die App des Google Authenticators installiert sein. Für Android ist diese App Open Source und liegt nicht nur bei Google Play sowie als APK-Datei bereit. Apple-Geräte mit iOS bekommen die App in iTunes . In Blackberry-Smartphones öffnen Sie die Seite http://m.google.com/authenticator im Webbrowser, um die App zu installieren. Um SSH-Server und App miteinander bekanntzumachen, gehen Sie in der App auf „Konto einrichten“ in den Optionen. Mit „Barcode scannen“ fotografieren Sie mit der Kamera des Smartphones oder des Tablets den QR-Code des noch geöffneten Terminalfensters. Alternativ können Sie mit der App-Funktion „Schlüssel eingeben“ den Code aus dem Terminalfenster hinter „Your new secret key is:“ manuell eintippen. Ab jetzt liefert die App zeitlich begrenzte sechsstellige Einmalcodes.

Und so funktioniert ab jetzt die SSH-Anmeldung an dem Benutzerkonto mit aktivierter Zwei-Wege-Authentifizierung: Nach der üblichen Kontaktaufnahme mit

ssh [user]@[server]

präsentiert der SSH-Server zuerst die Passwortabfrage. Ist das Passwort korrekt eingegeben, folgt mit „Verification code:“ die weitere Abfrage des Einmalpassworts. Dieses liefert die App auf dem Smartphone jeweils für das dort angezeigte Konto.

Die Zwei-Faktor-Authentifizierung besteht aus dem Passwort und zusätzlich dem Einmalcode.
Vergrößern Die Zwei-Faktor-Authentifizierung besteht aus dem Passwort und zusätzlich dem Einmalcode.

Die Einmalcodes sind 30 Sekunden gültig und werden dann neu erstellt. Eine Netzverbindung ist dafür nicht notwendig, da der Algorithmus nach der ersten Einrichtung ganz unabhängig arbeitet.

Im Notfall: Falls das Mobilgerät einmal nicht verfügbar sein sollte, dann verwenden Sie einen der „Emergency scratch codes“, die jeweils einmal anstatt eines frisch generierten Einmalcodes funktionieren.

0 Kommentare zu diesem Artikel
2191943