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.