Einen Windows NT/2000-Server mit Linux und Samba ersetzen

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: orhttp://homepage]

original in es Sebastian Sas�as

es to en Sebastian Sas�as

en to de Hubert Kai�er

AboutTheAuthor:[A small biography about the author]

Er benutzt Linux seit einigen Jahren als Support-Werkzeug, um technische L�sungen zu entwickeln.
Er arbeitet an Ger�testeuerung mit Linux, Signalverarbeitung, Kommunikation und Netzwerksicherheit.
Er ist Experte in Elektronik-Automatisierung und Informatik.
Er hat unter GNU/GPL Free Software entwickelt.

Abstract:[Here you write a little summary]

Dieser Artikel erg�nzt einige Aspekte, die in fr�heren LinuxFocus-Artikeln �ber Samba vorgestellt wurden und seine Verwendung, um Ressourcen in heterogenen Unix-Windows-Netzwerken gemeinsam zu nutzen. Er konzentriert sich vor allem auf ein Linux-System mit Samba, um einige Dienste laufen zu lassen, die typischerweise von Windows-Betriebssystemen zur Verf�gung gestellt werden.
Dies ist nicht nur eine Demonstration der St�rke und Flexibilit�t von Linux, sondern es hat auch wichtige wirtschaftliche Konsequenzen:

Ein Linux-Server mit richtig konfiguriertem Samba kann einen Windows NT/2000-Server ersetzen, �blicherweise gibt man damit Verzeichnisse frei, bietet einen Active Directory Service (ADS) an, aber es kann auch als PDC (Primary Domain Controller) fungieren, f�r die Authentifizierung bei Windows 2000/NT/98/95-Clients sorgen, Ressourcen gemeinsam nutzen (Verzeichnisse und Drucker) und die Benutzerprofile anpassen.
Dieser Artikel besch�ftigt sich besonders mit diesen Aspekten.

Als Folge ersetzt der Linux-Server mit Samba alle Funktionen eines Servers auf der Grundlage eines Microsoft-Betriebssystems bei vielen Umgebungen, wo das die Hauptfunktion des Windows-Servers ist, ohne �nderungen bei den Clients.
F�r die folgenden Schritte wird angenommen, da� Samba schon installiert ist und auf dem Server korrekt arbeitet und da� der Leser die Grundlagen von Linux- und Windows-Servern kennt.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Fallstudie

Betrachten Sie einen Linux/Samba-Server, der als PDC funktioniert, bei dem jeder authentifizierte Benutzer auch Zugang zu zwei gemeinsamen Verzeichnissen hat, einer f�r �ffentliche Bereiche und ein weiterer f�r den privaten Bereich. In diesem Artikel werden wir es als h�ufigen Fall betrachten, einen privaten Bereich zu bearbeiten mit Zugang zu einem pers�nlichen Verzeichnis f�r jeden Benutzer.



Details, die zu beachten sind:

Linux/Samba NetBIOS Name:SMBServer
Windows Domain Name (Workgroup): THEDOMAIN
Private Partition f�r jeden Benutzer: H: (Windows) => /home/ (Linux-Server)
�ffentliche Partition: P: (Windows) => /home/public



Bild 1 zeigt ein einfaches Netzwerk-Schema mit Clients, die mit Windows-Systemen laufen und die Ressourcen und Dienste des Windows NT/2000-Servers nutzen. Dieser Server kann durch einen Linux/Samba-Server ersetzt werden.

Network-Schema
Bild 1 PDC und File-Server unter Windows

Konfiguration

Arbeiten Sie folgende Schritte ab:

1) Erzeugen Sie die Benutzer, die vom PDC-Server (Linux mit Samba) authentifiziert werden sollen.
Benutzen Sie adduser, useradd oder userconf, Sie k�nnen auch irgendein Tool f�r Benutzeradministration mit GUI verwenden (Webmin, Linuxconf, Yast, usw.).

Stellen Sie sicher, da� die Benutzer nur zu Linux/Samba-Diensten Zugang haben (wenn Sie es so wollen), das setzt voraus, da� sie keinen Zugang zur Linux-Shell haben, daf�r m�ssen sie /dev/null als Home-Verzeichnis und /bin/false als Shell einstellen.

2) �ndern Sie die Unix-Benutzer zu Linux/Samba/Windows-Benutzern, indem Sie die Datei smbpasswd erzeugen.

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

Eine andere Vorgehensweise ist, die folgenden Samba-Befehle f�r Benutzererzeugung und Passw�rter auszuf�hren:

