Samba 3.x als Domänen-Mitglied
Beitritt zu einer Windows 2003-Domäne mit Benutzerübernahme
Samba - Dein Auftritt!
Als nächstes möchten wir den Server in die Domäne integrieren. Das ist notwendig, um auch die Benutzer und Gruppen der Domäne zu erhalten. Vorweg muss allerdings einmal smb.conf genauer unter die Lupe genommen werden. Deswegen hier der Auszug aus meiner Beispiel-smb.conf:
[global] workgroup = PRODAS netbios name = Fileserver realm = PRODAS.LOCAL idmap uid = 10000-15000 idmap gid = 10000-15000 winbind separator = / winbind use default domain = Yes security = ADS encrypt passwords = yes password server = pds-ad.prodas.local client use spnego = yes [backup] comment = Backup path = /srv/samba browseable = yes read only = no guest ok = no valid users = @alle create mask = 0770 directory mask = 0770
Hier gibt es einige Neuerungen, aus diesem Grund erläutere ich die wichtigsten neuen Einstellungen:
| Parameter | Erklärung |
|---|---|
| workgroup | Arbeitsgruppe |
| netbios name | Name des Servers |
| realm | Entspricht dem Kerberos-Realm |
| idmap uid | Definiert den Bereich der User-IDs, der gebraucht wird, um die Benutzer der Domäne auf die Unix-Benutzer zu mappen. |
| idmap gid | Definiert den Bereich der Gruppen-IDs, der gebraucht wird, um die Gruppen der Domäne auf die Unix-Gruppen zu mappen. |
| winbind separator | Dieser Parameter gibt an, mit welchen Trennzeichen die Benutzer auf dem Unix-System aufgelistet werden. »/« gibt an, dass die Benutzer nach dem Prinzip DOMÄNE/USER aufgelistet werden |
| winbind use default domain | Gibt an, ob Winbind ohne Domänenbezeichnung mit den Benutzernamen arbeitet |
| security | Samba arbeitet als Domänen-Mitglied in einem ADS-Realm |
| encrypt passwords | Passwörter sind verschlüsselt |
| password server | Server zur Passwort-Validierung |
| client use spnego | SMB-Signing wird aktiviert. Damit wird praktisch die Kerberos-Authentifizierung aktiviert. |
In smb.conf haben wir unseren Server gesagt, dass er ein Domänen-Mitglied wird. Bevor das alles funktionieren kann, müssen wir den Server in die Domäne aufnehmen. Dazu verwenden wir den neuen Befehl net. In früheren Versionen von Samba wurde dafür smbpasswd verwendet. Dieses Tool wurde ab 3.x durch den net Befehl ersetzt. Um den Server in die Domäne Prodas zu integrieren, nutzt man folgenden Befehl:
net join -S prodas -UAdministrator%password
Danach sollte man ungefähr folgende Meldung erhalten:
Joined 'PDS-BACKUP' to realm 'PRODAS.LOCAL'
Damit ist der Rechner erfolgreich in die Domäne aufgenommen und somit sind wir ebenfalls ein Schritt weiter. Nun geht es darum, die Benutzer und Gruppen von der Domäne zu erhalten.
Winbind und die Bindung an Windows
Winbind ist schon ein älterer Bestandteil von Samba und ist eine Methode, die Benutzerverwaltung von Windows und Linux zu vereinheitlichen. Mit Hilfe von Winbind werden alle Benutzer, Gruppen und Computerkonten, die in dem Active-Directory vorhanden sind, auf das Linux-System temporär (also solange Winbind läuft) übertragen. Damit benötigen wir keine Benutzerverwaltung auf dem Linuxsystem, was den Administrationsaufwand erheblich verringert. Winbind wird zentral durch /etc/samba/smb.conf konfiguriert und benötigt keine weitere Konfigurationsdatei. Dem Linux-System muss allerdings mitgeteilt werden, dass anfallende Zugriffe auf die Benutzerdatenbank an Winbind weitergeleitet werden. Das wird über /etc/nsswitch.conf (Auszug unten) erledigt:
passwd: files winbind group: files winbind
Jetzt müssen alle Dienste nochmal gestartet bzw. neu gestartet werden. Das erfolgt mit folgenden Befehlen:
rcsmb start bzw. rcsmb restart rcnmb start bzw. rcnmb restart rcwinbind start bzw. rcwinbind restart
Um zu testen, ob Winbind auf vernünftig läuft, gibt es die Befehle:
wbinfo -u (Hiermit werden die Benutzer aus dem Active-Directory angezeigt) wbinfo -g (Hiermit werden die Gruppen aus dem Active-Directory angezeigt)
Alternativ sollten die Benutzer mit diesen Befehlen auch sichtbar sein:
getent passwd getent group
Wenn die Benutzer und Gruppen korrekt angezeigt werden, so können sie in /etc/samba/smb.conf verwendet werden.
Beispiele dazu:
Dem Benutzer rainer das Recht geben, auf die Freigabe zugreifen zu dürfen:
valid users = rainer
Der Domänengruppe Software aus der Domäne Prodas Zugriff geben:
valid users = @PRODAS/Software
Hinweise: Das @-Zeichen gibt hierbei an, dass es eine Gruppe ist. Der Domänenbezeichner PRODAS gibt an, dass es eine Gruppe aus der Domäne ist. Wichtig: Der Slash »/« muss das Zeichen des Winbind-Separators in /etc/samba/smb.conf sein. Software ist die eigentliche Gruppe.
Probleme und Fehlersuche
Hier noch mal der Hinweis: Bitte alle Pakete nur in den aufgeführten Versionen oder höher verwenden. Somit geht man den meisten Problemen von vornherein aus dem Weg. Es sollte auch wirklich Schritt für Schritt vorgegangen werden. Das heißt, erst mal testen, ob Kerberos mit kinit (siehe oben) funktioniert. Wenn das nicht funktioniert, liegt irgendetwas mit /etc/krb5.conf oder mit der Namensauflösung im Argen. Wenn beides funktioniert, sollte getestet werden, ob /etc/samba/smb.conf evtl.
Sollte es dort keine Fehler geben, muss die Integration in die Domäne erfolgreich verlaufen. Gibt es dabei Probleme sind die Log-Dateien in /var/log/samba/log.* zu betrachten. Evtl. hilft es auch schon, den Parameter Log Level in /etc/samba/smb.conf anzupassen. Ist die Integration erfolgreich verlaufen, ist man dem Ziel schon sehr nahe und die letzte Hürde ist nur noch Winbind. Dabei /etc/nsswitch.conf nicht vergessen und immer fleißig die Log-Dateien betrachten.
Win2000-Domänencontroller
Das gleiche Beispiel sollte auch mit einem Win2000-Domänencontroller funktionieren. Allerdings wird bei Win2000 noch Kerberos in der Version 4 verwendet und somit kann ich nicht sagen, ob Heimdal 0.62 oder höher damit vernünftig läuft. Die Option client use spnego in smb.conf muss allerdings dann auf no gesetzt werden. Sollte das jemand mal probieren, so würde ich das hier gerne ergänzen!
Danksagung
Ich habe dieses Projekt nicht nur für Testzwecke verwendet, sondern es ist definitiv im täglichen Einsatz in meiner Firma. Um dieses System auf die Beine zu stellen, ist sehr viel Zeit (einige Monate!) vergangen und das hat auch sehr viel Rechere und ebenfalls sehr viel Arbeitszeit gekostet. Aus diesem Grund möchte ich hier dem Unternehmen ProDas Datensysteme GmbH in Essen/Oldenburg danken, das mir die Hardware, Software und die Arbeitszeit zur Verfügung gestellt hat, um das Ganze zu erarbeiten. Natürlich möchte ich mich auch bei allen Teilnehmern aus den Samba-Newsgroups sowie den Personen aus der Samba-Mailingliste bedanken. Ich hoffe, mit diesen Artikel einigen Benutzern geholfen zu haben, die Integration zwischen beiden Welten zu vereinfachen.

