Samba4 AD DC

Veröffentlicht am: 
12.04.2013

Da ich diese Woche auf Arbeit einen Samba4 als Active Directory Domain Controller eingerichtet habe, möchte ich euch hier eine kurze Anleitung geben, wie ich vorgegangen bin.

Als Basis dient ein openSuSe 12.3 64 Bit in der Grundinstallation und ein Samba-Server Version 4.0.4, welchen wir selbst kompilieren.
Der Netzwerkkarte wurde die interne Zone zugewiesen und SSH für die später Administration aktiviert.
<--break->Folgende Pakete müssen zusätzlich installiert werden:

  • libacl-devel
  • libblkid-devel
  • libgnutls-devel
  • libgda-xslt-5_0-4
  • libxslt-devel
  • python-xattr
  • python-bsddb3
  • python-bsddb3-devel
  • python-setproctitle
  • python-devel
  • gnutls
  • readline-devel
  • openldap2
  • openldap2-devel
  • cups-devel
  • docbook-xsl-stylesheets
  • gcc
  • make
  • sssd
  • krb5-client

Einige davon kann man vor der Installation auswählen, andere kann man erst nach der Installation über das Software-Management von Yast hinzufügen.
Nachdem das System alle Updates bekommen hat, vergeben wir einen Namen an das System, z.B. PDC.

Als erstes laden wir uns den Samba-Source Version 4.0.4 runter und entpacken diesen, z.B. in /home

Jetzt geht es auf der Kommandozeile weiter!Wechselt in das eben entpackte Verzeichnis (/home/samba-4.0.4) und führt nacheinander die folgenden Befehle aus.

  1. ./configure
  2. make
  3. make install

Sollten hier etwas schief laufen, prüft, ob ihr wirklich alle Pakete installiert habt!
Habt ihr alles bis hierher richtig gemacht, so findet ihr euern kompilierten Samba im Verzeichnis /usr/local/samba

OK, jetzt erstellen wir unsere Domäne, konfigurieren unseren DNS-Server und vergeben unser Administrator-Passwort.
Klingt viel schlimmer, als es ist... Zwinkernd

  1. # Domain erstellen
  2. /usr/local/samba/bin/samba-tool domain provision

Jetzt werdet ihr nach den folgenden Angaben gefragt:

  • realm => FQDN der Domain (z.B. DEINE.DOMAIN)
  • Domain => Domänenname (einfach Enter drücken)
  • Serverrole => die Rolle des Servers (DC = Domaincontroller)
  • DNS backend => die zu nutzende DNS-Datenbank (SAMBA_INTERNAL)
  • DNS forwarder => der DNS-Server, an den Anfragen weitergeleitet werden, die unser DNS nicht kennt (z.B. eine zentrale Firewall, Router, etc.)
  • Administrator password => Admin-Passwort (das Passwort muss aus mindestens 8 Zeichen bestehen und mindestens 1 Großbuchstaben und mindestens eine Zahl beinhalten [kann später abgeschaltet werden])

Somit ist die Grundeinrichtung abgeschlossen.
Zum starten des Samba-Servers einfach noch folgenden Befehlt ausführen:

  1. #Samba starten
  2. /usr/local/samba/sbin/samba

Der Samba-Deamon muss momentan noch manuell gestartet werden.
Ihr solltet euch sinnvollerweise ein Script erstellen, welchen den Deamon beim Systemstart mit startet...

Kommen wir jetzt zum ersten Verbindungstest. Dieser ist noch lokal!
Gebt folgende Befehle in die Kommandozeile ein:

  1. /usr/local/samba/bin/smbclient -L localhost -U%
  2. /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'EuerP4$$wort' -c 'ls'

Mit dem ersten Befehl prüft ihr, ob ihr euch zu euerm lokalen Samba-Server verbinden könnt.Der zweite Befehl versucht euch mit dem Benutzer Administrator an der Freigabe netlogon an zu melden.

Jetzt überprüfen wir die DNS-Einstellungen.
In der Datei /etc/resolve.conf sollten folgende Zeilen zu finden sein:

  1. domain DEINE.DOMAIN
  2. nameserver IP_DEINES_SAMBA4_SERVERS

Zum testen des DNS helfen uns diese Befehle:

  1. host -t SRV _ldap._tcp.DEINE.DOMAIN.
  2. host -t SRV _kerberos._udp.DEINE.DOMAIN.
  3. host -t A SERVERNAME.DEINE.DOMAIN.

Vergesst den Punkt am Ende nicht!
Hier sollten keine Fehler auftreten, sonst ist der DNS falsch konfiguriert.

Zum Schluss kommt noch Kerberos an die Reihe.
Kopiert die Datei /usr/local/samba/share/setup/krb5.conf in das Verzeichnis /etc.In der Datei muss folgende Zeile zu finden sein:

default_realm = DEINE.DOMAIN

Achtung! Kerberos verlangt, dass die Domain groß geschrieben wird! (siehe Kommentare)

Anschließend sollten euch die beiden Befehle

  1. kinit Administrator@DEINE.DOMAIN
  2. klist

keine Fehler bringen.

