# FAQ Tips > Hier Suchen und Finden, Links, Tutorials >  Samba-Server

## LKH

Samba Server
Einleitung
Voraussetzungen
Die Konfigurationsdatei
Samba als PDC für Windows NT und 2000 Clients


Einleitung
       Windows- und OS/2-Rechner benutzen das SMB-Protokoll (Server Message Block) für die   Kommunikation im Netz. SMB baut auf NetBIOS auf, das ebenfalls von Microsoft stammt.  NetBIOS ist nur ein Netzwerkprotokoll, kein Transportprotokoll. Der Transport erfolgt über ein anderes Transportprotokoll, z.B. TCP/IP. Somit kann in einem heterogenen Netz ein einheitliches Transportprotokoll benutzt werden, was die Konfiguration der Clients sowie das Routing erheblich vereinfacht. 
       Für die Nutzung des SMB-Protokolls auf UNIX- und Linuxmaschinen benötigt man einen eigenen Serverdienst. Dieser wird durch das freie Softwarepaket Samba ermöglicht.
       Diese FAQ soll kein mehere hunderte Seiten starkes Samba-Buch ersetzen und geht davon aus, dass die Software ordnungsgemäss installiert wurde und der Adminstrator weiss, wo der die Konfigurationsdateien -und Programme findet.

Voraussetzungen
      Im folgenden wird davon ausgegangen, dass...

alle benötigten Programme installiert sind:

