Kleine und große Linux AHAs
Winbind und idmap_rid
Ich weiß nicht warum, aber die ganze Welt schimpfen auf Winbind. Ist aber meiner Meinung nach oft zu unrecht, denn es kann einem viel Arbeit beim AD/LDAP/ID Mapping ersparen. Wer Winbind noch nicht kennt, Winbind mappt die Windows SIDs auf lokale Linux UIDs und GIDs, sodass man unter Linux mit den Active Directory Benutzern und Gruppen arbeiten kann.
Meist wird winbind aber nicht eingesetzt, da es im nicht konfiguriertem Zustand zu einer Windows SIDs auf verschiedenen Servern unterschiedliche UIDs bzw. GIDs zurück liefert. Das ist in einer professionellen Umgebung natürlich inakzeptabel.
Die Lösung, die komischerweise nur wenige kennen hier, ist idmap_rid. Mit diesem Winbind Backend werden auf allen Linux Servern die selben UIDs zu Windows SIDs generiert.
Hier unsere Konfiguration mit idmap_rid in Kurzform (wer noch mehr wissen möchte einfach mich anschreiben).
Zunächst die Kerberos Konfiguration:
/etc/krb5.conf:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = <SUBDOM.DOMAIN.DE>
dns_lookup_realm = true
dns_lookup_kdc = yes
ticket_lifetime = 24h
forwardable = yes
[realms]
<SUBDOM.DOMAIN.DE> = {
default_domain = <subdom.domain.de>
}
[domain_realm]
.<subdom.domain.de> = <SUBDOM.DOMAIN.DE>
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Die nsswitch nicht vergessen:
/etc/nsswitch.conf:
... passwd: files winbind shadow: files winbind group: files winbind ...
Und hier die Einträge in der smb.conf:
/etc/samba/smb.conf
[global] workgroup = <WORKGROUPNAME> security = ads realm = <SUBDOM.DOMAIN.DE> password server = * wins server = load printers = no printcap name = /etc/printcap idmap domains = DLD idmap config DLD:backend = rid idmap config DLD:range = 40000-1000000 winbind separator = / template shell = /bin/bash winbind enum users = yes winbind enum groups = yes winbind use default domain = yes acl group control = yes [test] comment = Test Share for domain users only path = /smbdata read only = yes valid users = @"DOM/domain users" write list = "DOM/testy"
Die wichtigen Zeilen sind hier die drei idmap Einträge. Hier habe ich als backend, für die Berechnung der Linux UIDs und GIDs das Modul “rid” angegeben sowie eine Range für die IDs von 40.000 – 1.000.000 reserviert, sollte reichen…
Nachdem einem
net ADS join -U <username>
kann mit
wbinfo -t
die Winbind Konfiguration getestet werden. Ist hier alles OK sind die AD SIDs dem Linux bereits bekannt.
Prüfen:
getent passwd | grep testy testy:*:65435:78221:USERNAME:/home/DOM/testy:/bin/bash
Der Benutzer testy hat bei dieser Konfiguration auf allen Linux Servern die uid 65435.
Nun dürfen alle Benutzer aus der AD Gruppe “domain users” auf die Samba Freigabe test zugreifen und testy darf zusätzlich schreiben.
Das ganze funktioniert übrigens auch mit mehreren Domains! Die Manpage “man idmap_rid” hilft weiter.
Einziger Nachteil ist hier, dass man jedem dieselbe Shell zuweisen muss. Das benötigt man ja aber eh nur, wenn sich der Benutzer auch direkt am System anmelden möchte.
Also: Winbind ist nicht nur böse! Nicht immer drauf rumhacken!
| Artikel drucken | Dieser Beitrag wurde von Sascha am 31. März 2010 um 12:47 veröffentlicht und unter Systemmanagement, ubuntuusers.de abgelegt. Du kannst allen Antworten zu diesem Beitrag durch RSS 2.0 folgen. Du kannst direkt zum Ende gehen und einen Kommentar hinterlassen. Pings ist momentan nicht möglich. |


