Linux NetMag
Titel: Samba als Windows2000 Domänen-Kontroller
URL: http://www.linuxnetmag.com/de/issue6/m6samba1.html
Artikel vom: 29.3.2001
Autor: Marcel Alburg


1. Was ist Samba ?

Hierbei handelt es sich um ein Paket von Programmen für UNIX, Linux oder ähnliche Betriebssysteme, welches die Funktionalität eines Microsoft LanManager kompatiblen Server zur Verfügung stellt. Damit ist es möglich, die freigegebenen Ordner oder Drucker auf einem Linux System in einem Windows Netzwerk zu erreichen. Ebenfalls kann man Windows NT oder Windows 2000 Workstations vortäuschen, so daß der Linux Rechner ein Microsoft PDC Server ist. (Primärer Domänen Controler).

2. Voraussetzungen

Um einen PDC auf der Basis von Samba einzurichten, benötigen Sie folgende Pakete:

Samba TNG 2.6 (The Next Generation): Dieses Paket finden Sie auf http://www.sambahq.de.
Einige Pakete, die wir benötigen, um die Sourcen (noch nicht in Computersprache übersetzte Programme) in Programme umzuwandeln, sind z.B. make, gcc, gpp, ein lauffähiges Linux System, welches schon im Netzwerk integriert wurde und viel Kaffe sowie Geduld beim kompilieren der Sourcen.

3. Installation von Samba

Als erstes sollte man sich die neuste Samba TNG Version herunterziehen, zum Beispiel in das Verzeichnis /usr/src/ speichern und mit folgenden Befehlen entpacken.

tar xvfz samba-tng-alpha.2.6.tar.gz
oder
tar xvfl samba-tng-alpha.2.6.tar.gz2

Jetzt sollte ein Verzeichnis existieren, in dem sich die Sourcen befinden. In dem Unterordner source führen Sie folgende Befehl (möglicherweise mit den aufgeführten Optionen auf) aus:


    ./configure --prefix=/samba-tng <-- Installationspfad
       --exexc-prefix=/ <-- Von wo sie Samba ausführen möchten
       --includedir=/usr/local/include <-- dort werden die Inculde-Dateien installiert
       --libdir=/usr/lib/samba-tng <-- Librarypfad
       --localstateedir=/var/samba-tng
       --mandir=/usr/share/man <-- Pfad zu den Manuals
       --with-sambaconfdir=/etc <-- Pfad zur Konfigurationsdatei
       --with-lockdir=/var/lock/samba-tng
       --with-swatdir=/usr/local/swat <-- Pfad zu SWAT
   

Diese Befehlszeile passt Samba TNG auf das System an.
Dann nur noch

make
und
make install
dann ist Samba TNG auf dem System installiert.

4. Konfiguration von Samba TNG

Leider wird bei der Installation nicht alles erstellt, und so muss man per Hand noch einige wichtige Verzeichnisse/Dateien anlegen.


                  mkdir /samba-tng
                  mkdir /samba-tng/netlogon
                  mkdir /samba-tng/private
                  mkdir /samba-tng/profile
                  mkdir /samba-tng/public
                  touch /samba-tng/private/smbpasswd
                  touch /samba-tng/private/domaingroup.map
                  touch /samba-tng/private/domainuser.map
                  mkdir /var/lock/samba-tng
    

Damit jeder User sein Profil auf dem Server speichern darf, sollte man noch folgendes Kommando ausführen.

chmod 1777 /samba/profile

Im Verzeichnis examples befindet sich eine Datei namens smb.conf.default, welche in das Verzeichnis /etc kopiert werden sollte.

cp /usr/src/samba-tng-alpha-2.6/examples/smb.cond.default /etc/smb.conf

Damit wären fast alle Arbeiten erledigt. Leider nur fast.

Der nächste Schritt besteht darin die Konfigurationsdatei (/etc/smb.conf) nach eigen Bedürfnissen anzupassen.

