Linux im Active Directory

Allein die Überschrift ist bereits irgendwie fremd. Das Microsoft ActiveDirectory ist aus meiner Sicht bereits die Hölle und ich beschäftige mich nur sehr wenig mit diesem Stück Software. Genaugenommen beschäftige ich mich damit eigentlich überhaupt nicht, oder sollte es zumindest nicht, das steht nämlich nicht in meiner Tätigkeitsbeschreibung.

Überhaupt bin ich bisher in der glücklichen Lage das ich meinen Unterhalt nicht durch Verwendung von Microsoft Produkten verdienen muß.

Für den irgendwo bereits erwähnten neuen Speicher der Firma BlueArc ist es allerdings notwendig, das sich unsere Linuxterminals mit dem am Standort eingesetzten ActiveDirectory verstehen. Eigentlich bin ich auch ganz froh das ich mich nicht selbst mit Kerberos und OpenLDAP auseinandersetzen muß, sondern dafür jemand anderes bezahlt wird 🙂

Wir hatten auch schon selbst mit Kerberos ein wenig experimentiert, der Niels hat sogar mal ne Hausarbeit darüber geschrieben. Nun wollen wir das ganze also auch im Produktivbetrieb haben. Als netten Nebeneffekt erhoffe zumindest ich mir, das wir mal brauchbares Single-Sign-On hinbekommen, aber das steht momentan nur auf der Wunschliste.

Im Internet findet man reichlich Zeug über Linux und AD, geraten wird einem da auch gern zu Likewyse, da gibt es bereits fertige Pakete um Linuxclienten einer Domäne hinzuzufügen. Aber wir wären ja nicht wir, wenn wir nicht das ganze selbst bauen würden und direkt der Domäne beitreten wollen wir auch nicht. Vorerst begnügen wir uns mit der Authentifizierung via PAM.

Ich weiß nicht genau womit ich damit soviel Zeit verplempert habe, wenn man erstmal alles wegwirft und nochmal in Ruhe von vorne anfängt, ist das in fünf Minuten erledigt:

krb5-client installieren, pam-krb5 dazu, nscd noch und die restlichen Pakete sind entweder Abhängigkeiten oder bereits auf dem System installiert. Winbind kann man direkt wieder runterkegeln und pam-ldap hab ich gleich mitentsorgt um sicher zu gehen das wir nicht doch noch gegen LDAP authentifiziern.

Kurz krb5.conf anpassen:

[libdefaults]
     default_realm = AD_DOMAIN.OHNE.TIPPFEHLER
[realms]
    AD_DOMAIN.OHNE.TIPPFEHLER = {
        kdc = ip.oder.name.vom.ad-cluster
        admin_server = ip.oder.name.vom.ad-cluster
    }
[domain_realm]
    .unsere.dns.domain = AD_DOMAIN.OHNE.TIPPFEHLER
   unsere.dns.domain = AD_DOMAIN.OHNE.TIPPFEHLER

und fertig ist die Kerberos anbindung, das ganze PAM-Zeug wird automagisch bei Debian mitkonfiguriert, aber so schwer ist es jetzt auch nicht noch pam_krb5 mit einzubinden. Vorausgesetzt man schreibt nicht wie ich pro Zeile 4-5 Dinge falsch …

Danach sollte man bereits mit kinit dein-user@deine.domain ein gültiges Ticket Granting Ticket vom KDC bekommen, Aliase kann man noch hinzufügen, muß man aber nicht.

Jetzt muß man Linux nur noch beibringen die Nutzer auch im AD zu suchen. Da AD auch simpelstes LDAP kann, benutzen wir das also in der ldap.conf:

uri     ldaps://ad-cluster.als.name.oder.ip
base  dc=beispiel,dc=einer,dc=baumstruktur
rootbinddn    authnutzer@ad-domain
nss_map_attribute   homeDirectory   unixHomeDirectory

Nss-maps kann man beliebig erweitern, falls noch andere Infos aus dem AD gezogen werden sollen. Nur noch das Passwort für den authnutzer in nss-ldap.secret hinterlegen, fertig.

Danach sollte alles was mit PAM zu tun hat die Credentials via Kerberos gegen das AD authentifizieren und ein TGT nach erfolgtem Login erstellen.

Jetzt muß ich es nur noch hinbekommen die HomeDirectories via NFSv4 und sec=krb5 automatisch zu mounten, aber das kann ja eigentlich nicht so schwer sein…