HowTo: Samba 3.5.6 PDC (Primary Domain Controller) und Windows 7

HowTo: Samba 3.5.6 PDC (Primary Domain Controller) und Windows 7

Nachdem meine alte Serverfestplatte mittlerweile in die Jahre gekommen ist und ich ihr von Tag zu Tag mehr den Abschied zugetraut habe, habe ich mich endlich dazu entschlossen mir meine erste SSD (Solid State Drive) zu kaufen. Es handelt sich hierbei um das OCZ Vertex2 E 2,5" SSD 120 GB Modell, welches mittlerweile schon für rund 190€ zu bekommen ist.clip_image002

Da mit dem Tausch der Systemfestplatte natürlich auch das Betriebssystem neu aufgesetzt werden muss und zwangsläufig damit auch mein Samba PDC (Primary Domain Controller) habe ich mich dazu entschieden eine ausführliche Anleitung zu diesem Thema zu verfassen. Der Artikel bezieht sich im Wesentlichen auf ein Debian-System als Grundlage (in meinem Fall Debian Squeeze), lässt sich aber problemlos auch auf andere Distributionen wie Ubuntu übertragen. Debian Lenny sollte nur verwendet werden wenn der entsprechende Backport eingerichtet ist, da mindestens Samba 3.3.x vorliegen muss, damit eine Kooperation zwischen Microsoft Windows Vista bzw. Windows 7 und Samba funktioniert (empfohlen wird 3.5.x oder höher)

Vorbereitung

Nachdem ihr die Distribution eurer Wahl installiert habt, müssen die nötigen Samba-Pakete installiert werden. Dies sollte mit dem Paketmanager geschehen (unter Debian/Ubuntu wäre dies das Tool apt-get, Arch Linux hat hier pacman an Board). Sämtliche Vorgänge in diesem Tutorial sollten, sofern nicht anders erwähnt, als root durchgeführt werden (Bei der Distribution Ubuntu muss ein sudo vor die Befehle).

# apt-get install samba swat smbclient samba-tools samba-doc samba-common samba-common-bin

 

Nach der Installation findet sich gegebenenfalls im Konfigurationsordner von Samba (/etc/samba/) eine Beispiels-Konfigurationsdatei, diese sollte gesichert werden.

# mv /etc/samba/smb.conf /etc/samba/smb.conf.old

 

 

Konfiguration (smb.conf)

Der Kern von Samba ist die Konfigurationsdatei smb.conf. Mit dieser lassen sich sämtliche Funktionen und Einstellungen regeln. Daher werden wir diese zu allererst anlegen

# touch /etc/samba/smb.conf

 

Die frisch angelegte Datei öffnet ihr nun mit einem Editor eurer Wahl (z.B. nano oder vi) und fügt folgende Konfiguration ein (smb.conf). Es würde den Artikel sprengen wenn ich auf jede Zeile eingehen würde, daher werde ich nur auf wesentliche Einstellungen eingehen. Wenn ihr Fragen zu bestimmten Punkten habt, dann schreibt mir einen Kommentar.

netbios name = PDC  # Der Name eures Samba Servers
workgroup = domain  # Der Name der Netzwerkumgebung (z.B. Arbeitsgruppe)
interfaces = eth0   # Kann auskommentiert werden wenn euer Server nur ein Netzwerk Interface hat
security = user     # Wichtig! Nicht auf "domain" stellen, "domain" wird bei einem Beitritt verwendet
passdb backend = tdbsam # Früher smbpasswd, jetzt tdbsam. Bietet unter anderem Geschwindigkeitsvorteile
os level = 200      # Gibt an wo der PDC steht (Hierarchisch)
logon path = \\%L\profile\%U  # Pfad der Benutzerprofilen %L = "NetBios Name" %U = "Aktueller Benutzer"
logon drive = Z:    # Netzwerkverknüpfung auf dem Client zu dem Benutzerprofil
logon script = login.bat # Dazu später mehr
profile acls = yes  # Sorgt dafür das die Dateien Desktop.ini und Thumb.db richtig gehandelt werden.