/etc/smb.conf
   [global]
   workgroup = kasnet
   # Das ist die Domäne an der wir uns anmelden möchten
   
   server string = Samba Server (PDC)
   # Beschreibung des Servers
   
   ;   hosts allow = 192.168.1. 192.168.2. 127.
   # Erlaubte Hosts/Netzwerke, die auf den Samba Server zugreifen dürfen
   
   ;   load printers = yes
   ;   printcap name = /etc/printcap
   ;   printcap name = lpstat
   ;   printing = bsd
   ;   guest account = pcguest
   # Druckereinstellungen
   
   log file = /usr/local/samba/var/log.%m
   # Ort der Logfiles
   # %m = Maschienenname
  
   max log size = 50
   security = user
   ;   password server = <NT-Server-Name>
   
   encrypt passwords = yes
   # Wird benötigt, da Windows die Passwörter
   # verschlüsselt über das Netzwerk überträgt
   
   socket options = TCP_NODELAY
   
   interfaces = 192.168.10.1/24 192.168.5.1/24
   # Die Schnittstellen des Servers, bei denen man sich Einloggen darf
   
   local master = yes
   os level = 64
   domain master = yes
   preferred master = yes
   domain logons = yes
   # dringend notwendig, um sich mit Windows an dem Server anzumelden
   
   logon script = %U.bat
   logon path = \\%L\Profiles\%U
   # Einstellungen für die Anmeldung
   # %U = user
   # %L = server
   
   wins support = yes
   # Wir spielen Wins Server
   
   domain group map = /samba/private/domaingroup.map
   domain user map = /samba/private/domainuser.map
   # Rechtevergabe und Nutzerverwaltung unter Windows
   
   #============= Share Definitions ==============================
   [homes]
   comment = Home Directories
   browseable = no
   writable = yes
   # Heimatverzeichnis (/home/user )
   # Writeable = der user kann in dieses Verzeichnis schreiben
   
   [netlogon]
   comment = Network Logon Service
   path = /samba-tng/netlogon
   browseable = no
   writable = no
   share modes = no
   # Anmeldeverzeichnis
   # Hier kommen die Anmeldeskripte hinein
   
   [Profiles]
   path = /samba-tng/profile
   writeable = yes
   browseable = no
   guest ok = yes
   # Profilverzeichnis
   # Hier werden die Profile von den jeweiligen Usern gespeichert
   
   ;[printers]
   ;   comment = All Printers
   ;   path = /usr/spool/samba
   ;   browseable = no
   ;   guest ok = no
   ;   writable = no
   ;   printable = yes
   # Falls Drucker freigegeben werden sollen, muss man die ; weglassen
   
   [public]
   comment = Public Stuff
   path = /samba-tng/public
   public = yes
   writable = yes
   printable = no
   # Öffentlicher Ordner
   # Auf diesem Ordner im System sollte jeder Schreibrechte haben,
   # damit jeder User unbeschränkten Zugriff hat
  


Wenn alle Einstellungen gemacht wurden, kann man die Konfigurationsdatei auf Fehler prüfen lassen mit

testparm

Wenn man in die Datei /samba/private/domaingroup.map folgendes hinzufügt

Admin = "Domain Admins"

werden alle User, die sich in der Gruppe Admin befinden, Domain Admins.

Das Logon Script schreibt man in das Verzeichnis /samba/netlogon für den jeweiligen User (z.B.: für meier = meier.bat, für schmidt = schmidt.bat usw.).

5. Automatisches Starten des Samba Servers beim Hochfahren des Systems

Im Verzeichnis /usr/src/samba-tng-alpha-2.6/source/script befindet sich nach erfolgreicher Kompilierung des Programms eine Datei samba-init.d, welche man nach /etc/rc.d/samba-tng kopieren sollte.

cp /usr/src/samba-tng-2.6/source/script/samba-init.d /etc/rc.d/samba-tng

Ebenfalls müssen noch die Init Scripte verändert werden.

ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc2.d/S50samba-tng
ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc2.d/K50samba-tng
ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc3.d/S50samba-tng
ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc3.d/K50samba-tng

