Centos – SSH – Two-Factor Authentication mit Google Authenticator

Two-Factor Authentication erhöht die Sicherheit der Benutzerautorisierung. Hierbei wird außer dem Passwort ein zusätzlicher Code verlangt. Dieser Code wird bei jedem Login neu generiert und ist nur einmal verwendbar. Mit diesem Verfahren können wir den Login per SSH zusätzlich absichern. Dazu verwenden wir das Open Source Tool Google Authenticator.

Als erstes installieren wir alle nötigen Develop-Pakete und den gcc auf unserem Server.

Für diese Art der Authentikation ist es zwingend notwendig, dass unsere Serverzeit aktuell ist. Um das zu erreichen installieren wir ntpd und binden diesen in den Systemstart ein. Anschliessend starten wir ntpd um die genaue Zeit von einem Zeitserver zu erhalten.

Installation des Google Authenticator

Nun laden und entpacken wir den Source-Code des google-authenticator PAM-Modules.

Anschliessend wir dieser kompiliert und installiert.

Nun ist unser PAM-Modul einstatzbereit und wir können google-authenticator starten.

Dann folgt ein etwas längerer Dialog. Die Notfall-Codes sollte man an einer sicheren Stelle verwahren. Ein QR-CODE zum einscannen wird erstellt und ist entweder gleich von der Konsole oder unter einem generierten Link abrufbar.

Zum Aktivieren des Google Authenticators für SSH Logins muss das PAM-Modul in die Konfiguration vom PAM eingebunden werden. Dazu editieren wir die Datei /etc/pam.d/sshd und fügen ganz oben folgende Zeile ein.

Anschliessend muss noch in der Datei /etc/ssh/sshd_config der Wert ChallengeResponseAuthentication von no auf yes geändert werden.

Nach dem Speichern müssen wir den SSH Dienst neu starten und der Google Authenticator verrichtet nun seinen Dienst.

Bei einem SSH-Login wird nun zunächst der Verification Code gefragt anschliessend geht es weiter mit dem üblichen Passwort.

Die passende App fürs Mobiltelefon oder Tablet gibt im Appstore bei Google oder Apple.

Achtung

Bei der Implentierung ist etwas Vorsicht geboten denn es kann passieren, dass man sich vom System aussperrt :) Daher empfehle ich mit einen Root-User parallel eingeloggt zu bleiben um im Notfall das Modul wieder zu dekativieren. Weiterhin kann man auch den Login per ssh-key aktivieren um im Notfall wieder Zugang zum System zu erlangen.

Weitere Informationen gibt es auf den Projektseiten des Google-Authenticator.  Informationen wie man die App auf dem Smartphone oder Tablet installiert gibt es auf der Seite vom Google-Support.

Das Tutorial wurde für CentOS 7 und CentOS 6 getestet. Andere Distributionen haben das PAM-Modul eventuell bereits in Ihrem Repo enthalten.

Eine Antwort auf „Centos – SSH – Two-Factor Authentication mit Google Authenticator“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.