Als Samba 3 im Jahr 2003 veröffentlicht wurde, bestand es aus drei Diensten: Dem Fileserver »smbd
«
, dem Nameserver »nmbd
«
und dem Authentifizierungsserver »winbind
«
. Diese drei Dienste haben in ihrem Zusammenspiel mit dem restlichen System einen Dateidienst und/oder NT4-Domain-Controller bereitgestellt.
Bei der Entwicklung von Samba 4 wurde diese Struktur komplett überarbeitet. Dies rührt daher, dass eine Active-Directory-Domäne sehr viel mehr Dienste bereitstellen muss als nur die obigen drei: Die klassische NETBIOS-Namensauflösung wurde abgelöst durch DNS, Authentifizierung wurde zentralisiert mittels Kerberos und zentrale Datenhaltung wird über LDAP realisiert – einzig der Dateiserver ist beim Alten geblieben, wurde allerdings auf die neue Struktur angepasst.
Erstmalig ist es mit Samba 4 möglich, eine komplette Windows-Domänenstruktur auf Linux abzubilden. Die Debian-Pakete bieten diese Möglichkeit selbstverständlich an und fragen bei der Installation nach, welche Rolle das System im Netz spielen soll. Wir haben im Test vier Systeme provisioniert: eine virtuelle Maschine als Domänen-Controller (Debian Jessie), ein openATTIC-System als Domänenmitglied (Debian Jessie) und zwei Windows-Clients als Domänenmitglieder (Windows 7/8).
Das Netzwerkdateisystem ist nun mehr denn je in das Domänenkonzept integriert – es nutzen zu wollen, ohne die Benutzer und Berechtungen in der Domain zu verwalten, ist nur mäßig sinnvoll. Das hier beschriebene Setup ist also die Grundvoraussetzung, um Samba als gemeinsames Dateisystem im Unternehmen einsetzen zu können.
Das neue Samba ist so modular aufgebaut (siehe Listing 1), dass es auch möglich ist, die einzelnen Dienste auszulagern und beispielsweise DNS durch »bind9
«
oder den Verzeichnisdienst durch OpenLDAP zu ersetzen. Das Rundum-Sorglos-Paket ist allerdings für eine einfache Installation mehr als ausreichend.
Listing 1
Prozesse von Samba 4
Ein zentraler Dienst, den der DC bereitstellt, ist jedoch leicht zu übersehen: Eine Windows-Domäne erledigt ihre komplette Authentifizierung über Kerberos. Dieses Protokoll funktioniert nur dann, wenn bei allen Systemen die Uhrzeit um nicht mehr als fünf Minuten voneinander abweicht. Es gilt also unbedingt, einen NTP-Server zu konfigurieren, um Probleme in dieser Richtung auszuschließen.
Die Software-Installation des Domain Controllers (DC) ist mittels »apt-get install samba
«
sehr einfach zu erledigen. Debconf stellt während der Installation ein paar Fragen zur Rolle des Servers sowie zu den Eckdaten der Domäne und erledigt auch automatisch die Provisionierung, sodass man sich hier im Idealfall um nichts mehr selbst kümmern braucht. Falls dabei etwas schief geht – der häufigste Grund dafür dürfte sein, dass das Administratorkennwort an der Kennwortrichtlinie der Domäne scheitert – so ist eine erneute Provisionierung mittels »samba-tool domain provision
«
schnell erledigt. Die Pakete sorgen dann auch dafür, dass »samba-tool
«
die richtigen Vorgabewerte übernimmt.
Der Provisionierungsvorgang erzeugt unter anderem die Dateien »/etc/krb5.conf
«
und »/etc/samba/smb.conf
«
, die am Ende so aussieht wie in Listing 2. Diese Konfiguration deckt alles ab, was man zum Start benötigt.
Listing 2
/etc/samba/smb.conf
Für den Betrieb eines Samba-4-Servers als Domänenmitglied gilt es eine Einschränkung zu beachten: Das Programm »samba
«
unterstützt den Betrieb als Mitglied nicht. Diese Konfiguration wird daher mittels der bekannten Programme »smbd
«
, »nmbd
«
und »winbind
«
realisiert. Auch an dieser Stelle noch einmal der Hinweis auf den NTP-Client, der zuvor unbedingt konfiguriert werden sollte: Stimmt die Zeitsynchronisierung nicht, ist kaum mit einer funktionierenden Samba-Installation zu rechnen. Weiterhin muss geprüft werden, ob »hostname --fqdn
«
den korrekten, vollqualifizierten Namen des Rechners zurückgibt:
$ hostname --fqdn benrime.samba.lan
Zum Test sollte ein openATTIC-Storage-Server als Domänenmitglied auftreten. Dazu wurde auf dem Rechner erst Debian Wheezy installiert, openATTIC darauf konfiguriert und das System danach auf Debian Jessie aktualisiert. Anschließend wird das System – wie im openATTIC-Standard vorgesehen – durch den Befehl »oaconfig domainjoin
«
in die Domäne aufgenommen. Dieses Skript führt eine Reihe von Befehlen aus, die im Folgenden näher beschrieben werden und so auf jedem beliebigen Linux-System funktionieren.
openATTIC erzeugt zunächst die Datei »krb5.conf
«
(diese kann auch einfach vom DC kopiert werden) sowie die Samba-Konfiguration »/etc/samba/smb.conf
«
(Listing 3).
Listing 3
/etc/samba/smb.conf von openATTIC
Als nächstes testet openATTIC, ob Kerberos funktioniert, indem es sich als Administrator authentifiziert (Listing 4).
Listing 4
Kerberos-Authentifizierung
Ist dieser Schritt erfolgreich, so kann man mittels »net ads join -U Administrator
«
der Domäne beitreten. Die Samba-Konfiguration von openATTIC verwendet eine externe Keytab, um Kerberos-Authentifikation für andere Dienste außer Samba zu ermöglichen. Daher muss nun die Keytab erzeugt und validiert werden (Listing 5).
Listing 5
Kerberos-Keytab
Wenn das alles funktioniert hat, war der Domänenbeitritt erfolgreich. Nun bleibt noch »winbind
«
zu konfigurieren, indem man die Datei »/etc/nsswitch.conf
«
folgendermaßen anpasst:
passwd: compat winbind group: compat winbind
Nach einem anschließenden Neustart des Winbind-Servers (»service winbind restart
«
) kann das neue Domänenmitglied auf die Domäne zugreifen und Benutzer und Gruppen abrufen:
root@benrime:~$ getent passwd Administratoradministrator:*:10500:10513:Administrator:/home/SAMBA/administrator:/bin/bash root@benrime:~$ getent group "Domain Admins" domain admins:x:10512:test,administrator
Damit ist der Domänenbeitritt abgeschlossen.
Windows-Systeme können einer Samba-4-Domäne genauso beitreten wie einem klassischen Windows-Active-Directory (Abbildung 1). Man navigiert also in die Systemeinstellungen unter »Erweiterte Systemeinstellungen
«
, »Computername
«
, Ȁndern
«
, trägt dort die Domäne ein, beantwortet die Frage nach dem Administrator-Kennwort, und nach ein paar Sekunden des Wartens und einem Neustart ist der Domänenbeitritt erledigt. Auch die Konfiguration des NTP-Clients erledigt Windows beim Beitritt automatisch.