PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba-Server



LKH
14.11.01, 17:25
<h2>Samba Server</h2>
<a href=#intro>Einleitung</a>
<a href=#requirements>Voraussetzungen</a>
<a href=#smbconf>Die Konfigurationsdatei</a>
<a href=#sambapdc>Samba als PDC f&uuml;r Windows NT und 2000 Clients</a>

<hr>
<a name=Intro></a><h3>Einleitung</a></h3>
Windows- und OS/2-Rechner benutzen das SMB-Protokoll (Server Message Block) f&uuml;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 &uuml;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&uuml;r die Nutzung des SMB-Protokolls auf UNIX- und Linuxmaschinen ben&ouml;tigt man einen eigenen Serverdienst. Dieser wird durch das freie Softwarepaket Samba erm&ouml;glicht.
Diese FAQ soll kein mehere hunderte Seiten starkes Samba-Buch ersetzen und geht davon aus, dass die Software ordnungsgem&auml;ss installiert wurde und der Adminstrator weiss, wo der die Konfigurationsdateien -und Programme findet.

<a name=requirements></a><h3>Voraussetzungen</a></h3>
Im folgenden wird davon ausgegangen, dass...
<ol>
<li>alle benötigten Programme installiert sind:</li>
<ul>
<li>Samba 2.2.x</li>
<li>SWAT (Samba Web Administration Tool (Teil des Sambapakets)</li>
</ul>
<li>das Netzwerk grunds&auml;tzlich einsatzbereit ist (alle Rechner erreichen sich per ping)</li>
<li>die Arbeitsstationen laufen unter Windows 98 oder h&ouml;her</li>
<li>auf allen Windows-Clients ist NetBIOS und TCP/IP installiert und an die Netzwerkkarten gebunden ist</li>
</ol>
<a name=smbconf></a><h3>Die Konfigurationsdatei</a></h3>
Die gesamte Serverkonfiguration wird in einer Datei vorgenommen, n&auml;mlich der <CODE>/etc/smbd.conf</CODE> (unter Umst&auml;nden liegt die Datei auch an anderer Stelle). Diese Datei kann mit einem Editor oder &uuml;ber das Webinterface SWAT, das zum Lieferumfang von Samba geh&ouml;rt, bearbeitet werden. Das Aussehen
erinnert sehr an Windows ini-Dateien. Eine einfache Konfigurationsdatei
k&ouml;nnte wie folgt aussehen:</P>

<CODE>
[Global]
&nbsp;&nbsp;workgroup = WORKGROUP
&nbsp;&nbsp;guest account = nobody
&nbsp;&nbsp;keepalive = 30
&nbsp;&nbsp;socket options = TCP_NODELAY
&nbsp;&nbsp;hosts allow = 192.168.11.0/255.255.255.0

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

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

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

Die Eintr&auml;ge haben folgende Bedeutung:<TABLE BORDER=1>
<TR VALIGN="top"><TD>[Global]</TD><TD>Sektion der globalen Einstellungen</TD></TR>
<TR VALIGN="top"><TD>workgroup</TD><TD>bezeichnet die Arbeitsgruppe oder Windows-Dom&auml;ne, der der Server angeh&ouml;rt</TD></TR>
<TR VALIGN="top"><TD>guest account</TD><TD>bezeichnet den UNIX-Benutzer, der als Gast ohne Passwort mit minimalen Rechten auf die Ressourcen zugreifen darf</TD></TR>
<TR VALIGN="top"><TD>keep alive</TD><TD>Zeit in Sekunden, in denen der Server nachschaut, ob der Client noch &quot;lebt&quot;</TD></TR>
<TR VALIGN="top"><TD>socket options = TCP_NODELAY</TD><TD>Daten werden nicht in kleinen Datenbl&ouml;cken zusammengefasst</TD></TR>
<TR VALIGN="top"><TD>hosts allow</TD><TD>nur von diesem Netz darf auf den Server zugeriffen werden</TD></TR>
<TR VALIGN="top"><TD>[Homes], [Programme], [printers]</TD><TD>Defintionen der Freigabe</TD></TR>
<TR VALIGN="top"><TD>comment</TD><TD>Bezeichnung der Freigabe in der Netzwerkumgebung</TD></TR>
<TR VALIGN="top"><TD>read only</TD><TD>schaltet den Schreibzugriff ein oder aus (No=aus, YES=an)</TD></TR>
<TR VALIGN="top"><TD>browseable</TD><TD>die Freigabe wird in der Netzwerkumgebung des Clients angezeigt</TD></TR>
<TR VALIGN="top"><TD>public</TD><TD>der Gastzugang wird erlaubt (Yes) oder unterbunden (No)</TD></TR>
<TR VALIGN="top"><TD>create mode</TD><TD>Festlegung, mit welchen UNIX-Zugriffsrechten Dateien angelegt werden</TD></TR>
<TR VALIGN="top"><TD>printable</TD><TD>Hier darf Gedruckt werden</TD></TR>
</TABLE>

Nach dem Neustart des Sambaservers m&uuml;sste der Server in der Netzwerkumgebung des Windows-Clients erscheinen. Ist dies nicht der Fall, kann das mehrere Gr&uuml;nde haben:
<UL>
<LI>die Netzwerkumgebung ist noch nicht aktualisiert worden (warten oder &lt;F5&gt; dr&uuml;cken)
<LI>&uuml;berpr&uuml;fen, ob der Server &uuml;berhaupt erreichbar ist durch die Eingabe von &quot;
<CODE>\\servername&quot; in der Adresszeile oder &uuml;ber Start -&gt; Suchen -&gt; Computer
<LI>eine Firewall blockiert den Zugriff (einfach mal kurzzeitig stoppen und dann die Konfiguration &auml;ndern)
<LI>das &quot;Dummydevice&quot; ist installiert (deinstallieren!)
<LI>der Arbeitsgruppenname ist auf dem Windowsclient und Linuxserver unterschiedlich (&auml;ndern!)
</UL>

Ein Doppelklick auf den Server l&auml;sst dann die Freigabe erkennen: hier nur das Homeverzeichnis des Benutzers.</p>

Standardmässig liegt die Sicherheit bei der Freigabe; der Benutzer wird vor dem &Ouml;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&ouml;glich ist, muss erst ein Sambabenutzer angelegt werden. Das geht als root mit folgendem Befehl:

<CODE>
smbpasswd -a user
</CODE>

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

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

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

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

Nach eine Sambaneustart kann der soeben hinzugef&uuml;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
<OL>
<LI>der Client unverschl&uuml;sselte Passw&ouml;rter sendet (Windows 95 oder niedriger)
<LI>durch den Eintrag <CODE>encrypt passwords = No</CODE> in der [Global]-Sektion.
</OL>

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

<a name=sambapdc></a><h3>Samba als PDC f&uuml;r Windows NT und 2000 Clients</a></h3>

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

<pre>
# Global parameters
[global]
workgroup = WORKGROUP ; Name der Dom&auml;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&uuml;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&auml;nenadministrators
domain admin users = root ; der Dom&auml;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&auml;nenanmeldung
os level = 65 ; der mit dem h&ouml;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)
</PRE>

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

