Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Domänencontroller

Installation ] Vorbemerkungen ] 'Stand-alone'-Server ] [ Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]


Um Benutzer und Rechner zu einer logischen Struktur zu organisieren, bietet 'Windows NT' das Domänen-Konzept an. Dabei ist ein Server (Domänencontroller) pro Domain für die zentrale Sicherheitsverwaltung, d.h. zentrale Verwaltung der Benutzer und Ressourcen, zuständig. Ein Domänencontroller kann  in verschiedene Arten unterschieden werden:

  • Primäre Domänencontroller (PDC)
    Unter 'Windows NT4' spricht man von PDCs (Primary Domain Controller); bei 'Windows 200x'-Domänenverwaltungsarchitektur wird diese Rolle von DCs (Domain Controller) übernommen. Dabei werden im 'NT4'-Sinne zentral Benutzer und Ressourcen in einer Datenbank 'SAM' (Security Account Manager) verwaltet. In einer Domäne darf es nur einen PDC geben.
  • Backup-Domänencontroller (BDC)
    Der BDC (Backup Domain Controller) erhält eine quasi Kopie der Datenbank 'SAM' und ist darauf ausgerichtet Logon-Anfragen vor dem PDC zu beantworten. Erst wenn der der BDC überlastet ist, wird der PDC diese dann beantworten. Bei Ausfall des PDC kann der BDC die Rolle übernehmen. In einer Domäne kann es einen oder mehrere BDCs geben.
  • ADS-Domänencontroller
    In MS 'Windows 200x'-Server-basierten 'Active-Directory-Domänen' initiiert ein Domänencontroller eine mögliche Hierarchie von Domänencontrollern, von denen jeder seinen eigenen delegierten Verwaltungsbereich erhält.

Seit der Version 2.2.x von Samba kann ein 'Windows NT' PDC emuliert werden. In der Version 3.x kann Samba als vollwertiger 'Windows NT4'-Domänencontroller arbeiten, lediglich auf die SAM-Replikationskomponenten kann nicht zurück gegriffen werden. Auch kann Samba-3 als vollwertiges Mitglied einer 'Windows 200x Server'-Active-Directory-Domäne arbeiten.

Im Folgenden wird anhand eines einfachen praxisnahen Beispiels gezeigt, wie Samba als PDC fungieren kann. Dabei soll als Grundlage zum Aufbau des PDC's, der 'Stand-alone'-Server aus dem vorangegangenen Kapitel dienen. Die Eigenschaften des zuvor vorgestellten 'Stand-alone-Servers' erweitern sich um folgende Punkte:

  • Der Server kann als PDC für 'Windows NT'-Clients (z.B. für 'Windows NT 4', 'Windows 2000' und 'Windows XP') agieren.
  • Die Fähigkeit, über den Benutzer-Manager für Domänen unter 'Windows NT4' Informationen über Domänen-Accounts anzusehen.
  • Samba arbeitet als Login-Server für Windows-Clients.
  • Jedem Benutzer kann eine individuelle Start-Datei (Batch-Datei) beim Anmelden vorgegeben werden (share [netlogon])
  • Benutzer-Profile werden unterstützt. (share [profiles])

Auch für kleinere Netze, mit wenigen Windows-Clients im Domain-Betrieb, bringt der Einsatz der PDC-Variante Vorteile. Bei der Nutzung eines PDC's wird das komplette Profile der Benutzers, in dem sich alle relevanten Dateien eines Benutzers befinden, sozusagen gespiegelt. Bei Ausfall eines Clients oder des PDC's sind die Profil-Daten auf einem der Systeme noch vorhanden. Auch ist das Wechseln und Synchronisieren von Benutzer-Profilen zu unterschiedlichen Windows-Clients (Notebook oder fester Arbeitsplatz-PC) gegeben. Benutzer bekommt nach dem Login immer jeweils die letzte aktuelle Version ihres Profils zurück kopiert. Da die Profile der Benutzer auf einen System liegen, ist so auch eine einfachere Datensicherung zu realisieren.

Vorbereitung

Bevor nun auf die Konfiguration der 'smb.conf'-Datei für die PDC-Funktionalität eingegangen wird, sollten noch zwei separate zusätzliche Verzeichnisse unter '/home/samba' erstellt werden (vgl.: 'Stand-alone'-Server):

                        +-/user_1 (755 user_1:users)
                        |
                        +-/user_2 (755 user_2:users) +-/public (775 root:users)
/home (2775 root:staff)-+                            |
                        +-/user_n (755 user_n:users) +-/readonly (755 root:users)
                        |                            |
                        +-/samba (771 root:users)----+-/tmp (777 root:users)
                                                     |
                                                     +-/netlogon (755 root:users)
                                                    
|
                                                     +-/profiles (777 root:users)

