Samba als Domaincontroller Inhaltsverzeichnis Paketinstallation... 2 Vorbereitungen... 2 Einrichtung... 2 Benutzerkonfiguration... 3 Serverseitige Profle ermöglichen...4 Windows Clients an der Domäne anmelden...4 Trouble Shooting... 4 Seite 1 von 5
In diesem Tutorial soll beschrieben werden, wie man den Samba Service als Primary Domain Controller einrichten kann. Als quasi Nebenprodukt dieses Tutorials wird die Einrichtung einer einfachen Datei- bzw. Ordnerfreigabe beschrieben. Hinweis (aus dem Ubuntu Wiki): Möchte man Windows 7 Clients der Domäne hinzufügen, muss mindestens die Samba Version 3.3.X installiert sein! Paketinstallation Die folgenden Pakete werden benötigt: sudo apt-get install samba Vorbereitungen Zur Sicherheit sollte man nach der Installation die Konfiguration, die mit dem Paket geliefert wurde, sichern. Dazu genügt der folgende Befehl: Einrichtung sudo mv /etc/samba/smb.conf /etc/samba.conf.default Nun erstellt man eine leere smb.conf. sudo touch /etc/samba/smb.conf Und fügt folgendes ein: Smb.conf [global] ## Server Identifikation - so meldet sich der Server im Netzwerk netbios name = PDC server string = PDC (%h) workgroup = domain ## Welche Netzwerkkarte soll von Samba benutzt werden? interfaces = eth0 ## Sicherheits- und Passwort-Einstellungen security = user encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = no passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n. ## Domain-Einstellungen local master = yes preferred master = yes os level = 200 domain master = yes domain logons = yes # Speichert das Windows-Profil im durch die Freigabe [profile] angegebenen Verzeichnis: logon path = \\%L\profile\%U # Soll das Windows-Profil dagegen im User-Home abgelegt werden, kann man "logon path" auf Standardeinstellung belassen: #logon path = \\%L\%U\profile # oder auch direkt im User-Home: #logon path = \\%L\%U logon drive = h: #Logon Script einkommentieren falls gewuenscht (muss im Netlogon-Verzeichnis abgelegt sein -> /home/samba/netlogon/) #logon script = login.bat Seite 2 von 5
# DEM Addon 2007-02-20: Folgende Zeile ist wichtig für Servergespeichertes Profil # um Probleme mit z.b. desktop.ini unter Windows zu beheben. profile acls = yes # DEM Addon 2007-02-20: Empfehlenswert für servergespeichertes Windows Profil hide files = /desktop.ini/ntuser.ini/ntuser.*/thumbs.db/ ## DNS-Einstellungen wins support = no # name resolve order = wins lmhosts host bcast ## Log-Einstellungen log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d ## Diverse Einstellungen ## DEM Addon 2007-02.20: Manchmal kann die Geschwindigkeit erhöht werden, wenn statt der ersten Zeile die zweite Zeile verwendet wird: socket options = TCP_NODELAY #socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #======================= Share Definitions ======================= [homes] comment = Home Directories browseable = no valid users = %S writeable = yes create mode = 0600 directory mode = 0700 [profile] comment = Profildateien path = /home/samba/profile guest ok = yes browseable = no create mask = 0600 directory mask = 0700 writeable = yes [netlogon] comment = Network Logon Service path = /home/samba/netlogon guest ok = yes writeable = no share modes = no Jetzt startet man Samba neu, um die geänderten Einstellungen einzulesen: /etc/init.d/samba restart oder wenn das nicht klappt: sudo initctl restart smbd Benutzerkonfiguration Um auf den Samba Service zugreifen zu können, bzw. am Domain Controller anmelden kann, muss dem System natürlich der betreffende Benutzeraccount bekannt sein. Man legt also für jeden Benutzer zuerst ein Unix Account an. sudo useradd Benutzername oder mit deaktiviertem Linux Login sudo useradd -s /bin/false Benutzername Die so angelegten Benutzer müssen jetzt noch für Samba freigeschaltet werden. Dazu genügt der folgende Befehl: sudo smbpasswd -a Benutzername Samba konfiguriert, Benutzer eingerichtet, alles fertig? Nicht ganz! Um einen PC überhaupt zur Domäne hinzufügen zu können, fehlen noch zwei wichtige Dinge. Als erstes muss der Domain Controller einen root- Seite 3 von 5
Login bekommen, mit dem man PCs an der Domäne anmelden kann. Das geschieht mit folgendem Befehl: sudo smbpasswd -a root Als zweites muss jeder Rechner, der in der Domäne angemeldet werden soll, ein Maschinenkonto bekommen. Das geschieht ganz ähnlich dem Anlegen eines Benutzeraccounts. Der Benutzername ist hier jedoch der NETBIOS Name des Windows PCs gefolgt von einem Dollar-Zeichen. Man legt also wiederum zuerst ein Unix-Konto an: sudo useradd -s /bin/false PC1$ und macht es danach Samba als Maschinenkonto bekannt: sudo smbpasswd -a -m PC1$ Serverseitige Profle ermöglichen Damit es Windows Clients möglich ist, sich mit Benutzerprofilen an der Domäne anzumelden, braucht Samba einige Verzeichnisse, in denen es die betreffenden Daten ablegt. Man legt diese an und gibt ihnen die erforderlichen Berechtigungen: sudo mkdir /home/samba sudo mkdir /home/samba/netlogon sudo mkdir /home/samba/profile sudo chmod 777 /home/samba sudo chmod 755 /home/samba/netlogon sudo chmod 777 /home/samba/profile Nun bekommt jeder Benutzer noch einen Unterordner im Ordner /home/samba/profile: sudo mkdir /home/samba/profile/benutzername sudo chmod 700 /home/samba/profile/benutzername sudo chown Benutzername /home/samba/profile/benutzername Wobei Benutzername durch den jeweiligen Benutzernamen ersetzt werden muss. Bei Verwendung eines Windows Vista oder Windows 7 Clients muss der Ordner Benutzername.V2 heißen. Windows Clients an der Domäne anmelden Um nun einen eingerichteten PC an der Domäne anzumelden, öffnet man am Client PC mit Administratorrechten in der Systemsteuerung das Modul System und klickt auf das Tab Computername. Hier wählt man Ändern, klickt auf Domäne und fügt den Domänennamen ein, der in der smb.conf als workgroup definiert wurde. Klickt man auf Ok, sollte der Domain-Controller nach einer Anmeldung fragen. Hier gibt man als Benutzername root ein und als Passwort das root-passwort des Linux Rechners. Trouble Shooting 1. Wird bei Windows 7 die Domäne nicht gefunden oder die Verbindung konnte nicht hergestellt werden, helfen folgende Änderungen in der Registrierung ("Start/Ausführen/regedit"): Unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters die Schlüssel DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0 setzen. Danach kann man Windows 7 der Domäne hinzufügen. Die Fehlermeldung Changing the Primary Domain DNS name of this computer to "" failed. The name will remain "MYDOM". The error was: The specified domain either does not exist or could not be contacted kann ignoriert werden. Seite 4 von 5
2. Es kann passieren, dass nach der Anmeldung mit einem Domänenprofil, trotz Auswahl eines deutschen Tastaturlayouts, ein englisches genutzt wird. Das lässt sich wie folgt beheben. Man sichert am Linux Server die gesetzte SID für Host und Domain: net getlocalsid > /var/local.sid net getdomainsid > /var/local.sid Am Linux Server gibt man nun folgende Befehle ein: net setlocalsid S-1-5-21-1606980848-1425521274-1417001333 net setdomainsid S-1-5-21-1606980848-1425521274-1417001333 Die Nummer kann dabei der Registry eines Windows Clients entnommen werden (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList). Dabei kann eine S-Nummer, um die letzten vier Stellen gekürzt, genommen werden. Danach muss der Samba Server neugestartet werden und eventuelle Profilkopien auf dem Client gelöscht werden. Erklärung: Der sogenannte Security Identifier wurde von Microsoft eingeführt und scheint auch die Spracheinstellungen zu beinhalten. [2] Quellen [1] http://wiki.ubuntuusers.de/samba_server_pdc (15.03.2011) [2] http://de.wikipedia.org/wiki/security_identifier (15.03.2011) Seite 5 von 5