Linux am AD
|
Geschrieben von Beat Rubischon (Link) am
Montag, 3. April 2006, 21:15
aus dem anschluss-an-das-böse dept.
Dank Samba und dem winbindd kann man sich die Benutzer, Gruppen und gar Hostnamen aus einem Active Directory ziehen. Doch ganz so einfach ist die Sache nicht - vor allem dann, wenn man Debian benutzt und ganz auf sich selbst gestellt ist.
Als erstes installiert man sich winbind, smbclient und krb5-user. Die Dependencies sollten damit ausreichen, um alle benötigten Pakete nachzuziehen.
Dann wird man ein paar Löcher in den Bauch gefragt, die möglichst wahrheitsgetreu beantwortet werden sollen. Daraufhin funkioniert - nichts. Handarbeit ist gefragt.
Erst /etc/krb5.conf (ich bin mir nicht sicher, ob es das wirklich braucht - aber die Dokumentationen im Netz setzen dieses File voraus - bei der richtigen Beantwortung der Fragen von Debconf stimmen die Werte):
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = AD.EXAMPLE.COM
admin_server = AD.EXAMPLE.COM
}
Diese Einstellungen kann man mit kinit Administrator@EXAMPLE.COM testen. Lieferte bei mir immer eine Fehlermeldung - jedoch unterschiedliche, je nach dem ob der Benutzer oder das Passwort falsch oder eben alles richtig war :-)
Dann die /etc/samba/smb.conf (nur das nötigste daraus):
[global]
workgroup = EXAMPLE
realm = EXAMPLE.COM
security = ADS
password server = ad.example.com
idmap uid = 10000-20000
idmap gid = 10000-20000
template primary group = users
template shell = /bin/bash
winbind separator = +
winbind use default domain = Yes
Um in den Genuss eines Domänenzuganges zu kommen, muss man erst die Domäne joinen. Das geht mit net ads join EXAMPLE.COM net ads join -U Administrator.
Jetzt kommt der grosse Augenblick. Wir starten /etc/init.d/winbind start. Tut es? wbinfo -u oder wbinfo -g sollten Output bringen.
Nun kommt der nächste Schritt. Wir möchten diese Informationen dem System zugänglich machen. Dazu editieren wir /etc/nssswitch.conf /etc/nsswitch.conf:
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files wins dns
networks: files
Die Zeile shadow habe ich bewusst nicht editiert. ssh kann Aerger machen, wenn er eine shadow-Zeile erwartet aber keine bekommt. Die braucht er letztendlich auch nicht, da wir über PAM autorisieren. Nun testen wir auch diese Einstellungen - am einfachsten mit einem getent passwd und einem getent group.
Jetzt geht es an das Eingemachte. Nämlich PAM. Wir editieren dazu drei Files:
/etc/pam.d/common-account
account sufficient pam_unix.so
account required pam_winbind.so use_first_pass
/etc/pam.d/common-auth
auth sufficient pam_unix.so nullok_secure
auth required pam_winbind.so use_first_pass
/etc/pam.d/common-password
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password required pam_winbind.so use_first_pass
/etc/pam.d/common-session
session sufficient pam_unix.so use_first_pass
session required pam_winbind.so use_first_pass
Wirklich debuggen lässt sich PAM leider nicht. Es bleibt uns nichts anderes übrig als tail -f /var/log/auth.log zu starten und in einer root-Shell login zu benutzen. Klappt das, so sollte erst der sshd neu gestartet und danach auch ein Login über diesen Weg getestet werden. Es sollten jeweils Benutzer aus der Domäne, aber auch lokale getestet werden. Wenigstens root sollte sich lokal einloggen können ;-)
Stolpersteine sind vor allem Tippfehler. Vor allem in der PAM-Konfiguration - da sind die Fehlermeldungen miserabel und man kann nicht wirklich debuggen. Weiterhin muss auch die Zeit stimmen. Im Zweifelsfalle synchronisiert man den lokalen ntpd auf den Domänenkontroller, auch wenn dessen Zeit danebengeht.
In diesem Fall liegt das Home lokal - man guckt sich für den richtigen Platz am Besten getent passwd an. Mittels geeigneter PAM-Module sollte es an und für sich auch möglich sein, direkt das Home ab dem Windows-Server zu mounten.
Permalink
|
Das Kleingedruckte: Der Besitzer der folgenden Kommentare ist wer
immer sie eingeschickt hat. Wir sind in keiner Weise für sie
verantwortlich.
-
Re: Linux am AD
Geschrieben von Beat Rubischon (Link) am
Dienstag, 18. Dezember 2007, 15:21
Feedback aus der letzten Installation - net ads join sollte mit dem Administratoren und nicht mit der Domain gemacht werden, /etc/nsswitch.conf hatte ein "s" zu viel. Text ist entsprechend korrigiert.
Wenn die Domain entsprechend vorbereitet ist, kann folgende Zeile das User / UID und Gruppe / GID Mapping direkt aus dem AD bezogen werden:
winbind nss info = sfu
|
|