Damit der Sambaserver als Primärer Domänen Controller von den Arbeitsstationen akzeptiert wird, sind die Eintr&auml;ge
<CODE>
os level = 65
preferred master = True
domain master = True
</CODE>
n&ouml;tig.

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

<CODE>
@ECHO OFF
NET USE P:\ \\SERVER\Programme
</CODE>

Dadurch k&ouml;nnen Freigaben an Laufwerksbuchstaben gebunden werden (hier z.B. wird die freigegebene Ressource& quot;Programme&quot; mit dem Laufwerk P: verbunden). DieseB atchdateien sind unbedingt im DOS-Format zu speichern (Zeilenende mit &lt;CR&gt;&lt;LF&gt;). Im obigen Beispiel w&uuml;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&uuml;tzen, kann sie auch in einem Verzeichnis gespeichert werden, auf das die Windowsuser keinen Zugriff haben. Der Speicherplatz wird durch den Paramter <CODE>logon home = ...</CODE> festgelegt. Sollen f&uuml;r jeden Benutzer individuelle Logon-Skripte angelegt werden, so sind diese als &quot;benutzername.cmd&quot; zu speichern und in der smb.conf mit
<CODE>%h.cmd</CODE> einzutragen (<CODE>%h</CODE> ist der Platzhalter f&uuml;r den Benutzernamen nach der Anmeldung). F&uuml;r gruppenspezifische Logonskripte ist sinngem&auml;ss zu verfahren
(Speicherung als <CODE>gruppenname.cmd</CODE>, Eintrag in der smb.conf als <CODE>%g.cmd</CODE>.)

Damit sich der Windowsrechner an der Dom&auml;ne anmelden darf, ist auf dem Server ein Rechnerkonto (Machine Trust Account) einzurichten. Ohne &quot;winbind&quot; 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&auml;ngtem &quot;$&quot;):

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

Mit <CODE>smbpasswd -a -m rechner$</CODE> ist dann das Rechnerkonto in der Dom&auml;ne anzulegen. Damit die &Auml;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. &Uuml;ber die Systemeinstellungen kommt man &uuml;ber die Registerkarte &quot;Netzwerkidentifiktion&quot; zu den Eigenschaften.

Durch Anklicken des Buttons &quot;Eigenschaften&quot; k&ouml;nnen Sie den Rechnernamen nochmals &uuml;berpr&uuml;fen und den Dom&auml;nnamen eintragen.

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

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

Nach der Anmeldung k&ouml;nnen die Benutzer jeweils nur ihre, der Administrator alle Profile von lokal gespeichert auf servergespeichert &auml;ndern.

<b>Troubleshooting</b>

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

<LI>Die smb.conf mit <CODE>testparm</CODE> pr&uuml;fen
<LI>Genaue Schreibweisen der Rechner- und Dom&auml;nnamen &uuml;berpr&uuml;fen
<LI>Rechnerkonto angelegt mit angeh&auml;ngtem &quot;$&quot; sowohl unter Linux wie auch f&uuml;r Samba
<LI>Ggf. das Rechnerkonto aus der smpasswd l&ouml;schen und den Machine Trust Account mit smpasswd -a -m ... neu anlegen
<LI>Nach allen &Auml;nderungen Samba neu starten
<LI>In einem Fall half nur, den Rechner umzubenennen und mit neu angelegtem Rechnerkonto wieder anzumelden (nur Bill weiss warum). Ein Umbenennen
eines Dom&auml;nenmitglieds funktioniert allerdings hervorragend.
<LI>Keine &Auml;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.

<P style="font-size:small"><hr>
<a name=copyright></a>
&copy; 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 <a href=http://www.gnu.org/licenses/fdl.txt>GNU Free Documentation License, Version 1.1</a> 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
27.01.02, 23:52
Hallo,

beim Kommando:

smbpasswd -a $user

war bei mir noch ein -e notwendig.

Also smbpasswd -a -e $user

Viele Grüsse

Eicke