Authentifizierungsarten am Beispiel ssh gegen LDAP
Zur Navigation springen
Zur Suche springen
- Verbindungsaufbau
- Der Client baut eine verschlüsselte SSH-Verbindung zum Server auf und startet die Authentifizierung.
- Legitimation des Servers
- Verfahren hier unrelevant.
- Übertragung des Benutzernamens
- Der Client übermittelt den Benutzernamen, unter dem er sich anmelden möchte.
- Prüfung der Authentifizierungsquelle in /etc/nsswitch.conf
- Der Server überprüft anhand der Datei /etc/nsswitch.conf, wo er die Benutzerdaten suchen soll (z. B. in `ldap`).
- Wenn LDAP als Quelle eingetragen ist, wird die Benutzerauthentifizierung über den LDAP-Server durchgeführt.
- LDAP-Authentifizierung
- Der Server kontaktiert den LDAP-Server und übermittelt den Benutzernamen, um die Benutzerdaten abzurufen.
- Der LDAP-Server sucht den Benutzer im Verzeichnis und fordert das Passwort vom Client an.
- Der Benutzer gibt sein Passwort ein, welches an den LDAP-Server weitergeleitet wird.
- Der LDAP-Server verifiziert das Passwort und bestätigt dem SSH-Server, ob die Authentifizierung erfolgreich war.
- Prüfung durch PAM
- Nach erfolgreicher LDAP-Authentifizierung kann PAM für weitere Prüfungen wie Zugriffsrechte und zusätzliche Sicherheitskontrollen verwendet werden.
- PAM-Module (Pluggable Authentication Modules) können sicherstellen, dass der Benutzer zusätzliche Richtlinien erfüllt, bevor die Session gestartet wird.
- Entscheidung
- Erfolgreiche Authentifizierung:
- Wenn die Passwortverifizierung durch den LDAP-Server korrekt ist und die PAM-Prüfungen bestanden werden, wird der Zugriff gewährt und eine SSH-Sitzung eingerichtet.
- Fehlgeschlagene Authentifizierung:
- Wenn die Verifizierung des Passworts durch den LDAP-Server fehlschlägt oder die PAM-Prüfungen fehlschlagen, wird der Zugriff verweigert.
- Session-Erstellung
- Nach erfolgreicher Authentifizierung und bestandenen PAM-Prüfungen wird eine SSH-Session eröffnet, und der Benutzer kann auf den Server zugreifen.
- Protokollierung
- Der gesamte Authentifizierungsvorgang wird über journal protokolliert und kann über journalctl eingesehen werden.