Danach starten wir den Samba Dienst (oder den Rechner) neu um die neue Konfiguration zu laden.

# /etc/init.d/samba restart

 

 

Benutzer-/Rechnerkonfiguration

Als nächstes kümmern wir uns um die gewollten bzw. benötigten Benutzerkonten die sich später an unseren Windows Clients anmelden können sollen. Wichtig hierbei zu wissen ist das jedes Sambakonto ein Systemkonto braucht, sprich es wird zwischen einem normalen Systembenutzer und einem Sambanutzer differenziert. Deswegen muss bei der Erstellung eines normalen Systembenutzers darauf geachtet werden das der Parameter „-s /bin/false“ verwendet wird. Dieser sorgt dafür, dass sich das Konto nicht in die Shell einloggen kann (Zugriff per ssh). Wir wollen schließlich nicht, dass jeder Zugriff auf das System hat. Des Weiteren ist immer auf die Groß- und Kleinschreibung bei den Benutzernamen, wie auch den Passwörtern zu achten.

# useradd -s /bin/false Benutzername

 

Anschließend werden die Sambakonten angelegt. Zu beachten ist hierbei das auch für den root Account des Systems ein dazugehöriger Samba Account angelegt werden muss. Mit diesem werden später die Windows Clients der Samba Domäne hinzugefügt. Die Passwörter die hier angegeben werden, sind unabhängig von den Systembenutzer Passwörtern.

# smbpasswd -a root
# smbpasswd -a Benutzername

 

Oft ist es von Interesse, dass ein Nutzer unserer Clients bei seinem ersten Login-Vorgang dazu gezwungen wird sein Passwort zu ändern. Dies hat den Vorteil, das der Nutzer bei der eigentlichen Erstellung des Kontos nicht anwesend sein muss und sich so auch nicht beobachtet fühlt. Der benötigte Befehl dazu lautet…

# net sam set pwdmustchangenow benutzername yes

 

Ist diese Option mit „yes“ auf aktiv gesetzt, so kann der Sambabenutzer Account nicht mehr für Netzwerklogin Vorgänge verwendet werden bis das Passwort durch den Login an einem Client geändert wurde. Ein „no“ statt dem „yes“ macht den Befehl rückgängig.

Als nächstes müssen die verwendeten Clients registriert werden, damit sich nicht jede Workstation an den PDC anmelden kann. Dies geschieht im weitesten Sinne analog zu der Erstellung der Systembenutzer. Wichtig ist hierbei, dass das Wort „PC1“ durch den Netbios-/Netzwerk-Namen des Clients ersetzt wird (bei Windows Vista / 7 heißt es auch Computername) und am Ende dieses Namens das Symbol „$“ steht. Das „$“ Symbol darf nicht vergessen werden!

# useradd -s /bin/false PC1$

 

 

Profilverzeichnisse

Der nächste Schritt besteht darin, für alle Sambanutzer, die man zuvor angelegt hat nun auch den Home-/Profilordner anzulegen. Die folgenden Pfade hängen natürlich vom dem Eintrag "logon path" ab, den man zuvor in der smb.conf gewählt hat. Habt ihr die smb.conf von oben übernommen so sind die Ordner wie folgt anzulegen.

# mkdir /home/samba
# mkdir /home/samba/netlogon
# mkdir /home/samba/profile

 

Um eine Übersicht zu wahren werden sämtliche profilbezogene Daten damit im Verzeichnis „/home/samba“ gelagert. Das Verzeichnis „profile“ beherbergt demnach die Benutzerprofile und „netlogon“ die Login Scripte (logon script) (dazu später mehr)