Samba 2.2.x
SWAT (Samba Web Administration Tool (Teil des Sambapakets)

das Netzwerk grundsätzlich einsatzbereit ist (alle Rechner erreichen sich per ping)
die Arbeitsstationen laufen unter Windows 98 oder höher
auf allen Windows-Clients ist NetBIOS und TCP/IP installiert und an die Netzwerkkarten gebunden ist

Die Konfigurationsdatei
      Die gesamte Serverkonfiguration wird in einer Datei vorgenommen, nämlich der /etc/smbd.conf (unter Umständen liegt die Datei auch an anderer Stelle). Diese Datei kann mit einem Editor oder über das Webinterface SWAT, das zum Lieferumfang von Samba gehört, bearbeitet werden. Das Aussehen
 erinnert sehr an Windows ini-Dateien. Eine einfache Konfigurationsdatei
 könnte wie folgt aussehen:


 [Global]
   workgroup = WORKGROUP
   guest account = nobody
   keepalive = 30
   socket options = TCP_NODELAY
   hosts allow = 192.168.11.0/255.255.255.0

 [Homes]
   comment = Home
   read only = No
   browseable = Yes
   public = No
   create mode = 0750

      [Programme]
   comment = Programme
   path = /export/samba/programme
   read only = No
   browseable = Yes
   create mode = 0777

      ;Alle Drucker einbinden; Drucken ueber Windows auf raw
 [printers]
   path = /tmp
   create mode = 0700
   printable = Yes
   browseable = No


      Die Einträge haben folgende Bedeutung:
[Global]Sektion der globalen Einstellungen
workgroupbezeichnet die Arbeitsgruppe oder Windows-Domäne, der der Server angehört
guest accountbezeichnet den UNIX-Benutzer, der als Gast ohne Passwort mit minimalen Rechten auf die Ressourcen zugreifen darf
keep aliveZeit in Sekunden, in denen der Server nachschaut, ob der Client noch "lebt"
socket options = TCP_NODELAYDaten werden nicht in kleinen Datenblöcken zusammengefasst
hosts allownur von diesem Netz darf auf den Server zugeriffen werden
[Homes], [Programme], [printers]Defintionen der Freigabe
commentBezeichnung der Freigabe in der Netzwerkumgebung
read onlyschaltet den Schreibzugriff ein oder aus (No=aus, YES=an)
browseabledie Freigabe wird in der Netzwerkumgebung des Clients angezeigt
publicder Gastzugang wird erlaubt (Yes) oder unterbunden (No)
create modeFestlegung, mit welchen UNIX-Zugriffsrechten Dateien angelegt werden
printableHier darf Gedruckt werden


      Nach dem Neustart des Sambaservers müsste der Server in der Netzwerkumgebung des Windows-Clients  erscheinen. Ist dies nicht der Fall, kann das mehrere Gründe haben:

die Netzwerkumgebung ist noch nicht aktualisiert worden (warten oder <F5> drücken)
überprüfen, ob der Server überhaupt erreichbar ist durch die Eingabe von "
\\servername" in der Adresszeile oder über Start -> Suchen -> Computer
eine Firewall blockiert den Zugriff (einfach mal kurzzeitig stoppen und dann die Konfiguration ändern)
das "Dummydevice" ist installiert (deinstallieren!)
der Arbeitsgruppenname ist auf dem Windowsclient und Linuxserver unterschiedlich (ändern!)


      Ein Doppelklick auf den Server lässt dann die Freigabe erkennen: hier nur das Homeverzeichnis des Benutzers.

      Standardmässig liegt die Sicherheit bei der Freigabe; der Benutzer wird vor dem Öffnen nach seinem Benutzernamen und Passwort gefragt. Hier merkt man nun, dass zwei Welten aufeinander treffen: die angelegten Linuxbenutzer  kommen nicht auf die Freigabe. Samba verwaltet seine Benutzer selbst und hat eine eigene Benutzerdatei:
 die smbpasswd. Bevor ein Zugriff auf die Freigaben möglich ist, muss erst ein Sambabenutzer angelegt werden.  Das geht als root mit folgendem Befehl:


 smbpasswd -a user


      Das "-a" steht für add (hinzufügen); "user" für den Namen eines bereits
 angelegten Linuxbenutzers. smbpasswd fragt dann zweimal das Benutzerpasswort ab.  Wie gesagt: es lassen sich nur Benutzer hinzufügen, die Linux schon bekannt sind.

 Sollen alle schon angelegten Benutzer automatisch hinzugefügt werden, geht die über die Eingabe von


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


      als root von der Konsole. Ob dies sinnvoll ist, ist jeweils eine Einzelfallentscheidung. Es werden nämlich  auch die für bestimmte Dienste angelegten Benutzer übertragen (z.B. wwwrun für den Apache, mysql für das gleichnamige Datenbanksystem etc.).

      Nach eine Sambaneustart kann der soeben hinzugefügte Benutzer auf sein Linux-Homeverzeichnis auch von einem Windowsrechner zugreifen. Wird der Zugriff verweigert, obwohl das richtige Passwort eingetragen wurde,  kann das daran liegen, dass

der Client unverschlüsselte Passwörter sendet (Windows 95 oder niedriger)
durch den Eintrag encrypt passwords = No in der [Global]-Sektion.


      In Mischumgebungen (z.B. Windows 95 und Windows 2000) ist daher auf das schwächste Glied Rücksicht zu nehmen. In der smb.conf ist über den Eintrag encrypt passwords = No in der [Global]-Sektion die Verschlüsselung abzuschalten. Ab Windows 98 ist dann durch einen geeigneten Eintrag in der Registry ebenfalls die Verschlüsselung zu unterbinden. Die Registrierungsschlüssel findet man im Dokumentationsverzeichnis von Samba.

Samba als PDC für Windows NT und 2000 Clients

 Um den Samba-Server als Primären Domänen Controller einsetzen zu können, sind insbesondere für Windows 2000 Clients einige Erweiterungen an der smb.conf vorzunehmen:


 # Global parameters
 [global]
     workgroup = WORKGROUP                           ; Name der Domäne
     netbios name = SERVER                           ; NetBIOS-Name des Servers
     server string = Samba %v (PDC)                  ; Kommentar
     interfaces = 192.168.11.1/24                    ; IP der Netzwerkkarte
     bind interfaces only = Yes                      ; nur diese Schnittstelle verwenden
     encrypt passwords = Yes                         ; Passwortverschlüsselung
     map to guest = Bad User                         ; Gastbenutzer
     passwd program = /usr/bin/passwd  %u            ; Passwortprogramm
     unix password sync = Yes                        ; UNIX- und Samba Passworte synchronisieren
     log level = 3                                   ; Debug-Level
     log file = /var/log/%U.smb                      ; Pfad zur Log-Datei
     keepalive = 30                                  ; Warten auf Client (in sek.)
     domain admin group = @root                      ; Gruppe des Domänenadministrators
     domain admin users = root                       ; der Domänenadministrator
     admin users = root                              ; Administrator mit allen Rechten auf allen Freigaben (Vorsicht!)
     logon script = logon.cmd                        ; Name des Anmeldeskripts
     logon path = \\%N\%u\profiles                   ; Pfad der servergespeicherten Profile
     logon drive = H:                                ; Laufwerksbuchstabe des Homeverzeichnisses
     logon home = %H                                 ; Pfad zum Homeverzeichnis (/home/user)
     domain logons = Yes                             ; Domänenanmeldung
     os level = 65                                   ; der mit dem höchsten Level wird der Masterbrowser
     preferred master = True                         ; bevorzugter Masterbrowser
     domain master = True                            ; PDC
     hosts allow = 192.168.11.0/255.255.255.0        ; Zugriff nur von diesem Netz(bereich)


Die Einträge domain admin group = @root und domain admin users = root sorgen dafür, dass über den Benutzer root neue Arbeitsstationen in der Domäne angemeldet werden können. Zur Zeit ist dies nur über einen root-Zugriff möglich. Man kann zwar andere Benutzer/Gruppen eintragen, diese können allerdings noch nicht verwendet werden.

Damit der Sambaserver als Primärer Domänen Controller von den Arbeitsstationen akzeptiert wird, sind die Einträge

os level = 65
preferred master = True
domain master = True

     nötig.

Die Datei logon.cmd ist eine NT/2000-Batchdatei, die u.a. die Laufwerkszuordnungen vornehmen kann. Sie hat z.B. folgenden Inhalt:


@ECHO OFF
NET USE P:\ \\SERVER\Programme


     Dadurch können Freigaben an Laufwerksbuchstaben gebunden werden (hier z.B. wird die freigegebene Ressource& quot;Programme" mit dem Laufwerk P: verbunden). DieseB atchdateien sind unbedingt im DOS-Format zu speichern (Zeilenende mit <CR><LF>). Im obigen Beispiel würde sich die logon.cmd im Homeverzeichnis des Benutzers befinden. Der Benutzer muss Leserechte an dieser Datei haben.
     Um die Datei vor Manipulationen zu schützen, kann sie auch in einem Verzeichnis gespeichert werden, auf das die Windowsuser keinen Zugriff haben. Der Speicherplatz wird durch den Paramter logon home = ... festgelegt. Sollen für jeden Benutzer individuelle Logon-Skripte angelegt werden, so sind diese als "benutzername.cmd" zu speichern und in der smb.conf mit
%h.cmd einzutragen (%h ist der Platzhalter für den Benutzernamen nach der Anmeldung). Für gruppenspezifische Logonskripte ist sinngemäss zu verfahren
(Speicherung als gruppenname.cmd, Eintrag in der smb.conf als %g.cmd.)

     Damit sich der Windowsrechner an der Domäne anmelden darf, ist auf dem Server ein Rechnerkonto (Machine Trust Account) einzurichten. Ohne "winbind" aus dem TNG-Zweig ist diese Einrichtung auf dem Linuxserver vorzunehmen. Als erstes ist ein Benutzer mit dem Rechnernamen anzulegen (der Rechnername ist der NetBIOS-Name mit angehängtem "$"):

useradd rechner$ -b /dev/null -s /bin/false
     (hier würde ein Benutzer mit dem Namen "rechner", dem Homeverzeichnis "/dev/null" und der Shell "/bin/false" ohne Passwort angelegt, ein Einloggen unter dieser Benutzerkennung ist nicht möglich)

     Mit smbpasswd -a -m rechner$ ist dann das Rechnerkonto in der Domäne anzulegen. Damit die Änderungen wirksam werden, ist der Sambadienst neu zu starten.

     Die weitere Einrichtung erfolgt dann vom Windows-Rechner selbst. Dazu muss man sich dort als Administrator anmelden. Über die Systemeinstellungen kommt man über die Registerkarte "Netzwerkidentifiktion" zu den Eigenschaften.

     Durch Anklicken des Buttons "Eigenschaften" können Sie den Rechnernamen nochmals überprüfen und den Domännamen eintragen.

     Anschliessend versucht der Rechner eine Verbindung zum Server aufzubauen. Danach werden Sie nach einem Konto gefragt, dass über die Privilegien verfügt, den Rechner in die Domäne
aufzunehmen. Tragen Sie hier die Daten für root ein. Hat soweit alles geklappt, werden Sie freundlich in der Domäne begrüsst:

     Nach einem Neustart des Rechners können Sie sich nun mit den Anmeldedaten eines unter Samba angelegten Benutzers anmelden. Gegebenenfalls sind die Optionen des Anmeldebildschirms zu öffen
und die Domäne auzuwählen.

     Nach der Anmeldung können die Benutzer jeweils nur ihre, der Administrator alle Profile von lokal gespeichert auf servergespeichert ändern.

*Troubleshooting*

     Es kann passieren, dass der Windowsrechner nicht direkt in die Domäne aufgenommen wird. Dies kann vielfältige und nicht immer nachvollziehbare Ursachen haben. Folgende Liste ist mit Sicherheit nicht vollständig, hat aber bisher immer geholfen (über weitere Tips wäre ich dankbar):

Die smb.conf mit testparm prüfen
Genaue Schreibweisen der Rechner- und Domännamen überprüfen
Rechnerkonto angelegt mit angehängtem "$" sowohl unter Linux wie auch für Samba
Ggf. das Rechnerkonto aus der smpasswd löschen und den Machine Trust Account mit smpasswd -a -m ... neu anlegen
Nach allen Änderungen Samba neu starten
In einem Fall half nur, den Rechner umzubenennen und mit neu angelegtem Rechnerkonto wieder anzumelden (nur Bill weiss warum). Ein Umbenennen
eines Domänenmitglieds funktioniert allerdings hervorragend.
Keine Änderungen an den Sicherheitsrichtlinien vornehmen bzw. den Standard wiederherstellen

Und nun viel Spass mit mehr Sicherheit und Performance sowie beim Ausgeben der eingesparten Server- und Clientlizenzen.



 © Copyright 2001 by Leander Kirstein-Heine, Computer & Network Consulting, Engelplatz 11, D-07743 Jena
 Permission is granted to copy, distribute and/or modify this document under the  terms of the GNU Free  Documentation License, Version 1.1 or any later version published by  the Free Software Foundation. A copy of the license is included in  the section entitled "GNU Free Documentation License".

----------


## netzmeister

Hallo,

beim Kommando:

* smbpasswd -a $user *  

war bei mir noch ein *-e* notwendig.

Also *smbpasswd -a -e $user   *  

Viele Grüsse

  Eicke

----------

