Integrationen · Linux SSH

2FA für Linux-SSH mit pam_radius und Bestätigung am Telefon

Für Teams, die Linux-Server per SSH verwalten und für jede Shell, jedes sudo und jedes su zusätzlich zum Passwort eine Bestätigung am Telefon verlangen wollen. Linux-PAM hat ein Standardmodul für RADIUS; richten Sie es auf den Notakey Auth-Proxy, und die gesamte Flotte nutzt dasselbe Setup wie Ihr VPN.

So wird es angebunden

PAM zu RADIUS zum Proxy, sonst nichts auf dem Server

sshd und sudo authentifizieren über PAM. Das Modul pam_radius sendet Benutzernamen und Passwort per RADIUS an den Notakey Auth-Proxy; der Proxy reicht die Passwortprüfung an Ihren RADIUS-Server weiter, sendet eine Bestätigungsanfrage an das Telefon des Benutzers und gibt Access-Accept nur zurück, wenn beides erfolgreich war. Die Anleitung behandelt Debian/Ubuntu mit libpam-radius-auth; auf Distributionen der RHEL-Familie heißt das Paket pam_radius, und die PAM-Dateien liegen in derselben /etc/pam.d/-Struktur.

Ist das Modul als sufficient eingetragen, meldet ein Access-Accept den Benutzer sofort an, alles andere fällt auf die normale lokale Passwortprüfung zurück. Ihr Break-Glass-Admin behält ein rein lokales Passwort; alle anderen Konten können ohne eines angelegt werden. Deren einziger Weg hinein führt dann über RADIUS durch den Proxy – also Passwort plus Bestätigung am Telefon –, und lokal gibt es nichts, was sich per Brute-Force knacken ließe.

Derselbe Proxy und derselbe RADIUS-Server, die bereits das VPN und die Verwaltungsebene des Routers schützen, bedienen auch die Linux-Flotte. Auf der Proxy-Seite ändert sich nichts.

Was Sie vorab wissen sollten

  • Der Standard-Timeout des Moduls beträgt 3 Sekunden. Setzen Sie ihn mindestens auf vpn_message_ttl des Proxys (30 Sekunden); 60 Sekunden lassen komfortablen Spielraum. Ein sofortiger Fehlschlag ohne Push deutet meist auf einen falschen Timeout oder ein falsches Shared Secret hin.
  • Anmeldungen per SSH-Schlüssel überspringen die Auth-Phase von PAM vollständig, ein schlüsselbasierter Login löst also keinen Push aus. Für Schlüssel plus Push setzen Sie AuthenticationMethods publickey,keyboard-interactive und testen diese Variante separat.
  • Das Passwort wird zwischen Server und Proxy per PAP übertragen. Halten Sie diese Verbindung in einem Management-Netz oder betreiben Sie den Proxy als Container direkt auf dem Host.
  • Derselbe Benutzername muss im nachgelagerten RADIUS-Server, im Notakey-Dienst mit einem registrierten Telefon und als lokales oder Verzeichniskonto auf dem Linux-System existieren. PAM authentifiziert nur; der Benutzer braucht trotzdem ein Konto, an dem er sich anmelden kann.
  • Wer sudo schützt, lässt jedes sudo das Telefon fragen. Das Credential-Caching von sudo hält das erträglich.
  • sshd braucht UsePAM yes und KbdInteractiveAuthentication yes; beides ist unter Debian/Ubuntu voreingestellt.

Von null zur ersten Bestätigung

  1. 01

    Zuerst den Notausgang einrichten

    Bevor Sie PAM anfassen, geben Sie root oder einem dedizierten Break-Glass-Admin ein starkes lokales Passwort und prüfen es an der Konsole. Die Konfiguration fällt immer auf lokale Passwörter zurück; dieses Konto ist also Ihr Zugang, falls Proxy, RADIUS oder Netzwerk ausfallen.

  2. 02

    pam_radius installieren und auf den Proxy richten

    Installieren Sie libpam-radius-auth, ergänzen Sie in /etc/pam_radius_auth.conf eine Zeile mit der Adresse des Proxys, dem Shared Secret, das zu vpn_secret_in des Proxys passt, und einem Timeout von 60 Sekunden, und schränken Sie die Datei auf Modus 0600 ein.

  3. 03

    In PAM aktivieren und aus einem zweiten Terminal testen

    Fügen Sie auth sufficient pam_radius_auth.so oberhalb des common-auth-Includes in /etc/pam.d/sshd ein (und nach Bedarf für sudo, su oder login), ergänzen Sie try_first_pass in der pam_unix-Zeile von common-auth und melden Sie sich dann aus einem zweiten Terminal per SSH mit einem RADIUS-Benutzernamen an und bestätigen den Push. Prüfen Sie, ob das Break-Glass-Konto noch funktioniert, bevor Sie die ursprüngliche Sitzung schließen.

Häufig gestellte Fragen

Sperre ich mich aus, wenn Proxy oder RADIUS ausfallen?
Nicht, wenn Sie einen Break-Glass-Admin mit lokalem Passwort behalten. pam_radius ist als sufficient eingetragen, daher fällt alles außer Access-Accept auf die normale lokale Passwortprüfung zurück.
Lösen Anmeldungen per SSH-Schlüssel einen Push aus?
Nein. Anmeldungen per Public Key überspringen die Auth-Phase von PAM vollständig. Für Schlüssel plus Push setzen Sie AuthenticationMethods publickey,keyboard-interactive und testen diese Variante separat.
Welche Linux-Distributionen deckt die Anleitung ab?
Debian und Ubuntu mit libpam-radius-auth. Auf Distributionen der RHEL-Familie heißt das Modulpaket pam_radius, und die PAM-Dateien liegen in derselben /etc/pam.d/-Struktur.

Anleitungen und Dokumentation

Verwandte Produkte

← Alle Integrationen

Ihre erste passwortlose Anmeldung – noch diese Woche

30 Minuten mit einem Ingenieur statt einer Vertriebspräsentation. Gemeinsam planen wir, wie in Ihrer VPN-, SSO- oder Windows-Umgebung ein funktionierendes Pilotprojekt an den Start geht.