An dieser Stelle müssen wir jetzt darauf achten welche Windows Betriebssysteme auf unseren Clients bzw. Workstations laufen. Es wird empfohlen die folgenden Gruppen nicht zumischen sondern sich für eine Gruppe zu entscheiden, da es sonst zu größeren Problemen mit den Benutzerprofilen kommt. Gruppe 1 besteht aus Windows 95, 98, NT, 2000 und XP, Gruppe 2 enthält Windows Vista und 7. Der Knackpunkt bei diesen zwei Gruppen liegt im wesentliche daran das die Profilverzeichnisse auf dem Server, auf dem der Samba Dienst läuft, unterschiedlich benannt werden müssen. Ein, zum Beispiel, SymLink (Verknüpfung) führt nicht zu der Lösung des Problems, da die Profilstruktur von den zwei Windows Gruppen verschieden ist. Verwendet man Gruppe 1 sind die Verzeichnisnamen der Profile in „/home/samba/profile“ gleich dem Sambabenutzernamen. Bei Gruppe 2 muss ein „.V2“ angehängt werden. Wir beziehen uns im Folgenden auf Gruppe 2.

# mkdir /home/samba/profile/SAMBABENUTZERNAME.V2
# chmod 700 /home/samba/profile/SAMBABENUTZERNAME.V2
# chown SAMBBENUTZERNAME /home/samba/profile/SAMBABENUTZERNAME.V2

 

Mit dem Befehl „mkdir“ wird das Verzeichnis für den Samba Benutzer angelegt, in diesem findet man zukünftig sein Windows Profil, welches bei der Anmeldung bzw. Abmeldung an dem Client synchronisiert wird, „chmod“ setzt die Zugriffsrechte – „700“ bedeutet konkret das der Besitzer des Verzeichnisses das Recht zum Lesen, Schreiben und Ausführen hat und sonst niemand. Zu guter Letzt wird mit „chown“ der Besitzer des Verzeichnisses festgelegt. Möchte man sehen wem ein Verzeichnis gehört reicht eine Verzeichnis Auflistung mit dem Befehl „ls –l“.

 

Windows Clients zu der Domäne hinzufügen

Widmen wir uns nun unseren Clients, welche wir in Zukunft in unserer Samba Domäne verwenden möchten. Unter den Systemen Windows 95, 98, NT, 2000 und XP sollte der Beitritt ohne weitere Handgriffe möglich sein. Hier führ klickt ihr auf die Eigenschaften eures Arbeitsplatzes und wählt den Reiter „Computername“ und klickt anschließend auf „ändern“. Tragt nun in das Feld „Domäne“ euren Domänennamen ein den hier zuvor in der smb.conf angegeben habt. Nachdem hier den „Ok“-Button gedrückt habt sollte kurz darauf ein Login Fenster erscheinen. Verwendet hierbei den Samba-root Account den ihr in einem führen Abschnitt dieses Tutorial angelegt habt. Kurz drauf sollte eine Bestätigungsnachricht erscheinen das ihr erfolgreich der Domäne beigetreten seid. Sollte allerdings eine Fehlermeldung auftreten so kontrolliert bitte noch einmal die letzten Schritte (Rechner an der Samba registriert?, root Daten korrekt?, …) Nach einem Neustart sollte es euch nun möglich sein euch mit euren Sambabenutzer Accounts anzumelden.

Verwendet ihr Windows Vista ist das Vorgehen fast analog, allerdings befinden sich die Einstellungen an einer anderen Stelle. Klickt dazu unten links auf Start bzw. das Windows-Logo und wählt hier die Eigenschaften von „Computer“. In dem neuen Fenster findet hier an der linken Seite den Menüpunkt „Erweiterte Systemeinstellungen“. Wählt nun den Reiter „Computername“, ab hier könnt ihr dem Abschnitt obendrüber folgen.

Bei Windows 7 müssen für den erfolgreichen Beitritt noch ein paar Handgriffe getätigt werden, dies liegt im Wesentlichen daran, dass Samba (noch) kein „Active Directory“ unterstützt. Folgende Schritte müssen an jedem Windows 7 Client durchgeführt werden.

Zuerst öffnen wir die Regedit (klickt auf das Windows-Logo unten links und gebt in die Suchmaske „Regedit“ ein). Öffnet nun die folgende Verzeichnisstruktur, in die folgende Schlüssel eingetragen werden müssen. „HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanWorkstation/Parameters"

DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0

 

