Verwenden von SSH mit SSDD für Passwort oder öffentlichen Schlüssel und Erweitern mit MFA-Unterstützung durch PAM

Verwenden von SSH mit SSDD für Passwort oder öffentlichen Schlüssel und Erweitern mit MFA-Unterstützung durch PAM

Nach einigen ausführlichen Tests und Diskussionen kann ich dieses Problem nicht mehr alleine lösen.

Ziel: Authentifizierung über SSH mit öffentlichem Schlüssel oder Passwort und Verwendung von PAM für MFA.

Als System wird Ubuntu Server 20.04 verwendet.

Beim Aufteilen in überschaubare Teile hat es auch einige Schwierigkeiten gegeben, die verschiedenen Teile zu kombinieren.

Die Authentifizierung mit Publickey und die Verwendung von PAM für MFA ist kein Problem. Die Authentifizierung mit Passwort und die Verwendung von PAM für MFA ist kein Problem. Die Verwendung von Publickey oder Passwort ist etwas anders. Die Kombination mit MFA scheint unmöglich.

Das Problem scheint darin zu liegen, wie SSHD den Benutzer mit Passwort authentifiziert. SSHD kann dies ohne PAM nicht tun, da die Benutzerschattendatei ohne PAM nicht lesbar ist. Das Aktivieren von PAM und das Aktivieren von pam_env.so und pam_sssd.so für den Authentifizierungsstapel löst dieses Problem.

Mit PAM kann ich mich also entweder mit dem öffentlichen Schlüssel oder mit einem Passwort authentifizieren. Was ich nicht verstehe, ist, warum SSHD die Benutzerschattendatei für die Passwortauthentifizierung benötigt und nicht für den öffentlichen Schlüssel? Ich erhalte meine Gruppen und alles immer noch mit dem öffentlichen Schlüssel, ohne PAM, und verwende SSSD, um die öffentlichen Schlüssel mit dem Befehl authorized_keys bereitzustellen.

Zur Authentifizierung per Passwort benötige ich das entsprechende PAM-Modul im Auth-Stack.

Dies wäre kein großes Problem, aber das Ziel besteht darin, MFA zu aktivieren und den Benutzer nicht zur Eingabe des Passworts aufzufordern, es sei denn, es ist erforderlich. Die MFA muss mithilfe von PAM implementiert werden. Die Verwendung von PAM zusammen mit öffentlichen Schlüsseln ist kein Problem. Die Einstellung der Methode „publickey,keyboard-interactive“ in sshd_config übergibt dies an PAM und die Einstellung des PAM-Moduls nach pam_env.so für MFA ermöglicht dies.

Für die Aktivierung der Methoden „password,keyboard-interactive“ ist jedoch das Modul pam_sss.so erforderlich. Daher werde ich auch bei Verwendung der Publickey-Methode zur Eingabe eines Passworts und anschließend zur Eingabe der MFA aufgefordert.

Wie gehe ich mit diesem Problem um, sodass ich mich über SSH mit einem Passwort von der SSD oder einem öffentlichen Schlüssel von der SSD authentifizieren kann? Und der nächste Schritt, ob PAM für das Passwort erforderlich ist oder nicht (vorzugsweise nicht), wie implementiere ich in jedem Fall die MFA?

Da mir das immer noch im Kopf herumgeht, bin ich sicher, dass ich es besser erklären kann, aber ich habe mein Bestes getan, um meine Schwierigkeiten zu erklären.

Ich habe mich mit sssd, pam_ssh, pam_sssd, pam_ssh_agent_auth und sshd befasst. Lesen Sie auch die Dokumentation für DUO, Google MFA und RedHat.

Irgendwelche Gedanken oder Ideen?

Wir freuen uns über jedes Feedback.

Danke!

verwandte Informationen