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.

 

Zwei-Faktor Authentifizierung für Google Apps

Zwei-Faktor Authentifizierung für Google Apps

Zwei-Faktor Authentifizierung für Google Apps
Zwei-Faktor Authentifizierung für Google Apps

Google spendiert seinen Google Apps Varianten Education, Goverment und Premier Edition eine Zwei-Faktor Authentifizierung und erhöht damit die Sicherheit der Accounts um ein Vielfaches.

Zwei-Faktor Authentifizierung beruht auf einer Kombination von zwei Authentifizierungsarten, dem Wissen (man kennt sein Passwort oder eine PIN) und dem Besitz (man besitzt eine Karte, ein Token, ein Handy usw.).

Google Apps Administratoren, der oben genannten Versionen, können ab sofort ihre Benutzer für die Zwei-Faktor Authentifizierung freischalten. Nach Eingabe des Passworts sendet Google per SMS eine PIN zu, die ebenfalls eingegeben werden muss. Alternativ kann anstelle der SMS Variante eine Software für Android, iOS oder BlackBerry genutzt werden, die direkt auf dem jeweiligen Endgerät installiert wird.

Diese Authentifizierungsart bietet sich zur Erhöhung der Sicherheit dringend an, schaltet man die Gefahr von Keyloggern und ähnlichen Mechanismen aus, denn ein Passwortdiebstahl reicht nicht aus. Auf der anderen Seite reicht es ebenfalls nicht aus das entsprechende Endgerät zu entwenden, wenn man nicht parallel in Besitzt des passenden Passwortes gelangt ist. Die zugesendeten PINs sind Einmal-Passwörter.

Google plant das Authentifizierungsschema in den nächsten Monaten für alle Google Konten freizugeben.

Quelle: Official Google Enterprise Blog

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