Diese zwei Einträge reichen im Prinzip schon aus, allerdings tritt dann während des Beitretens ein DNS-Fehler auf, der keinen Schaden anrichtet oder einen Nachteil bietet. Sprich: Der Beitritt ist trotz der Fehlermeldung erfolgreich gewesen. Allerdings hat Microsoft für dieses Problem einen Hotfix bereit gestellt, den ihr unter folgendem Link findet https://support.microsoft.com/kb/2171571. Der Hotfix ersetzt nicht die zwei Regedit-Einträge! Danach führt man einen Neustart der Workstation durch. Der Rechner ist nun für den Beitritt an die Samba Domäne bereit. Dieser ist analog zum Beitritt unter Windows Vista.

 

Login Scripte, Homeverzeichnis, …

In diesem Abschnitt möchte ich noch auf ein paar Kleinigkeiten, wie die Login Scripte und das Homeverzeichnis im Arbeitsplatz des Clients eingehen.

In einem früheren Abschnitt haben wir das Verzeichnis „/home/netlogon“ erstellt. Hier werden für die jeweiligen Sambanutzer die sogenannten „logon script“ gelagert. Diese Scripte müssen das Namensschema SAMBABENUTZERNAME.cmd haben (festgelegt in der smb.conf), so ist es möglich für jeden Nutzer individuelle Einstellungen zu laden. Prinzipiell lassen sich damit alle Befehle in das Script eintragen die ihr auch lokal an eurem Windows Rechner in der Eingabeaufforderung (cmd) eingeben könnt. Eine häufig genutzte Möglichkeit hierbei ist das Einbinden von Netzwerkfreigaben (z.B.: net use T: \\\\192.168.0.3\\Musik).

Hat man sich die bereitgestellte smb.conf geladen und unverändert verwendet so sollte man nun bei den Betriebssystemen Windows Vista bzw. 7 im Arbeitsplatz unter dem Laufwerksbuchstaben X: eine Netzwerkverknüpfung haben, sofern der Buchstabe nicht schon belegt ist. Das Laufwerk X: stellt das aktuelle gespeicherte Profil des Nutzers auf dem Server da, welches allerdings nur gelesen werden darf. Bei allen anderen Systemen sollte nichts angezeigt werden. Das liegt daran, dass der Pfad in der smb.conf zu dem Benutzerprofil nicht stimmt. Wie oben schon erwähnt trägt der Verzeichnisname bei Windows Vista und 7 noch ein „.V2“ am Ende. Daher muss der Pfad in der smb.conf bei der Verwendung von anderen Betriebssystemen als Client angepasst werden. Ihr findet dies unter dem Abschnitt „[homes]“.

Windows XP und älter: path = /home/samba/profile/%S
Windows Vista und neuer: path = /home/samba/profile/%S.V2

 

 

Abschluss

Zum Abschluss noch ein paar Worte. Mir ist bewusst, dass das Arbeiten mit Samba häufig zu Problem und Fehlern führen kann die man erst einmal nicht nachvollziehen kann und trotz vielen Tutorials und Foren-Posts nicht gelöst bekommt. Ich habe in diesem Artikel versucht den Prozess so deutlich wie möglich darzustellen und hoffe, dass ich anderen damit weiterhelfen kann. Solltet ihr dennoch Probleme haben die ihr trotz dieses Tutorials nicht habt lösen können, so biete ich euch an einen Kommentar mit eurem Problem zu verfassen oder mir eine E-Mail an TimoATnicht-blau.de zuschreiben, so dass ich weitere bzw. neue Informationen in den Artikel einfließen lassen kann. Natürlich freue ich mich auch über ein einfaches Dankeschön ;)