Damit ist einer Samba4 als AD DC konfiguriert. Glückwunsch!
Die Administration des DNS, der Benutzer, der Gruppen und der Gruppenrichtlinien kann ganz bequem mit den Windows Remote Administration Tools erfolgen.
Downloads:

Es kann zwischendurch oftmals helfen, den Samba neu zu starten

  1. killall samba
  2. /usr/local/samba/sbin/samba

Wenn ihr noch zusätzliche Verzeichnisse eures Server freigeben wollt, dann tragt diese in folgendem Format in die Datei /usr/local/samba/etc/smb.conf ans Ende ein.

  1. [FREIGABENAME]
  2. path = /PFAD/ZUR/FREIGABE
  3. comment = KOMMENTAR
  4. read only = no

Anschließend den Samba-Deamon neustarten.

Hier noch ein paar Befehle, die euch bei der Einrichtung behilflich sein könnten:

  1. #Der realm deiner Domain (DEINE.DOMAIN).
  2. /usr/local/samba/bin/samba-tool testparm -suppress-prompt |grep realm
  3. #Abstellen, dass ein komplexes Passwort benötigt wird.
  4. /usr/local/samba/bin/samba-tool domain passwordsettings set --complexity=off
  5. #Version des Samba-Servers prüfen.
  6. /usr/local/samba/sbin/samba -V
  7. #Version des Samba-Clients prüfen.
  8. /usr/local/samba/bin/smbclient --version
  9. #Passwortrichtlinien der Domäne anzeigen.
  10. /usr/local/samba/bin/samba-tool domain passwordsettings show
  11. #Maximales Passwortalter setzen. (Hier 999 Tage.)
  12. /usr/local/samba/bin/samba-tool domain passwordsettings set --max-pwd-age=999
  13. #Minimales Passwortalter setzen.(Hier 0 Tage.)
  14. /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-age=0
  15. #Minimale Passwortlänge festlegen. (Hier 2 Zeichen.)
  16. /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-length=2

Hinzufügen eines Windows-Clients zur Domäne

Nun werden wir noch einen Windows-Client zu unserer neu angelegten Domäne hinzufügen.
In den Netzwerkeinstellungen des Windows-Rechners stellen wir als primären DNS-Server die IP unseres Samba4-Servers ein.
Später sollte das per DHCP gemacht werden...

Anschließend Rechtsklick auf Computer -> Eigenschaften -> Einstellungen ändern (rechts neben dem Computernamen).
Domäne auswählen und deinen Domänennamen eingeben. (DEINE.DOMAIN).
Jetzt sollte eine Abfrage nach Benutzer und Passwort kommen.
Unser Benutzer ist natürlich Administrator und euer dazu vergebenes (Samba-Administrator-) Passwort.

Wenn alles geklappt hat, kommt eine Aufforderung zum Neustart.
Nach einem Neustart könnt ihr euch mit euer Windows-PC an der Domäne anmelden (DEINE.DOMAIN\Administrator).

Kommentare

16

Welche von den am Anfang zu installierenden Pakete sind denn für den Betrieb von samba4 notwendig und welche werden nur zum compilieren der Software benötigt?

Ist ja nicht unbedingt sinnvoll auf einem Server ein komplette Entwicklungsumgebung laufen zu haben.

Hallo,

Leider habe ich das selbst noch nicht getestet, aber ich gehe davon aus, dass die devel-Pakete nach dem Kompilieren wieder entfernt werden können.

Eine Antwort, ob das so funktioniert wäre nicht schlecht... ;-)

hey,
hat fast problemlos funktioniert! ich bin echt begeistert!
ich denke es sollte:
usr/local/samba/bin/samba-tool testparm --suppress-prompt |grep realm
heißen ;)
ein kleiner hinweis dass kerberos großgeschriebene domainnamen erwartet wäre auch nicht übel :)
vielen dank für das howto!!

Hallo,

Ich werde es bei Gelegenheit nachpflegen!
Danke für die Rückmeldung und den Hinweis...

Dankeschön.

Hallo,
leider habe ich das Problem, dass ich ziehmlich am Anfang scheitere.

Beim "/usr/local/samba/bin/samba-tool domain provision" erhalte ich am ende die Fehlermeldung "Your filesystem or build does not support posix ACLs, which s3fs requires. Try mounting the filesystem with the "acl" option. Obwohl der / mit acl,user_xattr standartmäßig gemountet wird (laut fstab)

Es handelt sich um ein openSuSE 13.1 64 Bit.
Haben Sie eine Idee ?

Also ich habe auch grad SuSE 13.1 installiert (mit standard Einstellung + kleinigkeiten) nach der installation habe ich dann erst alle fehlenden Pakete nachinstalliert, die samba 4.1.1 gesaugt und nach dem Tut installiert. alles klappt ganz sauber. Hatte vorher nen paar tests gemacht und bei der installation schon Entwicklerpakete usw. mit dazu genommen. Als ich dann samba installieren wollte, kamen schon beim kompilieren Fehler und es wurde abgebrochen. Also am besten Standardinstallation machen und erst danach fehlende Pakete installieren. Dann Samba und zu letzt kann man dann Entwicklertools usw. nachinstallieren.