smbadduser
smbpasswd

Diese Befehle funktionieren �hnlich wie adduser und passwd.

3) Editieren Sie die Samba-Konfiguration (smb.conf), indem Sie darauf achten, da� Sie die Kommentarzeichen f�r die Optionen einf�gen oder entfernen, die unten aufgef�hrt sind:

netbios name = SMBServer
workgroup = THEDOMAIN
server string = Linux Samba NT Server
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/.... (Kommentar entfernen)
socket options = (Kommentar entfernen)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes


Notiz:
Um f�r jeden Benutzer ein eigenes Login zu erzeugen, ersetzen Sie das Logon-Script durch "%U.bat", so da� jeder Benutzer ein "Logon Script" mit seinem Benutzernamen hat, man kann ebenso %u verwenden. Wenn Sie irgendwie die Gruppenzugeh�rigkeit ber�cksichtigen wollen, k�nnen Sie %g oder %G dazu benutzen. Die Bedeutung dieser Parameter und anderer k�nnen Sie im Manual (man smb.conf)
finden

4) Erzeugen Sie gemeinsame Ressourcen
Bearbeiten Sie die Datei smb.conf und kommentieren Sie alle "shares" Beispiele aus, und machen Sie die notwendigen �nderungen, um folgende Informationen hinzuzuf�gen:

[netlogon]
comment = Initialization Scripts
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = User Directory
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Public Directory
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777


Speichern Sie die Datei smb.conf ab.

5) Sie k�nnen die Korrektheit von smb.conf pr�fen, indem Sie diesen Befehl ausf�hren:

testparm

Dieser Befehl analysiert die Datei smb.conf und zeigt Fehler an, wenn er sie findet.

6) Erzeugen Sie die Verzeichnisse /home/netlogon und /home/public mit den Rechten 0754 (netlogon) and 0777 (public).

7) Bearbeiten Sie das Logon-Script: logon.bat.
Wichtig: Benutzen Sie einen Editor f�r DOS/Windows (einen wie Notepad oder Edit), um die Datei logon.bat zu erzeugen (damit sie als Textdatei in einem MS-kompatiblen Format gespeichert wird), Sie erreichen dies auch, indem Sie einen Texteditor unter Linux verwenden und danach ins korrekte Dateiformat konvertieren. Sie k�nnen zum Beispiel Vims ":set textmode"-Befehl benutzen, um eine Datei mit MS-Zeilenendungen zu bekommen.

net time \\SMBServer /y (Sie k�nnen auch /yes anstatt /y schreiben )
net use H: \\SMBServer\home -y
(Sie k�nnen auch /yes or /y anstatt -y schreiben )
net use P: \\SMBServer\public -y

8) F�gen Sie die SMBServer-Information in die Datei lmhosts ein.
Editieren Sie die Datei /etc/samba/lmhosts (oder /etc/lmhosts) und f�gen Sie eine Zeile mit Ihrer SMBServer-Information hinzu.

SMBServer, d.h: 192.168.0.10 SMBServer

9) Starten Sie den Samba-Daemon (smbd), bzw. starten Sie ihn neu

service smb restart

Wenn er bei Ihrer Linux-Distribution nicht richtig l�uft, k�nnen Sie folgendes ausf�hren:
ps -auxgx | grep smb
kill -9 <Prozess-ID von smb>
smbd

10) F�hren Sie smbclient aus, um zu pr�fen, ob die vorher gemachte Konfiguration korrekt l�uft.

smbclient -L //SMBServer

Wenn "Password:" angezeigt wird, dr�cken Sie "Enter" und die gemeinsamen Ressourcen auf dem Server werden angezeigt.

11) Melden Sie sich in der Dom�ne THEDOMAIN an, indem Sie irgendeinen Windows 95/98/NT-Client verwenden und benutzen Sie irgendeinen vorher erzeugten Benutzer (siehe Schritte 1 und 2).

Unter Windows 95/98/ME sollte es entsprechend folgender Kommandofolge konfiguriert werden:

Start => Setup => Control Panel=> Network =>Network Client for Microsoft Networks => Properties.

Auf sehr �hnlich Weise kann man Windows NT/2000-Clients (Workstation/Professional) konfigurieren, obwohl die Folge wahrscheinlich nicht die gleiche ist.

Klicken Sie die Option "Start session in Windows NT/2000 domain" und f�gen Sie folgende Dom�ne ein: THEDOMAIN (WORKGROUP).