Aufbauend auf der Verzeichnisstruktur vom 'Stand-alone'-Server sind die Verzeichnisse 'netlogin' und 'profiles' zu erstellen. Im Verzeichnis 'netlogon' werden Batch-Dateien für den jeweiligen Server-Client abgelegt. Im Verzeichnis 'profiles' befinden sich die Profile der einzelnen Benutzer.

Samba-Konfigurationsdatei 'smb.conf'

Damit Samba zum PDC wird, sind folgende Änderungen im Vergleich zum vorherigen 'Stand-alone'-Server notwendig (siehe Markierung):

/etc/samba/smb.conf

[global]
        workgroup = DOMAENE
        netbios name = DEBIAN
        server string = Domaenencontroller: %h
        interfaces = 192.168.1.10/255.255.255.0
        map to guest = Bad User
        username map = /etc/samba/smbusers
        log level = 1
        log file = /var/log/smb.log
        time server = Yes
        deadtime = 15
        keepalive = 30
        logon script = %U.bat
        logon path = \\%L\profiles\%U
        logon drive = i:
        logon home = \\%L\profiles\%U
        domain logons = Yes
        os level = 65
        preferred master = Yes
        domain master = Yes
        wins proxy = Yes
        wins support = Yes

[homes]
        comment = Benutzer-Freigabe
        read only = No
        create mask = 0755
        browseable = No

[public]
        comment = Oeffentliche-Freigabe (Benutzer)
        path = /home/samba/public
        valid users = root, @root, @smb-admins, @users, @smb-users
        read only = No

[readonly]
        comment = ReadOnly-Freigabe (Benutzer)
        path = /home/samba/readonly
        write list = root, @root
        guest ok = Yes

[tmp]
        comment = Tmp-Freigabe (Benutzer u. Gaeste)
        path = /home/samba/tmp
        read only = No
        create mask = 0777
        directory mask = 0777
        guest ok = Yes
        wide links = No

[netlogon]
        comment = Netlogon
        path = /home/samba/netlogon
        browseable = No

[profiles]
        comment = Profiles
        path = /home/samba/profiles
        read only = No
        browseable = No

Die Sektion '[globals]' ist um weitere Einstellungen (gelbe Markierung) zu erweitern:

  • logon script
    Der Parameter 'logon script' legt den Namen der logon-Datei fest. In diesem Fall ist die logon-Datei eine '.bat'-Datei mit dem Loginnamen ('%U' = User) des Benutzers.
  • logon path
    'login path' bezeichnet das Verzeichnis, welches die Profile enthält, wenn sich ein Benutzer an die Domain anmeldet. ('%L' = Server; '%U' = User).
  • logon drive
    'logon drive' gibt den Laufwerksbuchstaben an, der für das Profil-Verzeichnis benutzt werden soll. Diese Angabe wird nur von NT-Workstations benutzt.
  • logon home
    Die Angabe 'logon home' bezeichnet das Verzeichnis, das als Home-Verzeichnis benutzt wird, wenn sich ein Benutzer an die Domain anmeldet. ('%L' = Server; '%U' = User).
  • domain logons
    Mit dem Parameter 'domain logons' wird eingestellt, dass Samba als Domänen-Controller arbeiten soll.
  • domain master
    Der Parameter 'domain master' teilt Samba mit, das er als Domänen-Browser für die angegebene Arbeitsgruppe arbeiten soll.

Die beiden zusätzlichen Freigaben '[netlogon]' und '[profiles]' (grüne Markierung), beziehen sich auf die zuvor neu erstellten Verzeichnisse unter '/home/samba'. Dabei werden in '[netlogon]' die logon-Dateien und in '[profiles]' die einzelnen Profile der Benutzer abgelegt.

Benutzer logon-Datei

Mit dem Parameter: 'logon script = %U.bat' wird in der Konfigurationsdatei ein Script definit, welches beim Anmelden an eine Domäne auf dem Client ausgeführt wird. Dabei steht '%U' für den Benutzer; es ist somit möglich jeden Benutzer eine eigene individuelle logon-Datei zu geben. Die logon-Datei ist entweder eine Batch-Datei: '.bat' oder eine NT-Kommando-Datei: '.cmd'. Diese Datei muss im DOS-Textformat vorliegen, d.h., sie muss die DOS-Zeilen-Trenner ('CR/LF') benutzen. Der Pfad wird relativ zur 'netlogon'-Freigabe angegeben. In der Regel sind in dieser Datei DOS-Befehle enthalten, die bestimmte Netzlaufwerke verbinden. Eine logon-Datei für den User: 'norbert' könnte bei der vorliegenden Konfiguration folgendermaßen aussehen:

/home/samba/netlogon/norbert.bat

@echo off
net use h: \\debian\homes    /yes /persistent:no
net use p: \\debian\public   /yes /persistent:no
net use r: \\debian\readonly /yes /persistent:no
net use t: \\debian\tmp      /yes /persistent:no
net time   \\debian          /set /yes

