ADMIN-Tipp: Two-Factor-Authentication für SSH

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Wer sich sicherer fühlen will, verwendet zum SSH-Login Multifaktor-Authentifizierung. Smartphone-Besitzer können hierbei mit dem Google-Authenticator Einmal-Passwörter verwenden. 

Meist wird als sicherere Alternative zum passwortbasierten SSH-Login empfohlen, sich besser mit der Kombination aus Private und Public Key einzuloggen. Alternativ oder ergänzend dazu ist es aber möglich, SSH mit Multifaktor-Authentifizierung zu verwenden, um die Risiken des Diebstahls von Password oder Passphrase zu reduzieren. Besonders einfach geht dies mit dem Google Authenticator, der ein PAM-Modul beinhaltet, das sich einfach in die SSH-Authentifizierung einbinden lässt. Die zweite Zutat ist eine App, die es für iOS und Android gibt und Einmalpasswörter erzeugt, die für das Login verwendet werden. 

Auf dem SSH-Server lässt sich das PAM-Modul leicht über den Paketmanager installieren, etwa mit "apt-get install libpam-google-authenticator" auf einem Ubuntu-System. Die PAM-Konfiguration des SSH-Daemons findet in "/etc/pam.d/sshd" statt. Dort ergänzen Sie zu Beginn der Datei die Zeile:

auth required pam_google_authenticator.so

Führen Sie "google-authenticator" aus, zeigt das Programm gleich mal einen QR-Code sowie einige Zahlencodes an und stellt Ihnen diverse Fragen. Die ersten beiden (Do you want authentication tokens to be time-based? und Do you want me to update your "/home/USERNAME/.google_authenticator" file?) sollten Sie mit Ja beantworten, bei den anderen Antworten müssen Sie Bequemlichkeit und Sicherheitsanforderungen gegeneinander abwägen. Mit der auf dem Handy installierten App fügen Sie schließlich den entsprechenden Login-Account hinzu, indem Sie entweder den QR-Code im Terminal scannen oder den Private Key und den Verifizierungscode von Hand eingeben.

In der Konfigurationsdatei des SSH-Daemons müssen Sie folgende Zeilen einfügen respektive ändern:

UsePAM yes
ChallengeResponseAuthentication yes

Wenn Sie nun den SSH-Daemon neu starten (je nach Distribution zum Beispiel mit "service ssh restart"), werden Sie beim Login zusätzlich nach einem "Verification code" gefragt. Den übernehmen Sie von der App, die im konfigurierten Intervall neue Einmalpasswörter erzeugt. 

Haben Sie SSH mit Private/Public-Key-Authentifizierung konfiguriert, müssen Sie in der SSH-Konfigurationsdatei "/etc/pam.d/sshd" die folgende Zeile einfügen, damit Sie nach dem One-Time-Passwort gefragt werden (ab OpenSSH 6.2):

AuthenticationMethods publickey,keyboard-interactive

Wenn SSH Sie nun zusätzlich noch nach einem Login-Passwort fragt, kommen Sie automatisch in den Genuss von Drei-Faktor-Authentifizierung, was aber vielleicht des Guten zuviel ist. Um dies zu deaktvieren, entfernen Sie in der PAM-Konfiguration die Zeile

auth required pam_unix.so

oder die entsprechende Include-Anweisung

@include common-auth
21.01.2015
PAM , SSH
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023