Eine Beispielkonfiguration

Es wird eine vollst�ndige Samba-Konfiguration vorgestellt, diese Datei wurde mit mehreren Linux-Distributionen getestet. Der Leser kann sie ab�ndern, um die n�tigen Ergebnisse, die in diesem Artikel vorgestellt werden, zu erhalten. Jeder vorgef�hrte Befehl ist korrekt kommentiert.

Ein letzter Ratschlag f�r jene, die eine schnelle Samba-Konfiguration wollen: Sie k�nnen Webmin und/oder SWAT installieren, Werkzeuge, die es erlauben auf bequeme Weise zu konfigurieren.

#============================================================#
# /etc/smb.conf
#------------------------------------------------------------------------------------------------------------#
# SAMBA Hauptkonfigurationsdatei
# Dateiskelett f�r die Konfiguration, w�hlen Sie die
# Parameter entsprechend Ihren Anforderungen.
#------------------------------------------------------------------------------------------------------------#
# Getestet mit den Systemen: Solaris und Linuxdistributionen:
# RedHat 6.0, 7.0 und 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0 und 8.1
# SuSe 7.2
#------------------------------------------------------------------------------------------------------------#
# Letzte �nderungen: 08/12/2001
# Sebastian Sasias - sasias(at)linuxmail(dot)org
#============================================================#
#
# Diese Datei wurde mit den Spezifikationen der Dokumentationen von
# SAMBA, von smb.conf(5) manual entwickelt
#
# OBS: Nachdem Sie diese Datei �ndern, testen Sie sie mit dem # Befehl
# "testparm"
#======================== Globale Optionen =======================#
#
# Allgemeine Konfiguration
#
[global]
#......................................................................................................................................#
# workgroup = NT-Dom�nen-Name oder Workgroup-Name, d.h.: THEDOMAIN
# PDC Domain
workgroup = THEDOMAIN
#......................................................................................................................................#
# Der Name mit dem diese Maschine den anderen bekannt sein wird.
netbios name = SMBServer
#......................................................................................................................................#
# Dieser Kommentar wird im Fenster "Network Neighborhood" erscheinen
server string = Samba Server de este lugar
#......................................................................................................................................#
# Diese Zeile ist aus sicherheitstechnischen Gr�nden wichtig, um Verbindungen mit ein paar bezeichneten Computern in einem lokalen Netzwerk zu erlauben.
#
# In diesem Beispiel wird Zugang f�r Computer des Netzwerks 192.168.8.0 zugelassen
# (gew�hnlich C-Class) und vom "loopback"-Interface Wegen genaueren Details, lesen Sie die smb.conf
# Manpages
# D.h.: Gemeinsame Ressourcen k�nnen nur von Computern aus benutzt werden, bei denen die IP-Adresse
# mit 192.168.8 und mit 127 beginnt (Kommentierter Satz in der folgenden Zeile)
; hosts allow = 192.168.8. 127.
#......................................................................................................................................#
# Wenn Sie automatisch eine Druckerliste laden wollen, anstatt eine
# Schritt f�r Schritt zusammenzuschreiben, benutzen Sie dies:
; load printers = yes
#......................................................................................................................................#
# �berschreiben des Pfads zur printcap ist m�glich
; printcap name = /etc/printcap
#......................................................................................................................................#
# Bei SystemV m�ssen die Namenseigenschaften von printcap f�r lpstat
# erlauben, automatisch eine Druckerliste vom Spoolsystem von SystemV zu erhalten
# (eine sch�ne Wortredundanz :-)
; printcap name = lpstat
#......................................................................................................................................#
# Es sollte nicht n�tig sein, das Drucksystem anzugeben, solange die Art nicht unstandardm��ig ist.
# Gegenw�rtig werden folgende Drucksysteme unterst�tzt:
# bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
#......................................................................................................................................#
# Entkommentieren Sie dies, falls Sie ein Gastkonto wollen
# Sie m�ssen dies in die /etc/passwd hinzuf�gen, ansonsten wird der Benutzer "nobody" benutzt
; guest account = pcguest
#......................................................................................................................................#
# Das ist dazu da, um f�r jeden Computer, der mit dem Samba-Server eine Verbindung aufbaut, eine andere Logdatei zu verwenden,
#
log file = /var/log/samba/log.%m
#......................................................................................................................................#
# Eine Begrenzung f�r die Gr��e der Logdateien setzen (in Kb).
max log size = 50
#......................................................................................................................................#
# Lesen Sie security_level.txt wegen mehr Details
# Zeigt die Art, wie man Passw�rter validieren soll
# Benutzerebenensicherheit = Jeder Benutzer mit diesem Passwort (smbpasswd)
security = user
#......................................................................................................................................#
# Wenn security = server ist, dann wird �ber einen anderen Server validiert
# Benutzen Sie den Wert "password server" nur bei security = server
# password server = [server authentication IP address].
; password server = <NT-Server-Name>
#......................................................................................................................................#
# Wenn Sie Passwortverschl�sselung verwenden wollen. Bitte lesen Sie ENCRYPTION.TXT,
# Win95.txt und WinNT.txt in der Samba-Dokumentation.
# Aktivieren Sie diese Option nicht, solange Sie nicht genug Informationen �ber diese Eigenschaft haben.
# Information: Win95, Win98 und WinNT senden verschl�sselte Pa�w�rter.
encrypt passwords = yes
#......................................................................................................................................#
# Wenn Sie folgende Zeile aktivieren, sind Sie in der Lage, Ihre Konfiguration f�r jede
# Maschine im Netzwerk anzupassen. %m wird durch den Netbiosnamen
# der verbundenen Maschine ersetzt.
; include = /usr/local/samba/lib/smb.conf.%m
#......................................................................................................................................#
# Die Dokumentation und einige beliebte "Tipgeber" meinen: m�glicherweise finden Sie, da�
# diese Option eine bessere Leistung bringt. Versuchen Sie es!
# Lesen Sie speed.txt und die Manualpages wegen Details.
socket options = TCP_NODELAY
#......................................................................................................................................#
# Samba-Konfiguration, um mehrere Netzwerkschnittstellen zu benutzen.
# Wenn Sie mehrere Netzwerkschnittstellen haben, dann m�ssen Sie sie hier auflisten. Wie im Beispiel.
# Lesen Sie die Manpage wegen Details.
; interfaces = 192.168.8.2/24 192.168.12.2/24
#......................................................................................................................................#
# Browserkontrolloptionen:
# setzen Sie lokal "master = no", wenn Sie nicht wollen, da� Samba der Masterbrowser Ihres Netzwerks wird.
local master = yes
#......................................................................................................................................#
# OS Level legt die Reihenfolge dieses Servers bei der Masterbrowserwahl fest.
# Gew�hnlich sollte der vorgegebene Wert vern�nftig sein.
; os level = 33
#......................................................................................................................................#
# Domain Master legt Samba als den Domain Master Browser fest.
# Dies erlaubt Samba Dienste als Domain Controller laufen zu lassen und kann Maschinen in unterschiedlichen
# TCP/IP-Subnetzen "betrachten"

