Einen NT-Server auf Linux/FreeBSD moven innerhalb einer NT-Domaene


First step: Eine Linux/FreeBSD-Kiste aufsetzen

Ok, das ist nun wirklich nicht Thema dieser Hilfe-Stellung. Fuer Linux bitte unter der jeweiligen Distributions-Homepage nachsehen (z.B. Debian.Org oder Slackware.Com), fuer FreeBSD im Handbuch blaettern. Allerdings: Nicht vergessen das Samba-Paket zu installieren!

Second step: Samba Konfigurieren

Gut, damit sind wir schon in medias res. Eine ausgesprochen gute Gesamt-Doku gibt es auf O'Reilly.Com, fuer das freie ins Netz stellen der Doku sei O'Reilly nun wirklich mal ein Dankeschoen ausgesprochen.
Wichtig, bevor weitergelesen wird und alles uebernommen wird: Die Pfade der Programme bitte den lokalen Gegebenheiten anpassen und die Rechnernamen/Domains/IPs/etc. aendern ;-)
Nun, hier geht es darum, so eine Art Kurzreferenz zu machen. Das wichtigste Teil einer Samba Konfiguration ist natuerlich die smb.conf. Schauen wir uns eine moegliche Konfiguration an:
Wir haben den Server fuzzi.abla.org (192.168.1.10), der einst ein NT-Server war und als Teil der NT-Domaine ABLA als Rechner fuzzi in der Netzwerkumgebung aufgeschienen ist. Er war im srvmgr des Primary Domain Controllers (PDC) chef (192.168.1.11) eingetragen. Zusaetzlich gibt es einen Backup Domain Controller (BDC) mit dem Namen knecht (192.168.1.12), der gleichzeitig WINS-Server ist. Eine moegliche smb.conf koennte fuer diese Gegebenheit folgendermassen aussehen:

[global]

	workgroup = ABLA
	server string = FreeBSD running Samba %v
	interfaces = 192.168.1.10/255.255.255.0
	security = DOMAIN  
	encrypt passwords = Yes
	password server = KNECHT
	passwd program = /usr/bin/passwd
	passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\
	log level = 2
	announce version = 6.0
	keepalive = 30 
	character set = ISO8859-1
	os level = 2  
	local master = No
	wins server = 192.168.1.12
	smbrun = /usr/bin/smbrun

[cdrom] 

	comment = FreeBSD CDrom
	path = /cdrom 
	guest ok = Yes
	locking = No

[diskette]

	comment = FreeBSD Diskette
	path = /floppy
	read only = No
	guest ok = Yes

[public]

	comment = Public Dir on FreeBSD
	path = /usr/home/public
	read only = No
	create mask = 0750
	guest ok = Yes

[ralf]

	comment = Ralfs Homedir on FreeBSD
	path = /usr/home/ralf
	writeable = Yes
	create mask = 0750
	guest ok = Yes

[printers]

	comment = Printers on FreeBSD
	path = /tmp
	read only = No
	create mask = 0700
	guest ok = Yes
	print ok = Yes

Diese Konfiguration ist aufgebaut, um die Passwoerter und UserInnen mit einem BDC abzugleichen, d.h. sofern es die UserInnen mit gleichem Passwort wie am BDC/PDC gibt, haben sie, sofern sie Shares am Samba-Server haben (wie in diesem Beispiel der User ralf) Zugriff. Die Passwoerter sollten vor allen Dingen mit NT-Maschinen oder Win98-Clients encrypted werden (siehe encrypt passwords = yes)
Auch koennen sie dann Zugriff haben, wenn oeffentliche Shares (z.B. Public in diesem Beispiel) Unix-seitig die dafuer noetigen Permissions haben.
Zusaetzlich werden auch die Printer, die an dieser Maschine haengen von der Datei /etc/printcap ausgelesen und als Netzwerkdrucker fuer das M$-Netz zur Verfuegung gestellt, sofern es die notwendigen Drucker-Treiber M$-seitig gibt.

Third step: UserInnen und Passwort-Abgleich

Fuer das Portieren der NT-UserInnen auf Unix gibt es nur einen Weg: Ein Crack-Programm am PDC laufen lassen und die Passwoerter rausfinden und dann mittels der Anlegeskripte die UserInnen am Unix-Rechner mit Samba anlegen.
Anschliessend muss der Abgleich mit dem BDC/PDC ablaufen. Dafuer muss der alte Eintrag im srvmgr des PDC geloescht werden und dann erneut angelegt werden, weil sonst die SID der alten Rechners genommen wird und der Passwort-Abgleich nicht von statten geht. Der Abgleich wird mittels folgendem Kommando erreicht:

# smbpasswd -j ABLA -r KNECHT

Fourth step: Samba Server starten

Wenn dies erfolgreich war, kann der Samba-Server mitsamt dem Samba-Name-Service gestartet werden. Dies kann ueber zwei unterschiedliche Wege erreicht werden:
a) Start mittels des inetd: Dabei muessen folgende Eintraege in die /etc/inetd.conf:

netbios-ssn	stream	tcp	nowait	root	/usr/local/sbin/smbd	smbd
netbios-ns	dgram	udp	wait	root	/usr/local/sbin/nmbd	nmbd

Und nicht vergessen: Restart des inetd:

# kill -1 `cat /var/run/inetd.pid`

b) Start mittels rc.local: Einfach folgendes in die /etc/rc.local eintragen:

if [ -x /usr/local/sbin/smbd -a -x /usr/local/sbin/nmbd ]; then
 echo "Starting Samba..."
 /usr/local/sbin/smbd -D
 /usr/local/sbin/nmbd -D
fi

Damit der Samba-Server nicht erst beim naechsten reboot rennt einfach das Teil mal haendisch starten:

# /usr/local/sbin/smbd -D && /usr/local/sbin/nmbd -D

Zum Debuggen bitte unbedingt die Log-Files betrachten, welche sich normalerweise unter /var/log/ befinden und sich log.smb und log.nmb nennen.

Wenn Lust besteht, kann man die Konfiguration und das Monitoring auch ueber ein Web-Interface vornehmen. Zuerst einen Eintrag in den /etc/services:

swat			901/tcp

und dann einfach folgende Zeile in die /etc/inetd.conf:

swat	stream	tcp	nowait.400	root	/usr/local/sbin/swat	swat

Restart des inetd und schon kann man ueber http://localhost:901 das Swat-Interface nutzen. Das sollte es eigentlich gewesen sein. Fehler usw. natuerlich vorbehalten, ist nur schnell mal zusammengeschrieben ;-)

$Id: nt-to-samba.html,v 1.2 2001/10/08 16:13:40 mic Exp $