6. Starten des Samba Servers

Um den Samba Server per Hand zu starten, führt man folgendes Kommando aus:

/etc/rc.d/samba-tng start

Danach sollte der Samba Dienst hochgefahren werden.

Dieses kann man testen mit

   ps -ax | grep smbd
   
Die Ausgabe sollte so ähnlich aussehen

1286 ?     S   0:00 smdb -D
6480 tty1  S   0:00 grep smbd

Falls dies nicht der Fall ist, sollte man das System neu starten
(nur dieses eine mal, da sich Samba TNG noch in der Entwicklung befindet)

7. Nutzer einrichten

Um die Nutzerverwaltung kümmert sich das Programm samedit.

Eins vorweg: jeder Benutzer, der mit samedit hinzugefügt wird, muss auch dem Linux System bekannt sein.

Ganz wichtig ist es, einen Maschinen Account zu haben. Dieser Maschinen Account beinhaltet den Namen des Rechners, mit dem Sie sich an den Server anmelden möchten.
Man kann einen Maschinen Account folgendermaßen in das System integrieren.

Angenommen, der Rechner heißt WKS01 (für Workstation #1 ), dann sollte das Kommando folgendermaßen aussehen.

useradd -s /bin/false WKS01$

Achtung: Der Maschinenname darf nicht mit einer Ziffer beginnen !
Das $-Zeichen sagt dem UNIX System, daß dies ein Maschinen Account ist.

Nun zu samedit. Man ruft es beispielsweise mit folgendem Kommando auf:

samedit -S . -U root -W kasnet -l log

wobei
-S für den Server,
-U für den User (da Benutzer hinzugefügt werden, benötigt man Rootrechte),
-W für die Domäne und
-l für das logfile.

Das Passwort wurde noch nicht festgelegt, da dies eine Alpha Version ist. (mit ENTER abschließen).

Um einen USER hinzuzufügen, gibt man folgendes ein:

createuser marcel -p test01

Wobei -p test01 bedeutet, daß das Passwort auf test01 gesetzt wird.
Die Ausgabe sollte dann so ähnlich aussehen:

SAM Create Doamin User
Domain: KASNET Name: marcel ACB: [U]


Zum Testen, ob der User wirklich in das System übernommen wurde, gibt man folgendes ein:

ntlogin marcel test01

Einer der Ausgabenzeile sollte nun heißen

Cmd_nt_login: login(marcel) test succeeded: yes

Wenn diese Meldung erscheint, ist der Weg zum Samba Server nicht mehr weit.

Nun sollte der Maschinen Account dem System bekannt gemacht werden.

createuser WKS01$

Samedit erkennt sofort, das dies ein Maschinen Account ist, und gibt folgende Ausgabe:

WKS01 can now be joined to the domain, which should
Be done on private, secure network as soon possible
Create Domain User: OK


Damit wäre die Benutzerverwaltung abgeschlossen, und man kann samedit mit exit verlassen.

8. Windows in die Domäne fahren

Sobald Windows 2000 hochgefahren wurde, meldet man sich als lokaler Administrator an, drückt mit der rechten Maustaste auf Arbeitsplatz und wählt Eigenschaften.

Danach auf Eigenschaften.

In der Zeile "Mitglied von" wählt man Domäne und trägt den Domainnamen ein.
Bei meinem Bespiel steht Kasnet.

Nach Bestätigung durch OK und kurzer Zeit sollte folgender Dialog auftauchen.
(Manchmal kann es vorkommen, das nach einem Passwort gefragt wird. Dort trägt man dann einen bekannten User ein.)

Danach muss man wie gewohnt den Rechner herunterfahren und bei der Anmeldung den vorhin eingerichteten User mit dem dazugehörigen Passwort angebe.

Nicht vergessen, bei Domäne diese auch auszuwählen.

So, dann wünsche ich noch viel Spass mit dem PDC Server.