# Benutzen Sie dies nicht, wenn Sie schon einen Windows NT/2000-Domain Controller haben, der das erledigt.
domain master = yes
#......................................................................................................................................#
# Preferred Master veranla�t Samba eine lokale Browserwahl beim Start zu erzwingen
# und gibt ihm eine leicht h�here Chance, die Wahl zu gewinnen.
# Wenn wir mehr als einen Server haben, wird der bervorzugte Master der "Favorit" sein,
# wenn Clients in einer Liste nach einem Server suchen
preferred master = yes
#......................................................................................................................................#
# Benutzen Sie dies nur, wenn Sie einen NT/2000-Server in Ihrem Netzwerk haben, und er als
# ein PDC (Primary Domain Controller) fungiert.
; domain controller = <NT-Domain-Controller-SMBName>
#......................................................................................................................................#
# Aktivieren Sie dies, falls Sie Samba als "domain logon server" f�r
# Windows 9x/Me Workstations verwenden wollen.
domain logons = yes
#......................................................................................................................................#
# Wenn Sie "domain logons" aktivieren, dann m�ssen Sie ein Logon-Script
# f�r jede Maschine oder f�r jeden Benutzer im Windows-Netwerk anlegen.

# F�r eine spezielle Logon-Batch f�r jeden Workstation computer
; logon script = %m.bat

# F�r eine spezielle Logon-Batch f�r jeden Benutzer
; logon script = %U.bat
#......................................................................................................................................#
# Wo die Roving-Profile (nur f�r Win95 und WinNT) anzulegen sind.
# %L ersetzt den NetBIOS-Namen des Servers, %U ersetzt den Benutzernamen.

