Samba als Windows2000 Domänen-Kontroller
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 smbdDie 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.
Anmerkungen zu diesem Artikel
| [1] | Samba und Timeouts | hubik | 19-9-2003 |
| [5] | Netzwerkumgebung Zwei Samba Rechner | myavuzcan | 22-8-2003 |
| [8] | Probleme nach Samba Installation | Sushi | 29-7-2003 |
| [2] | Linux PDC mit Linux Suse 8.0? | Mesffin | 22-1-2003 |
Eigene Anmerkung eintragen