Active Directory: LDAP läuft, Kerberos-Login via SSH

Szenario: Man hat die Anforderung, ein Login mit SSH via Kerberos in einer Microsoft AD-Umgebung zu ermöglichen, z.B. mit einer modernen Version von PuTTY. Wenn man danach jetzt im Internet sucht, findet man sehr oft Lösungen, die davon sprechen, daß man da Samba installieren muß, mit winbind etc. Die Sache geht aber deutlich einfacher, wenn man z.B. Microsoft Services for Unix verwendet, wie wir das in der Firma, in der ich derzeit tätig bin, tun. Was man mit MS SFU macht ist, daß man im LDAP einfach zusätzliche Attribute anlegt die dann z.B. die Unix-GID einer Gruppe oder die UID eines Users repräsentieren. Das mappt man dann unter Linux entsprechend und schon hat man ausgewählte Gruppen auch unter Linux zur Verfügung. Es besteht also keine Notwendigkeit, wie winbind irgendwelche Mappings vorzunehmen.

Damit man sich nun per Kerberos an den Servern anmelden kann sind eigentlich nur drei Schritte notwendig:

  • man konfiguriert die /etc/krb5.conf richtig, sprich, trägt dort den Namen der AD-Domäne, KDC etc. ein.
  • Man exportiert auf einem DC eine Keytab mittels ktpass.exe. Dazu muß man übrigens kein Computer-Konto verwenden, ein normaler User reicht vollkommen aus (ist sogar einfacher, weil bei dem das Passwort nicht ausläuft). Als Name des Principals wählt man host/<fqdn> (ohne die spitzen Klammern!). Ob die Keytab passt prüft man mit einem einfachen
kinit -kt /etc/krb5.keytab host/<fqdn>
  • Man stellt in der SSH-Konfiguration folgendes ein:
GSSAPIAuthentication yes

Jedes moderne Linux sollte übrigens AES256-RC4-verschlüsselte Keytabs können, es gibt also keinen Grund mehr, zu (3)DES-CBC zu greifen.

Mehr ist nicht zu tun. Brahms, “Ungarische Tänze”.