# Sie m�ssen unten das [Profiles]-Share entkommentieren
; logon path = \\%L\Profiles\%U
#......................................................................................................................................#
# Unterst�tzung f�r Windows Internet Name Service:
# WINS-Unterst�tzung - sagt dem NMBD seinen WINS-Server zu aktivieren.
# WINS-Protokoll, konvertiert Maschinennamen zu IP-Adressen,
# es funktioniert so wie DNS bei TCP/IP funktioniert.
; wins support = yes
#......................................................................................................................................#
# WINS Server - sagt den NMBD-Komponenten von Samba ein WINS-Client zu sein
# Samba-Server kann einer von diesen sein: WINS-Server oder WINS-Client,
# aber NICHT beide gleichzeitig .
# Hier mu� der WINS IP Server angegeben werden
; wins server = 192.168.8.1
#......................................................................................................................................#
# WINS Proxy - sagt Samba Anfragen zu Namensaufl�sungen in Bezug auf einen WINS-
# f�higen Client, damit dies funktioniert mu� mindestens ein WINS-Server im Netzwerk sein.
# Der Defaultwert ist NO.
; wins proxy = yes
#......................................................................................................................................#
# DNS Proxy - sagt Samba, ob oder ob er nicht versuchen soll, NetBIOS-Namen �ber DNS-Lookups aufzul�sen.
# Das Default f�r Versionen bis 1.9.17 ist yes, das hat sich seit Version 1.9.18 zu no ver�ndert.

# Hier k�nnen wir Samba sagen, da� die Namensaufl�sung mit DNS oder nicht damit gemacht wird.
# dns proxy = yes
# dns proxy = no (Namensaufl�sung wird �ber die Datei lmhosts gemacht )
#......................................................................................................................................#
# Wenn das Logon-Laufwerk nicht angegeben wird, wird Z: automatisch gemounted.
logon drive = P:
#......................................................................................................................................#
#Wenn ein Login passiert, wird dieses Script ausgef�hrt: /etc/samba/netlogon/SAMBA.BAT
# und mounten Sie Platteneinheiten indem Sie "net use" verwenden
logon script = SAMBA.BAT

#====================== Share-Definitionen ========================#

# Pers�nliches Verzeichnis f�r jeden Benutzer
# Unit P:

[homes]
comment = Home Directories
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700

#------------------------------------------------------------------------------------------------------------#
# Verzeichnis f�r vorl�ufige Dateien
# Unit T:

[tmp]
comment = Tempora Files
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777

#------------------------------------------------------------------------------------------------------------#
# CD-ROM im Server
# Unit L:

[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no

#------------------------------------------------------------------------------------------------------------#
# Gruppe, entsprechend zu /home/grp.name_group
# /home/user/group ist ein Link nach /home/grp.name_group
# grp.name_group hat die Rechte 770
# Unit G:

[group]
comment = Directory of Group
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770

#------------------------------------------------------------------------------------------------------------#
# Diese Einheit ist dazu da, um Applikationen abzuspeichern, Installationssoftware,
# kommerzielle Software, usw.
# die Rechte von /net und /net/install sind 755, d.h.: hier ist root der Besitzer
# Unit N:

[net]
comment = Directory Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750

#------------------------------------------------------------------------------------------------------------#
[netlogon]
comment = Logon Services in the Network
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

#------------------------------------------------------------------------------------------------------------#

#============================================================#

Letzte Betrachtungen

Das Samba-Paket und andere Werkzeuge f�r Linux sind in einer st�ndigen Entwicklung, daher ist es m�glich, da� einige hier vorgestellte Details an G�ltigkeit verlieren. Tats�chlich wurden w�hrend der Geschichte der Samba-Entwicklung einige Parameternamen in den Konfigurationsdateien leicht abge�ndert, mit dem Ziel, eine bessere Struktur zu erhalten.

Wenn Sie w�hrend der Samba-Konfiguration einige Fehler �ber unbekannte Parameter erhalten, haben Sie zwei einfache M�glichkeiten, um das Problem zu l�sen:

Quellenangaben: Bibliographie and Software-Werkzeuge

Copyright

Samba ist ein Produkt, das unter der GPL verbreitet wird.
Linux ist eine registrierte Marke von Linus Torvalds.
Solaris ist ein Betriebssystem und registrierte Marke von Sun Microsystems.
MS Windows ist ein Betriebssystem und registrierte Marke von Microsoft.
Die Nutzung von Samba beinhaltet grosse Einsparnisse an Lizenzzahlungen ans Microsoft.