10 Antworten

  1. Veröffentlicht am 24. Februar 2011 um 15:04 | Permalink

    Hallo,
    sehr schönes Tutorial!

    Sehr einfach gehalten und unmissverständlich erklärt.

    MfG

  2. Teo
    Veröffentlicht am 11. April 2011 um 14:01 | Permalink

    Genial. Das erste und einzige Tutorial (von sehr sehr vielen) mit dm ich einen funktionierenden PDC mit Windows Clients (XP/Win7) zum laufen gebracht habe.

    Was mich noch brennend interessieren würde ist, wie man es anstellt, dass man beim ersten Login eines Windows-Benutzers das lokale Profil auf den Server schiebt, damit es von dort geladen wird. Kann man das unkompliziert automatisieren?

  3. Teo
    Veröffentlicht am 11. April 2011 um 14:02 | Permalink

    sorry, glatt vergessen. Ich habe ein Mandriva Linux 2010.1 mit Samba 3.5.3 verwendet.

  4. max
    Veröffentlicht am 24. Juni 2011 um 12:53 | Permalink

    Hi…tolle Beschreibung! Danke! Ich habe dennoch eine Frage. Ich habe einen PDC mit Samba 3.4.2 aufgesetzt und an der Domäne win7 Clients angemeldet. Funktioniert incl. Profilspeicherung der User auf dem PDC super. Lediglich die Benutzerrechte der User auf den Freigaben lassen sich nicht steuern. Bei einem früheren System mit Samba PDC und win2k Clients konnte ich mich am Client mit root an der Domäne anmelden und alle Rechte über den Explorer verwalten. Hat jemand einen Tip für mich?

  5. mp
    Veröffentlicht am 30. November 2011 um 12:08 | Permalink

    Hallo,
    hat jemand schon das ganze mit WIN7 64 bit ausprobiert. Es geht nähmlich bei mir nicht.

  6. Tom
    Veröffentlicht am 21. März 2012 um 20:58 | Permalink

    Hallo

    Echt super Manual so habe ich es auch verstanden!

    Mein Problem was ich nicht verstanden habe ist:

    Wie stelle ich es an wenn sich meine User an verschiedenen System (win XP / Win 7) anmelden also der Benutzer a kann ich an einem win XP mit seinem Benuzter A anmelden und auch an einem Win 7 als Benutzer A anmelden. Er sollte auf beiden systemen seine Datein bereit gestellt bekommen.

  7. Knut
    Veröffentlicht am 30. Mai 2012 um 20:59 | Permalink

    WOW! Danke
    Copy Paste… Ein paar Anpassungen… fertig ;-)
    Klasse Anleitung.
    Ein wenig Sicherheit sollte die Conf schon vertragen.
    Aber trotzdem Danke für die Mühe.
    Knut

    f y cn rd ths y mst hv bn usng unx

  8. Veröffentlicht am 27. Mai 2013 um 21:13 | Permalink

    Hallo!

    Super Anleitung, jedoch erhalte ich bei Win7 folgenden Fehler:

    „Es sind momentan keine Anmeldeserver zum Verarbeiten der Anmeldeanforderung verfügbar“.

    Ping geht überall durch, der PC ist erfolgreich der Domäne beigetreten, regedt-Einträge sind gesetzt.

    Deine smb.conf habe ich übernommen, jedoch finde ich in Win7 folgende Fehler (Computer –> Verwaltung –> Ereignisanzeige –> Benutzer… –> Administrative… : Fehler: NETLOGON;

    Fehlertext: Der Computer konnte eine sichere Sitzung mit einem Domänencontroller in der Domäne SAMBA aufgrund der folgenden Ursache nicht einrichten: Der RPC-Server ist nicht verfügbar.

    Ich komme nicht mehr weiter, hast du vielleicht eine gute Idee :) ? Vielen dank Vorab!

    MFG Holger

  9. Andi
    Veröffentlicht am 12. Juni 2013 um 11:47 | Permalink

    Wow – super Artikel!

    Aber ein kleiner Fehler hat sich eingeschlichen. Bei dem Absatz zum Ändern des Passworts beim ersten Login steht:

    Der benötigte Befehl dazu lautet…
    ::CODECOLORER_BLOCK_7::

    Ist diese Option mit „yes“ auf aktiv gesetzt …

    Die Option die das verursachen kann fehlt also.
    Welche ist es?

    Andi

  10. Martin Leue
    Veröffentlicht am 4. Januar 2015 um 21:38 | Permalink

    Bei mir klappt die Domänen anbindung nicht habe schon sehr viel Tutorials durchgeschaut und keins führte zum erfolg hoof mir kann irgend wer weiter helfen