Nach dem Kommando '@echo off' werden die Freigaben den Laufwerksbuchstaben mit 'net use' zugewiesen . Unter NT kann man noch '/yes /persistent:no' verwendet werden, um zu verhindern, dass die Laufwerksbuchstaben bei der Neuanmeldung automatisch wiederhergestellt werden (Um sicherzugehen, dass alle Laufwerke überall richtig ge-mappt sind). In der letzten Zeile wird mit 'net time' die Rechnerzeit auf dem Client mit der Zeit des PDCs abgeglichen.

Maschinen-Account für NT-Workstations einrichten

Damit sich NT-Workstations an einem Samba-PDC anmelden können, muss ein Account (Maschinen-Account), für jeden Rechner der den PDC nutzen möchte, angelegt werden. Für diesen Maschinen-Account sollte am besten eine eigene Gruppe existieren, z.B. die Gruppe mit den Namen 'smb-machines'. Eine neue Gruppe kann auf dem Samba-Server mit dem Kommando folgenden Kommando angelegt werden:

groupadd <GRUPPENNAME> bzw. groupadd smb-machines

Der eigentliche Maschinen-Account wird dann mit folgenden zwei Kommandos erzeugt:

useradd -g <GRUPPENNAME> -s /bin/false <RECHNERNAME>$
smbpasswd -a -m <RECHNERNAME>$

bzw. als Beispiel für den Rechner mit den Namen: 'ovation'

useradd -g smb-machines -s /bin/false ovation$
smbpasswd -a -m ovation$

Bei der Angabe des <RECHNERNAME> ist der NetBIOS-Name, gefolgt von einem '$'-Zeichen zu wählen. Groß/Kleinschreibung wird dabei nicht ausgewertet. Angelegt wird der Account anschließend mittels 'smbpasswd'; eine Passwortabfrage findet nicht statt.

Anmerkungen

Soll 'Windows XP' als Client an einen Samba-PDC betrieben werden, so ist Registry-Patch zu installieren (siehe: Windows-Client).

Nach einer Neuninstallation oder Austausch von einer NT-Workstation, muss der Account des Clients gelöscht und anschließend wieder neu eingerichtet werden.

Da ein Domänencontroller seine Rolle im Netzwerk bekannt geben muss, kann es eine Weile dauern, bis Clients sich an der Domäne anmelden können.

Ab der Version Samba-3 kann als User-Datenbank-Backend 'tdbsam' eingesetzt werden. Diese Datenbank entspricht die der von 'Windows NT4' und eignet sich für Systeme mit bis zu 250 Konten. Der Vorteil dieser Datenbank ist eine schnellere Benutzer-Authentifizierung, die auch bei kleinen Netzen auffällt. Um auf dieses Datenbankformat umzustellen, ist lediglich ein zusätzliches Schlüsselwort in der Sektion '[global]' der Konfigurationsdatei erforderlich ('passdb backend = tdbsam'). Vorhandene Konten in der Datei '/etc/samba/smbpasswd' werden jedoch bei der Unstellung nicht übernommen, die existierenden Accounts müssen manuell mit Hilfe des Befehls 'smbpasswd -a <ACCOUNT>' in die neue Datenbank übernommen werden.

Bei größeren Systemen sollte als Backend LDAP (Lightweight Directory Access Protocol) angewendet werden. Mittels LDAP ist es auch möglich PDC/BDC-Konstellation aufzusetzen.

Bevor ein Samba-Server nach der Konfiguration neu gestartet wird, sollte zunächst die Konfigurationsdatei 'smb.conf' immer mittels 'testparm' überprüft werden.

Weitere Infos

Homepage: Samba http://www.samba.org/
The Official Samba-3 HOWTO and Reference Guide http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/
Samba-3 by Example http://us4.samba.org/samba/docs/man/Samba-Guide/
Deutschsprachige Übersetzung der Dokumentation zu Samba 3 http://gertranssmb3.berlios.de/
Samba Version 3.0.9-Referenz http://www.millin.de/downloads/3-89990-121-5/kapitel17/index.html
Samba Webseiten von 'sernet' http://samba.sernet.de/samba.html
How to Configure Samba 2.2 as a Primary Domain Controller http://info.ccone.at/INFO/Samba-2.2.12/Samba-PDC-HOWTO.html
Samba, 2. Auflage http://www.oreilly.de/german/freebooks/samba2ger/
Manualseiten zu: samba; smb.conf; smbpasswd man samba; man smb.conf; man smbpasswd
System-Dokumentation:  samba; samba-common /usr/share/doc/samba; /usr/share/doc/samba-common

Home ] Nach oben ] Installation ] Vorbemerkungen ] 'Stand-alone'-Server ] [ Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]

letzte Änderung: 18. März 2006

 

Copyright © 2004 Norbert Eusterholz