Ich habe jetzt nur noch nen anderes Problem...
Ich habe über die entspr. Windowstools einen User angelegt. es wird aber immer nur en temporäres Profil beim einloggen angelegt und nachm Ausloggen wieder gelöscht. Muß ich bei Windows 7 erst ein Standard Profil auf den Server schieben? Bei XP wurde das immer automatisch angelegt...

Ich habe in dem Python-Script die Überprüfung der ACL's ausgeblendet, da ich feststellte das, dass Script auf Fehler beendet obwohl keinerlei ACL's Tests gemacht wurden. Manuell gestestet und gesehen, ACL geht.

So nun läuft Samba 4.1.1 bei mir auf SuSe 13.1 64 Bit. Wie hast du das genau mit den Windows Tools getan ? Ich kann nichteinmal einen Windows Rechner in die Domain aufnehmen.
Wenn ich mir die smb.conf ansehen steht kaum was drin. Habe einen Samba 3.6 schon am laufen mit backend und wesentlich mehr in der smb.conf stehen.

Ich würde gerne wissen, mit welcher Datenbank Samba 4 arbeitet. Irgendwo muss die ja gepflegt und angepasst werden.

Bezüglich Profil.
Soweit ich weiß, muss das Profil lokal auf der Maschine angelegt werden und dann das Profil auf den SDC erver kopiert werden. Wichtig ist, dass die Profile auf dem Samba der einzelnen Benutzer mit *.V2 enden. Ab Vista wird dies benötigt, sonst werden die nicht gefunden.

Grüße

Hallo,

Samba 3 und Samba 4 kannst du nicht so ohne weiteres vergleichen.
Was für eine Fehlermeldung bekommst du denn, wenn du versuchst einen Windows-Rechner in die Domäne zu integrieren?
Schalte ggf. mal zum testen die Firewall auf dem PDC ab...

Schau dir am besten mal die smb.conf aus dem Artikel SAMBA4 + CUPS + WINDOWS 8 an.
Dort habe ich die Profile mit auf dem Server abgelegt.
Man muss die Profile nicht erst lokal anlegen und dann rüber kopieren.
Die Windows-Rechner legen diese automatisch bei der ersten Anmeldung an (vorausgesetzt, die Berechtigungen auf dem Verzeichnis auf dem Server passen).

Grüße

Hallo,

danke für Ihre Antwort. Also ich kann unter dem angegeben Pfad leider keine vollständige smb.conf finden.
Die Firewall ist deaktiviert.
Mein Windows liefert mir folgende Fehlermeldung beim versuch der Domäne cyon.de beizutreten:

Fehler: "Dieser Vorgang wurde wegen Zeitüberschreitung zurückgegeben."
(Fehlercode 0x000005B4 ERROR_TIMEOUT)

Es handelt sich um die Abfrage des Dienstidentifizierungseintrags (SRV) für _ldap._tcp.dc._msdcs.cyon.de.
Kann die Abfrage auch nicht ganz auflösen.

Das mit der Profilverwaltung ist mir neu. Hört sich vernüftig ein, jedoch müsste erstmal die Basis laufen.

beste grüße und danke

Server kann nicht aktualisiert werden RPC-Server ist nicht verfügbar. Weist du welchen Dienst ich noch starten muss?

Hallo !
Ich habe OpenSuSE 13.1 und samba 4.1.0.3 dazu aus den Quellen installiert. Das ganze läuft mit samba-3.6- Clients und win2k3 Server gut. Leider habe ich aber die Nutzung der samba-Accounts auf dem DC für die UNIX- Authentifizierung (was gewünscht ist), bisher nur mit winbind un der lokalen tdb auf dem samba-Memberservern installieren können. Ich habe den entsprechenden Domainusern zwar in den Feldern uidNumber und gidNumber entsprechende Werte übergeben, aber sie werden mit dem winbind backend ad leider nicht übernommen. Gibt es sachdienliche Hinweise ?
Danke im Voraus !

Hallo,Ich war jetzt eine Weile nicht da, deshalb melde ich mich erst jetzt.Leider kann ich da nicht helfen, da ich eine solche Konstellation nie hatte...

Hallo ich habe da mal nur kurz eine frage,

ich habe es irgendwie geschafft, beim Zuweisen der Objektzugehörigkeit im AD einer Gruppe ohne Benutzer anzugeben.
Leider hatte ich wie gesagt davor vergessen gehabt, einen User anzulegen der in dieser Gruppe hätte sein sollen.

Nun jetzt ist es so, dass ich keine Rechte mehr, über Windows auf mein AD habe xD

Kann ich mich da wieder irgendwie aus der schlinge ziehen, oder muss ich alles von vorne machen?

Hallo,Hast du dich mal unter deinem Windwos direkt als Administrator angemeldet? Also nicht als ein Benutzer, der in der AD-Gruppe Administratoren ist, sondern direkt mit dem AD-Administrator?

Hallo,

keine Ahnung warum aber jetzt auf einmal geht es wieder, leider kann ich mir dieses Phänomen nicht erklären?!?

Neuen Kommentar schreiben