SSH mit Two-Factor Authentication absichern

Google 2-step verificationWas ist, wenn die Absicherung des Server, wie unter Debian Server absichern beschrieben, nicht ausrecht?
Dies kann vor allem der fall sein, wenn man sich in unsicheren Umgebungen, unter anderem in einem öffentlichen HotSpot, in der Schule oder auch in der Arbeit sich mit dem Server per SSH verbindet. Das Risiko besteht sogar zu Hause.

Setzt man alle Schritte wie in dem Beitrag Debian Server absichern um, hilft es bei einem MITM Angriff nur wenig, den allgemeinen Zugriff auf den Server zu verweigern. Zwar besitzt der Angreifer keinen root Zugriff, trotzdem lässt sich damit viel übel anrichten.

Viele werden nun sagen, dass man nicht so dumm sein soll, sich in einem öffentlichen Netzwerk mit einem Server zu verbinden oder dass man einen Host-Key für SSH verwenden soll. Daher kann ich nun eine gute Alternative bieten: Die 2-Faktor-Authentifizierung.

Einen kleinen Haken gibt es aber noch:
Das Paket kann nicht über die Paketquelle bezogen werden. Das bedeutet, dass wir das Paket manuell herunterladen müssen. Davor muss aber noch die QR lib installiert werden. Diese ist glücklicherweise über den Paketserver verfügbar. Aber fangen wir erst einmal bei null an.

Werbung

Smartphone / Tablet vorbereiten

GooglePlayBadge

Für Android und iOS ist bereits eine App von Google verfügbar. Bevor wir die Installation starten, sollten wir zuerst die App installieren.

Ist noch für ein anderes mobiles Betriebssystem eine App verfügbar, zögert bitte nicht dies mir mitzuteilen Zwinkerndes Smiley

Apple_AppStoreAchtung: Sollte das Smartphone und die Notfallcodes verloren gehen, gibt es keinen Weg den Zugang via SSH zurückzusetzen!

Wenn du im vorhinein überprüfen möchtest, ob der Authenticator überhaupt funktioniert, kannst du dafür diese Beispielseite verwenden:
Google Authenticator

Installation

Zuerst sollten wir die QR lib laden, damit unser Paket ein QR Code generieren kann.

apt-get install libqrencode3

Nun können wir das Debian Paket herunterladen. Wichtig: Installiere das Paket, dass für dein System geeignet ist (x32, x64, …)

Die Pakete sind unter http://ftp.debian.org/debian/pool/main/g/google-authenticator/ zu finden. (Gegebenenfalls kann die Bezugsquelle auf ftp.de.debian.org, ftp.at.debian.org, ftp.ch.debian.org, usw. geändert werden)

Ich nehme einmal an, dass wie die 64 Bit Version installieren:

wget http://ftp.debian.org/debian/pool/main/g/google-authenticator/libpam-google-authenticator_20110413.68230188bdc7-1.1_amd64.deb
dpkg -i libpam-google-authenticator_20110413.68230188bdc7-1.1_amd64.deb

Zugangsdaten generieren

Dies ist vergleichsweise einfach. Dazu muss man nur den Authenticator starten (Achtung: Es wird der Code für den aktuellen Benutzer generiert)

google-authenticator

Folglich sieht man dann einen generierten QR-Code mit

image

Anpassen der Konfiguration

Anschließend muss noch die Konfiguration von SSH so angepasst werden, dass der Code beim Login abgefragt und überprüft wird. Dazu müssen 2 Dateien bearbeitet werden:

In der Datei /etc/pam.d/sshd muss in die erste Zeile folgendes eingefügt werden:

auth required pam_google_authenticator.so

In der Datei /etc/ssh/sshd_config muss ChallengeResponseAuthentication von no auf yes geändert werden.

Achtung:

Benutzer die google-authenticator nicht ausgeführt haben, fehlt die .google_authenticator Datei. Existiert diese nicht, wird nicht nach dem 2-Faktor-Code gefragt und egal bei welcher Eingabe des Passwortes der Zugriff auf das System verweigert. Dieser Fehler ist Google bereits bekannt.

PS.: Wird root Zugriff verweigert (PermitRootLogin) muss für beide Benutzer google-authenticator ausgeführt werden. Es kann sonst zu Problemen kommen.

Notiere die

Überprüfen der Konfiguration

Wurden die Einstellungen geändert, lade SSH neu um die Einstellungen zu testen:

service ssh restart

Schließe für die Neuverbindung nicht die aktuelle Session. Bei einem Fehler ist das unsere letzte Möglichkeit, die Einstellungen rückgängig zu machen.

Wenn der Login funktioniert, war es das. Der Zugriff ist nun gegen MITM Angriffe gesichert.

Ich hoffe, dass ich euch helfen konnte, euren Server gegen Eindringlinge besser abzusichern.

Bild: Google „About 2-step verification

Wie immer der rechtliche Teil des Artikels: Ich hafte für keinerlei Beschädigungen am System oder Gerät, die im Zuge der Verwendung dieser Erklärung auftreten können.

Author: Thomas2500

SSH mit Two-Factor Authentication absichern
5 (100%) 1 vote

Kommentar verfassen