Menu

SSH Single Sign On mittels Kerberos

Single Sign On (SSO) ist eine feine Sache. Der Benutzer authentifiziert sich einmal mit seinen Benutzernamen und Kennwort (z. B. bei der Anmeldung am Client) und hat anschließend Zugriff auf diverse Anwendungen ohne sich erneut anmelden zu müssen. In diesem Beitrag zeige ich wie man sich mit Hilfe von Kerberos per SSH an einen Linux Server innerhalb einer UCS Domäne anmelden kann.

Voraussetzung ist, dass der Client bereits der Domäne beigetreten ist. Den Domain Join für Debian Clients habe ich bereits in einem anderen Beitrag beschrieben, für Ubuntu findet man eine sehr gute Dokumentation direkt bei Univention. Ist der Domänenbeitritt geglückt, kann es auch mit der SSO Konfiguration los gehen.

PAM konfigurieren

Damit die Authentifizierung mittels Kerberos möglich ist, müssen die einzelnen PAM Module angepasst werde. Normalerweise funktioniert das unter Debian automatisch wärend der Installation des Pakets libpam-heimdal, sicherheitshalber kann man das aber nochmal kontrollieren bzw. anpassen. Die Konfigurationsdateien sollten folgende Zeilen enthalten:

  1. DEBIAN_FRONTEND=noninteractive apt-get install -y libpam-heimdal
  2. nano /etc/pam.d/common-auth
  3. auth    [success=3 default=ignore]      pam_krb5.so minimum_uid=1000
  4. nano /etc/pam.d/common-account
  5. account         sufficient                      pam_krb5.so minimum_uid=1000
  6. nano /etc/pam.d/common-password
  7. password        [success=2 default=ignore]      pam_krb5.so minimum_uid=1000 try_first_pass use_authtok
  8. nano /etc/pam.d/common-session
  9. session         optional                        pam_krb5.so minimum_uid=1000

SSH Server konfigurieren

  1. nano /etc/ssh/sshd_config
  2. # GSSAPI options
  3. GSSAPIAuthentication yes
  4. GSSAPICleanupCredentials yes
  5. # Optional lässt sich auch der Zugriff noch auf eine Gruppe einschränken
  6. AllowGroups server-admin

Keytab anlegen

Da sich Kerberos-Dienste dem Client gegenüber authentifizieren müssen werden spezielle Dienst-Principals benötigt. Diese Principals haben immer den Namen Dienst/FQDN@REAL. Mögliche Dienste sind z. B. host (SSH) oder http. Den Principal werden wir auf dem UCS DC aus der Datenbank auslesen und in eine keytab-Datei schreiben.

  1. ssh dc.ecample.com
  2. samba-tool domain exportkeytab /tmp/krb5.keytab --principal "host/fqdn@REALM"

Anschließend können wir die keytab auf sicherem Weg (z. B. SCP) auf den Server übertragen. Die Datei muss zwingen krb5.keytab heißen, da der ssh-Daemon nach dieser Datei sucht und muss unter /etc/krb5.keytab abgelegt werden.

Dienste neustarten

Um die Änderungen anzuwenden müssen noch die Dienste neugestartet werden. Danch solltet ihr euch per SSO am SSH Server anmelden können.

  1. # sssd neustarten
  2. systemctl restart sssd
  3. # sshd neustarten
  4. systemctl restart sshd

Euch hat der Beitrag gefallen, ihr habt Fragen oder Anregungen? Hinterlasst mir einen Kommentar oder diskutiert im OSBN-Chat.

Kommentare

Linear Verschachtelt
Feinripptraeger

Feinripptraeger

Moin,

hast du durch einen dummen Zufall auch noch eine Idee wie ich den Apache 2 dazu überreden kann Kerberos zu nutzen?

Habe bereits hunderte Tutorials durch gespielt und versucht mit der Doku von modauthkerb weiter zu kommen aber dieser *** Piiieep *** lässt unter RedHat nicht dazu bewegen.

Robert Kaussow

Hi,

bis jetzt leider noch nicht. Das Thema steht aber als nächstes auf meiner Agenda :-) Sobald ich dazu gekommen bin werde ich das sicherlich wieder in einen Beitrag verpacken. Wenn du bis dahin weiter gekommen bist, würde ich mich aber freuen wenn du mich auf dem laufenden hältst.

Robert Kaussow

Also SSO mit Apache2 funktioniert :-) zumindestens habe ich es mit icinga web 2 zum laufen gebracht. Wenn ich dazu komme schreibe ich die nächsten Tage einen kurzen Beitrag dazu.

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht veröffentlicht, sondern nur für eventuelle Benachrichtigungen verwendet.
Die Formatierung der Kommentare ist über Markdown möglich.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Gravatar Autoren-Bilder werden unterstützt.
Markdown-Formatierung erlaubt