Die Absicherung sensibler Systeme über eine zweite Authentifizierungsstufe gehört heute zum Standard. In diesem Artikel zeige ich dir, wie du Zwei-Faktor-Authentifizierung (2FA) sowohl für Webdienste als auch für SSH-Zugänge einrichtest.

Ziel

  • 2FA für Webdienste über Authentik (TOTP oder WebAuthn)
  • 2FA für SSH-Logins mittels PAM und OTP

Voraussetzungen

  • Authentik-Server mit LDAP-Anbindung (siehe frühere Artikel)
  • Linux-Server mit PAM-fähigem SSH-Login
  • Optional: Authenticator-App wie FreeOTP, Aegis oder Google Authenticator

Teil 1: 2FA für Webdienste über Authentik

TOTP (Zeitbasierter Einmalcode)

  1. In Authentik unter Policies → Stages → Add Stage:

    • Typ: TOTP Authenticator wählen
    • Optionen wie Gültigkeit oder Backup-Codes setzen
  2. Bestehende Login-Flow anpassen:

    • Füge die neue TOTP-Stage hinter die Passwort-Eingabe ein
  3. Benutzer registrieren ihren TOTP-Code beim nächsten Login automatisch

WebAuthn (z. B. Passkeys, FIDO2)

  1. Neue Stage erstellen:

    • Typ: WebAuthn Authenticator
    • Option: Nur bestimmte Geräte (z. B. "platform authenticators") zulassen
  2. Auch diese Stage in den Flow einfügen

Hinweis: Du kannst Bedingungen (Policies) setzen, wann 2FA greift (z. B. nur außerhalb des Intranets).

Teil 2: SSH-Zugänge mit 2FA absichern

Schritt 1: OTP-Modul installieren

sudo apt install libpam-google-authenticator -y

Schritt 2: PAM anpassen

In /etc/pam.d/sshd füge hinzu (vor der @include common-auth):

auth required pam_google_authenticator.so nullok

Schritt 3: SSH konfigurieren

In /etc/ssh/sshd_config:

ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

Dann neu starten:

sudo systemctl restart sshd

Schritt 4: OTP initialisieren (je Benutzer)

Jeder Benutzer führt einmal aus:

google-authenticator

Die App zeigt einen QR-Code für die App und legt eine .google_authenticator Datei im Home an.

Tipps und Sicherheit

  • OTP kann optional mit Backup-Codes ergänzt werden
  • WebAuthn ist besonders sicher gegen Phishing
  • Du kannst SSH-Login mit Gruppen und 2FA kombinieren (siehe späterer Artikel zur Autorisierung)

Fazit

Zwei-Faktor-Authentifizierung lässt sich mit vertretbarem Aufwand integrieren. Während Authentik für Webdienste elegante Methoden wie TOTP oder Passkeys bietet, ermöglicht PAM auch für SSH sichere Logins.

Im nächsten Teil der Serie schauen wir uns an, wie man gruppenbasierte Autorisierung umsetzt – etwa für gezielte Zugriffssteuerung auf Dienste und Server.

Vorheriger Beitrag Nächster Beitrag