Testbericht: Einrichtung eines zweiten Domänencontrollers für einen Small Business Server 2003 auf Basis von Samba 4.

Ausgangssituation

Nach einigen Jahren zuverlässiger Arbeit kommt der Small Business Server eines Kunden langsam in die Jahre - und beginnt, sich zuweilen wie ein störrischer Esel zu verhalten.

Da es möglicherweise schwierig wird, dem Kunden die hochgelobte Kombination aus Standard-Server und “Cloud” finanziell schmackhaft zu machen, testen wir gerade, ob eine langsame Migration auf Linux-Server technisch machbar, für die User unproblematisch und für den Kunden wirtschaftlich sinnvoll ist. Möglicherweise lässt sich mit einer kombinierten Windows-Linux-Lösung eine deutlich höhere Zuverlässigkeit (Redundanz) als mit einer Cloud-Lösung zu einem günstigeren Preis realisieren.

In der ersten Phase versuchen wir, das nagelneue Samba 4 auf einem Debian 7 Server zu installieren.

Hardware und Netzwerk-Setup

Der Linux Server ist in diesem Fall ein längst ausrangiertes Gerät älterer Bauart - für den vorgesehenen Zweck vollkommen ausreichend. Er steht in einem unserer Büros und ist per VPN Router mit der Zentrale des Kunden verbunden. So können wir ungestört testen.

Samba kompilieren

Wir haben uns für das gerade erschienene Debian 7 Wheezy als Betriebssystem entschieden, nehmen aber nicht die Samba-Version des Paketverwalters, sondern kompilieren die aktuelle Version selbst - wie hier beschrieben: https://wiki.samba.org/index.php/Build_Samba

Für die spätere Authentifizierung muss Samba mit Kerberos-Unterstützung kompiliert werden. Deshalb sollte zunächst Kerberos installiert werden:

# aptitude install krb5-user

Checkout der stable Version per git:

# git clone -b v4-0-stable git://git.samba.org/samba.git samba-v4-0-stable

Kompilieren:

 # cd samba-master
 # ./configure 
 # make
 # make install

Hinzufügen des Linux Samba Servers zur bestehenden Domäne

Die folgende Anleitung im Samba Wiki beschreibt detailliert die Vorgehensweise: http://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC

Wir beschreiben hier die wichtigsten Schritte auf deutsch.

Zunächst sollten wir sicherstellen, dass die Namensauflösung funktioniert. Es bietet sich an, den ersten, bereits existierenden Domänencontroller in der /etc/resolv.conf als Nameserver einzutragen.

 nameserver X.X.X.X

Ein Ping-Versuch verschafft Klarheit darüber, ob der Servername korrekt aufgelöst wird:

# ping servername.meine.domaene.com

Der Authentifizierungs-Server ist nun (hoffentlich) erreichbar. Sehr gut.

Seit der Installation von Kerberos befindet sich im Verzeichnis /etc die Datei krb5.conf. Diese muss nun befüllt werden. MEINE.DOMAENE.COM muss durch den Namen der Windows Domäne ersetzt werden.

[libdefaults]
 dns_lookup_realm = true
 dns_lookup_kdc = true
 default_realm = MEINE.DOMAENE.COM

Einen kurzen Moment später wird es spannend: wir versuchen, uns vom Linux Server aus gegen das AD zu authentifizieren:

# kinit administrator
Password for administrator@MEINE.DOMAENE.COM: ***

Erscheint keine Fehlermeldung, sondern einfach die nächste Eingabezeile, war die Authentifizierung erfolgreich. Perfekt. - Falls eine Fehlermeldung erscheint, am besten noch einmal die Namensauflösung und Erreichbarkeit des Hauptservers testen.

Mit dem Befehl

#klist

wird bei erfolgreicher Authentifizierung die Kerberos Session angezeigt.

Jetzt heben wir den Samba-Server in die Windows Domäne:

# bin/samba-tool domain join meine.domaene.com DC -Uadministrator --realm=meine.domaene.com

Bei unseren Tests erschien daraufhin eine Erfolgsmeldung, der Linux Server war der Domäne beigetreten. Ein Gegencheck im Active Directory zeigte den neuen Server dort aufgelistet.

Wie aber im Samba-Wiki schon angedeutet, war der neue Server dem Windows Nameserver nicht automatisch hinzugefügt worden - was sich mit folgendem Befehl lösen lässt:

samba-tool dns add IP-DES-NAMESERVERS meine.domaene.com SAMBASERVERNAME A IP-des-neuen-samba-servers -Uadministrator

Testen lässt sich das ganze mit einem

# host -t A sambaservername.meine.domaene.com.

bzw. auch über

# dig sambaservername.meine.domaene.com @IP-des-DC

Wir sind noch nicht ganz fertig, es gibt leider noch etwas zu testen:

# ldbsearch -H /usr/local/samba/private/sam.ldb '(invocationid=*)' --cross-ncs objectguid

Das Ergebnis sollte in etwa so aussehen:

# record 1
dn: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=example,DC=com
objectGUID: 737506d0-bfe6-40c8-815d-08c3dff7a67f
...

In diesem Fall wäre 737506d0-bfe6-40c8-815d-08c3dff7a67f die GUID, die uns interessiert. Achtung, falls es mehrere Records gibt, interessiert uns natürlich nur genau diejenige GUID, die zum neuen SAMBA Server gehört.

Diese GUID muss per DNS Eintrag aufgelöst werden. Falls also der folgende Befehl eine Fehlermeldung zurückgibt - wie bei uns - … (GUID und Domänennamen ersetzen!)

# host -t CNAME 737506d0-bfe6-40c8-815d-08c3dff7a67f._msdcs.meine.domaene.com.

… muss auch dieser DNS-Eintrag dem Windows Nameserver noch hinzugefügt werden:

# samba-tool dns add IP-DES-DNS-SERVERS _msdcs.MEINE.DOMAENE.COM 737506d0-bfe6-40c8-815d-08c3dff7a67f CNAME SAMBASERVERNAME.MEINE.DOMAENE.COM -Uadministrator

Samba starten

Jetzt kann Samba gestartet werden:

# /usr/local/sbin/samba

Einige beispielhafte Tests zeigen, ob der neue Domänencontroller so funktioniert wie gewünscht.

Test 1: Replikation

# samba-tool drs showrepl

Test 2: User anzeigen

# /usr/local/samba/bin/pdbedit -L -v

Test 3: User auf dem Windows Server ändern - und prüfen, ob sich die entsprechenden Daten auf dem Samba Server geändert haben

Zusammenfassung

Wir haben schon häufiger mit Samba Servern gearbeitet - vor allem für Dateiserver-Anwendungen. Trotzdem hat uns überrascht, wie einfach und problemlos das Hinzufügen eines DC mit Samba 4 war. Es hat alles auf Anhieb funktioniert. In weiteren Tests möchten wir nun prüfen, wie weitere Funktionalitäten auf Linux Server übertragen können, um den SBS zu entlasten. Spannend wären beispielsweise:

  • Ein Fallback DHCP Server
  • Eintrag des Samba Servers als zweiten Nameserver in allen Clients via DHCP
  • Testweises Abschalten des primären DC: Übernimmt der Samba Server problemlos?
  • Anbindung eines NAS Systems
  • Einsatz einer kommerziellen Open Source Groupware Lösung
  • Management von einem Windows 8 Rechner aus
  • Gruppenrichtlinien und WSUS