InhaltsverzeichnisWinbind
Winbind ist eine Software, mit deren Hilfe ein Linuxrechner in eine Windows-Domäne aufgenommen werden kann. Installation
Der aufzunehmende Rechner muss dem DNS-Server bekannt sein, dh. der Client muss von anderen per apt-get install winbind libnss-winbind ntp libnss-winbind libpam-winbind krb5-user
Samba ist nicht nötig!!! Samba ist nur nötig, wenn Freigaben oder Drucker konfiguriert werden sollen.(siehe auch: SAMBA) /etc/init.d/winbind stop jetzt die Datei /etc/nsswitch editieren: passwd: files winbind group: files winbind # "compat winbind" geht meistens auch
jetzt die Datei /etc/samba/smb.conf editieren. workgroup = MYNTDOM netbios name = myserver wins support = no wins server = 192.168.1.99 security = ADS winbind offline logon = yes winbind use default domain = yes winbind refresh tickets = yes winbind enum users = yes winbind enum groups = yes encrypt passwords = true password server = myDomcontr.my.dom.ain realm = MY.DOM.AIN idmap config MYNTDOM:range = 20000-30000 idmap config MYNTDOM:backend = ad idmap config * : backend = tdb # ab hier weitere Freigaben konfigurieren
jetzt die Datei /etc/krb5.conf editieren. [libdefaults] default_realm = MY.DOM.AIN [realms] MY.DOM.AIN = { kdc = 192.168.1.90 admin_server = 192.168.1.90 kpasswd_server = 192.168.1.90 default_domain = MYNTDOM [domain_realms] .MYNTDOM = MY.DOM.AIN MYNTDOM = MY.DOM.AIN jetzt die Datei /etc/pam.d/common-account editieren: account sufficient pam_krb5.so account sufficient pam_winbind.so use_first_pass session required pam_mkhomedir.so skel=/etc/skel umask=0022 account required pam_unix.so use_first_pass jetzt die Datei /etc/pam.d/common-auth editieren: auth sufficient pam_krb5.so auth sufficient pam_winbind.so use_first_pass # wenn nur einer bestimmten Windowsgruppe Zugriff erlaubt sein soll, Zeile so abändern: # auth sufficient pam_winbind.so use_first_pass require_membership_of=myNTGroup1,myNTGroup2 auth required pam_unix.so nullok_secure use_first_pass jetzt die Datei /etc/pam.d/common-session editieren: session sufficient pam_krb5.so session sufficient pam_winbind.so session sufficient pam_mkhomedir.so session required pam_limits.so account required pam_unix.so jetzt den Rechner in die Windowsdomäne aufnehmen und den Clientrechner neustarten: net ads join –U administrator Enter administrators's password: <password von admin> net ads keytab create -U administrator Enter administrator's password: reboot Nach dem Neustart sollte eine Anmeldung mit einem Domänenaccount möglich sein. Und jetzt das ganze nochmal als ScriptTricks
Benutzer wbinfo -u
Zeige mir alle Benutzer der Domäne an: net ads user -U einDomänenbenutzer
oder: net rpc shell -U domadmin -S mydomctrl user list
oder: rpcclient -U domadmin mydomctrl -c enumdomusers Zeige mir alle Domänenbenutzer deren samaccountname mit a beginnt und deren LDAP-Felder der Domäne an: net ads search "(sAMAccountName=a*)" -U einDomänenbenutzer Zeige mir alle deaktivierten Benutzer der Domäne an: net ads search "(userAccountControl:1.2.840.113556.1.4.803:=514)" -U einDomänenbenutzer Zeige mir alle gesperrten Benutzer der Domäne an: net ads search "(&(&(sAMAccountType=805306368)(lockoutTime>=1)))" -U einDomänenbenutzer Zeige mir alle Benutzer mit nicht ablaufendem Passwort an: net ads search "(userAccountControl=66048)" samaccountname -U einDomänenbenutzer Zeige mir die Mailadresse des Benutzers „Meier“ an: net ads search "(samAccountname=meier)" name mail -U einDomänenbenutzer Zeige mir alle Benutzer der Domäne und die lokalen Benutzer an: getent passwd Zeige mir die SID des Benutzers „doedel“ an: wbinfo -n doedel Zeige mir den Windowsbenutzernamen der SID „S-1-5-21-2025429265-861567501-839422115-1234“ an: wbinfo -s SID S-1-5-21-2025429265-861567501-839422115-1234 Zeige mir die Unix-Benutzer-UID der Windows-SID „S-1-5-21-2025429265-861567501-839422115-1234“ an: wbinfo -S SID S-1-5-21-2025429265-861567501-839422115-1234 Zeige mir die Windows-SID der Unix-Benutzer-UID „12345“ an: wbinfo -U 12345 Zeige mir Infos von einem Benutzer an: wbinfo -i doedel oder: net rpc shell -U domadmin -S mydomctrl user show doedel user edit description doedel Gruppeninfos: net rpc shell -U domadmin -S mydomctrl user info doedel Prüfe ob der Benutzer gesperrt ist: net rpc shell -U domadmin -S mydomctrl user edit autolock doedel quit #oder ganz einfach: su doedel password: xxx # dann gibts die Meldung: Your account has been locked. Please contact your System administrator su: Fehler bei Authentifizierung Prüfe das Passwort eines Benutzers: wbinfo -a doedel%seinPasswort Zeige mir alle Benutzer der Domäne und ihre jeweilige AD-Gruppenmitgliedschaft an: for i in `wbinfo -u`;do echo $i;id $i|tr , '\n'|nl;done Füge einen Domänenbenutzer in eine lokale Gruppe ein: usermod -aG www-data myNTUser Erstelle von Linux aus einen Window-Domänenbenutzer myNTUser und aktiviere ihn: net ads user add myNTUser -U domadmin%domadminpassword # setze jetzt das Passwort: net ads password myNTUser myNewP1ssw0rd-U domadmin%domadminpassword # oder net ads user add myNTUser -U domadmin%domadminpassword password=myNewP1ssw0rd flags=en # Benutzer muss danach noch aktiviert werden: net rpc shell -U domadmin%domadminpassword -S Domctlr user edit disabled myNTUser no exit # füge den Benutzer jetzt in die Gruppe myNTGroup ein: net rpc group addmem myntgroup myNTUser -u domadmin%domadminpassword -S Domctlr Benutzerpasswort soll nicht mehr ablaufen: net rpc shell -U domadmin%domadminpassword -S Domctlr user edit pwnoexp myNTUser yes exit Teste indirekt ob der Benutzer doedel in einer NT-Gruppe myntgroup ist: ntlm_auth --username=doedel --require-membership-of=MYNTDOM\\myntgroup
wbinfo -g
Zeige mir alle Gruppen der Domäne per LDAP an: net ads search "(objectCategory=group)" samaccountname -U einDomänenbenutzer Zeige mir alle Gruppen der Domäne und die lokalen Gruppen an: getent group
Zeige mir alle Gruppen an, in der der Benutzer „doedel“ Mitglied ist: net rpc user info doedel -S myNTDomController -U user Enter user's password: geheim Zeige mir alle Mitglieder der Gruppe „myNTGroup“ an: net rpc group members myNTGroup -S myNTDomController -U einDomänenbenutzer Füge den Benutzer doedel in die Domänengruppe Luschies ein: net RPC group addmem "MYNTGROUP\Luschies" doedel -U domadm Enter domadm's password: geheim Entferne den Benutzer doedel aus der Domänengruppe Luschies : net RPC group delmem "MYNTGROUP\Luschies" doedel -U domadm Enter domadm's password: geheim Zeige mit alle Benutzer mit den Gruppen-SIDS an: net usersidlist
net cache flush /etc/init.d/winbind stop rm /var/cache/samba/* /etc/init.d/winbind start
dabei werden jedoch die IDs auf dem Linuxhost eventuell neu vergeben. echo meinpasswort | net rpc group addmem MeineGruppe meincomputer$ -S meindomctrl -U meinUser Zeige mir alle Dienste auf einem Rechner (oder Server) an: net rpc service list -S IPoderHostname -U einAdmin Enter einAdmin's password: Zeige mir ob der Zeitdienst auf einem bestimmten Server ausgeführt wird: net rpc service status w32time -S IPoderHostname -U einAdmin Enter einAdmin's password: Stoppe den Zeitdienst auf dem Server: net rpc service stop w32time -S IPoderHostname -U einAdmin Enter einAdmin's password: Starte den Zeitdienst auf dem Server: net rpc service start w32time -S IPoderHostname -U einAdmin Enter einAdmin's password: Starte den Windowsrechner neu : net rpc shutdown -r -t 120 -C "Rechner wird in 2 Minuten neu gestartet" -S IPoderHostname -U einAdmin Enter einAdmin's password: Teste die Domänenverbindung: wbinfo -t
Erstelle ein Kerberosticket mit WINBIND: wbinfo -K domuser%seinPassword Verhindere, dass einfache Benutzer sich interaktiv anmelden können;die Domänenauthentifizierung wird nur für SVN, Samba o.ä. gebraucht: touch /etc/nologin oder editiere die Datei /etc/pam.d/common-auth wie folgt: auth sufficient pam_winbind try_first_pass require_membership_of=meineNTGruppe1,meineNTGruppe2 Registriere den Computer erneut im DNS: net ads dns register Registriere den Computer erneut im DNS mit einer bestimmten IP-Adresse (wichtig wenn der Rechner mehrere IPs hat): net ads dns register -I 192.168.1.100 Erstelle einen Kerberostoken für einen Benutzer: net ads keytab create -U meinBenutzer Zeige mir allgemeine Infos an wo und wie der Rechner sich authentifiziert: net ads info Teste den Rechner auf Mitgliedschaft in der Domäne: net ads testjoin
Wenn es Probleme gibt mit dem net -d 10 ads info realm testen: realm discover $(hostname -d) realm list net ads keytab list klist smbcontrol all dump-domain-list
smbcontrol all reload-config Erweiterungen in der /etc/samba/smb.conf:
kerberos method = secrets and keytab
wenn winbind die ID eine Stunde statt 5 Minuten cachen soll dann: winbind cache time = 3600
wenn auch verschachtelte Untergruppen durchsucht werden sollen, dann: winbind nested groups = yes Homeverzeichnis umbiegen: template homedir = /daten/home/%D/%U
wenn auf allen Rechnern die selben GIDs verwendet werden sollen, dann auf allen Rechnern: idmap backend = idmap_rid:MyNTDOM=10000-20000 idmap config MYNTDOM:range = 20000-30000
dadurch erhält beispielsweise ein Benutzer mit der SID: sed -i '/^\[global]/a\winbind use default domain = yes' /etc/samba/smb.conf
erweiterte Dateiattribute unterstützen: vfs objects = acl_xattr map acl inherit = Yes store dos attributes = Yes
Backup/Restore von Winbindinformationen
Hoffentlich muss ich das nie zurückspielen. cd /var/lib/samba/ tdbbackup *.tdb ID-Mapping sichern: cd;mkdir backup net idmap dump /var/lib/samba/winbindd_idmap.tdb > backup/idmap.txt Besonderheiten SUSEnet join kann auch so gemacht werden: yast2 samba-client joindomain domain=MY.DO.MAIN user=myaduser password=geheim yast2 samba-client winbind enable #test mit: yast2 samba-client isdomainmember domain=MYNTDOMAIN
Suse fügt evtl. nicht die Parameter in der winbind use default domain = yes winbind enum groups = yes winbind enum users = yes
dann also diese hinzufügen. pam-config -a --mkhomedir Überwachung von Winbind mit snmpdapt install sudo snmpd
wbinfo braucht Rootrechte zur Ausführung. Debian-snmp ALL = (root)NOPASSWD: /usr/bin/wbinfo -t
in der Datei extend wbinfo /usr/bin/sudo /usr/bin/wbinfo -t dann Snmpdienst neustarten: systemctl restart snmpd
Danach sollte unter der OID Fehler
Fehler: rm /var/cache/samba/*.tdb /etc/init.d/winbind restart /etc/init.d/samba restart getent passwd getent group | grep meineGruppe #Gegenprobe id meinDomuser | grep meineGruppe
/etc/init.d/winbind stop winbindd -d 6 -i -s /etc/samba/smb.conf
hier alles anknipsen
client ldap sasl wrapping = plain
danach Neustart der dienste erforderlich. |