Member-Server (Samba) unter Ubuntu 8.04 bekommen Probleme, wenn die Domänen-Controller auf Windows 2008 R2 aktualisiert werden. Die Probleme äußern sich z.B. im Log des Winbind mit “NT_STATUS_PIPE_DISCONNECTED (0xc00000b0)“. Äußerlich lassen sich Benutzer nicht mehr vernünftig authentifizieren.
Grund ist, dass die in Ubuntu 8.04 enthaltene Samba-Version 3.0.28 einen Bug enthält. Dieser ist ab Samba 3.0.33 gefixt – im Fall von Ubuntu 8.04 hilft also nur ein manuelles Updaten der Samba-Version.
Leider scheinen einige der unter samba.org verfügbaren Versionen nicht gefixte Probleme zu haben. Deshalb war es anfangs ein wenig schwierig, eine out-of-thebox funktionierende Samba-Version zu finden. Beispielsweise gab es hier mit den Versionen 3.0.37, 3.4.12 und 3.5.8 Probleme mit dem Support von Dateisystem-ACLs.
Mit der Version 3.5.4 habe ich eine Version gefunden, die sich zufriedenstellend übersetzen ließ und mit allen notwendigen Features läuft.
Downloads
Installation notwendiger Entwickler-Pakete:
sudo apt-get install build-essential libldap2-dev libkrb5-dev uuid-dev libpam0g-dev zlib1g-dev libacl1-dev
Download und Entpacken der Samba-Quellen:
cd /usr/src sudo wget http://samba.org/samba/ftp/samba-3.5.4.tar.gz sudo tar -xzf samba-3.5.4.tar.gz cd samba-3.5.4/source3
Die richtigen Parameter für ./configure
Die Parameter für das configure-Skript wurden so gewählt, dass sich die entstehende Samba-Installation möglichst nicht von der Original-Installation unterscheidet
sudo ./configure –cache-file=./config.cache –prefix=/usr –sysconfdir=/etc –localstatedir=/var –with-privatedir=/etc/samba –with-piddir=/var/run/samba –with-fhs –enable-shared –enable-static –disable-pie –with-rootsbindir=/sbin –with-pammodulesdir=/lib/security –with-pam –with-syslog –with-utmp –with-readline –with-pam_smbpass –with-libsmbclient –with-winbind –with-shared-modules=idmap_rid,idmap_ad –with-automount –with-ldap –with-ads –with-dnsupdate –with-cifsmount –with-acl-support –with-quotas
Übersetzen und installieren
sudo make
sudo /etc/init.d/winbind stop sudo /etc/init.d/samba stop
sudo apt-get remove samba winbind sudo make install
Per „make install“ wurden die nsswitch-Bibliotheken nicht mit installiert. Die müssen deshalb per Hand kopiert werden:
cd ../nsswitch sudo cp libnss_win*.so /usr/lib/
Anschließend kann das frisch gebaute Samba gestartet werden:
sudo /etc/init.d/winbind stop sudo /etc/init.d/samba stop
Troubleshooting
- Möglicherweise muss Samba jetzt noch einmal per „net join“ in die Domäne aufgenommen werden.
- Bei meinen Tests mit den unterschiedlichen Samba-Versionen hatte ich den Winbind mit seiner idmap durcheinander gebracht. In so einem Fall hilft das Löschen der idmap unter /var/lib/samba/ und der Neustart vom winbind.
Zum Testen der Samba/Winbind Funktionalität eignen sich folgende Kommandos:
- „wbinfo -u“ bzw. „wbinfo -g“ zum Ausgeben der Domänen Benutzer bzw. Gruppen
- „getent passwd“ zum Testen der nsswitch-Bibliotheken und der korrekten Funktion der idmap
- Mit „wbinfo -a <Benutzer>%<Passwort>“ kann die Authentifizierung eines Domänen-Benutzers getestet werden.