| Samba - ein fast kostenloser Server | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
von Thomas Kemmerich - http://www.thomas-kemmerich.de Download der druckbaren Version: a) als zip-Datei b) als tar-Datei Inhalt
1. Vorwort
2. Voraussetzungen
3. Vorzüge eines Servers
3.2. Vorzüge eines Linux-Servers 4. Ziel
5. AnmerkungRoot ist mächtig, er kann aber auch zerstören - und meistens gibt
es keinen "Rückgängig"-Knopf! 6. BeispielumgebungJetzt lassen wir unser Netzwerk mal Gestalt annehmen. Der Server-PC könnte folgende Ausstattung haben: Prozessor: i486 DX4 100 Grafikkarte: Tseng ET4000 W32p Festplatte: 8 GB Seagate (IDE) CD-ROM-Laufwerk: altes 8x von Creative Betriebssystem: SuSE Linux 6.2 (Kernel 2.2.10) NE-2000 kompatible Netzwerkkarte (ISA) (BNC Kabel) Wie man sieht, ist der Server kein High-End-System, aber für unsere Zwecke vollkommen ausreichend. Die Clients sind total unterschiedlich, sie haben lediglich zwei Dinge gemeinsam: Betriebssystem: Windows 98 NE-2000 kompatible Netzwerkkarten (BNC Kabel) Wie man das Netzwerk nun strukturiert (Topologie) ist jedem selbst überlassen, hier in der Beispielumgebung verwende ich eine 10 Mbit Bustopologie. Das scheint mir bei einem kleinen, privaten Netzwerk (bis max. 10 PCs) die preiswerteste und beste Lösung zu sein. Die Beispielumgebung sieht nun so aus:
Einrichten der NetzwerkgrundstrukturAls erstes sollte sichergestellt werden, dass das Netzwerk von der Hardwareseite aus gesehen funktionsfähig ist. Um das zu testen installieren wir auf jedem PC das TCP/IP-Protokoll und ordnen jedem PC eine eindeutige IP-Adresse zu (Kleiner Tip: Unter Windows 9x geht das unter Systemsteuerung - Netzwerk und unter SuSE-Linux am Besten mittels YaST).In unserem Fall lautet diese IP-Adresse 192.168.0.x: Der erste Client bekommt die IP-Adresse 192.168.0.1, der zweite 192.168.0.2, der dritte 192.168.0.3, ... Der Server bekommt die IP-Adresse 192.168.0.99.Da unser Netz ein Klasse C Netz im privaten Bereich ist, verpassen wir jedem PC die Subnetmask 255.255.255.0. So, als erstes sollte man nun testen, ob diese Einstellungen funktionieren. Dazu kann man unter Windows 9x in der MS-DOS-Eingabeaufforderung ipconfig und unter der Linux Shell ifconfig eingeben. Die Ausgabe müsste dann ungefähr so aussehen: Windows 9x: Windows 98 IP-Konfiguration
0 Ethernet Adapter :
IP-Adresse. . . . . . . . . : 192.168.0.2
Subnet Mask . . . . . . . . : 255.255.255.0
Standard-Gateway . . . . . . : 0.0.0.0
Linux:
eth0 Link encap:Ethernet HWaddr 08:00:00:30:04:06
inet addr:192.168.0.99 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1401 errors:0 dropped:0 overruns:0 frame:1
TX packets:1137 errors:0 dropped:0 overruns:0 carrier:0
collisions:10 txqueuelen:100
Interrupt:10 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:33 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Ist dies der Fall, sollte man in der Lage sein mit dem Programm ping die anderen Rechner zu erreichen. Dazu gibt man unter Linux oder Windows einfach ping IP-Adresse ein. Um den Server von einem Client aus zu erreichen also ping 192.168.0.99. Ist auch ping erfolgreich, so steht die Grundstruktur und wir können uns dem Einrichten des Servers und dem der Clients zuwenden. 8. Einrichten des Servers
8.1. Einstellungen am Server
8.2. Grundsätzliches zu Samba Die Konfiguration des Samba-Servers erfolgt über die zentrale Konfigurationsdatei /etc/smb.conf. In ihr werden alle Servereinstellungen vorgenommen. In diesem "HowTo" verwende ich eine smb.conf, die nur das Nötigste zum Betrieb des Servers mitbringt, da es den Umfang des "HowTo"s überschreiten würde, wenn ich alle möglichen Einstellungen auflisten würde. Wer dennoch mehr über die möglichen Einstellungen wissen will, der sollte sich mal die man-Pages zur smb.conf anschauen (man smb.conf). Nun gibt es mehrere Arten, wie man den Samba-Server konfigurieren kann. Man kann dies zum Beispiel über SWAT (Samba Web Administration Tool) ganz bequem mit einem Browser erledigen oder man benutzt eine X-Oberfläche oder oder oder... In diesem "HowTo" bearbeiten wir die /etc/smb.conf jedoch mit einem Editor (ich benutze dazu vi). Da es wichtig ist, den Aufbau der Datei zu kennen, falls eines dieser schönen Tools von oben mal partout seinen Dienst verweigert. Nach jeder Änderung an der Konfiguration des Samba-Servers muß dieser heruntergefahren und wieder neu gestartet werden, damit der Samba-Dämon die neuen Einstellungen aus der Konfigurationsdatei /etc/smb.conf liest und auch verwendet. Dies geschieht ganz einfach durch den Aufruf von /sbin/init.d/./smb restartWer will, kann sich ja ein eigenes Script schreiben um sich das eventuell lästige Eintippen der Befehlszeile zu ersparen. Das ist jedoch ein Thema für sich. ;) 8.3. /etc/smb.conf Anmerkung: Kommentare können in die Datei mittels einer Raute # in einer neuen Zeile eingefügt werden. So, nun geht's los mit den Einstellungen in der Konfigurationsdatei. Die besagte Datei ist in mehrere Sektionen aufgeteilt:
Schauen wir uns nun mal die einzelnen Sektionen etwas genauer an. In der [global]-Sektion werden die Grundeinstellungen des Servers festgelegt:
Jetzt haben wir die Servergrundeinstellungen schon vorgenommen und machen uns jetzt an die Freigabe der Heimatverzeichnisse. Hierzu gibt es in der /etc/smb.conf den Abschnitt [homes]. Homes ist jedoch nicht der Freigabename, sondern nur der Sektionsname in der Konfigurationsdatei. Der Freigabename richtet sich nach den Namen des Benutzers. Meldet sich zum Beispiel der Benutzer micrix an, so erscheint sein Heimatverzeichnis unter dem Freigabenamen micrix (in unserem Fall heißt der Server-PC server, der komplette Freigabename lautet also \\server\micrix). Den kompletten Freigabenamen zu kennen wird später, wenn wir unsere Logonscripts schreiben, wichtig sein.
Nun geben wir noch das CD-ROM-Laufwerk des Servers frei (Freigabename: cdrom). Hierbei ist noch zu sagen, dass man natürlich nur auf das CD-ROM-Laufwerk zugreifen kann, wenn es auf /cdrom gemountet wurde.
Jetzt müssen wir dem Samba-Server noch sagen, wo die Logonscripte liegen und sie ihm zugänglich machen. Dies geschieht im Abschnitt [netlogon]:
Zu guter Letzt geben wir jetzt noch ein Verzeichnis frei, in dem alle Benutzer tun und lassen können, was sie wollen. Dieses Verzeichnis ist in diesem Fall ein Verzeichnis, in dem die Benutzer ihre Dateien, die sie aus dem Internet downgeloaded haben abspeichern können. Die Einstellungen für dieses Verzeichnis werden in der /etc/smb.conf unter dem Abschnitt [internetdaten] gemacht:
Damit ist die Serverkonfiguration abgeschlossen und wir starten den Server neu. Die komplette Datei /etc/smb.conf sieht nun also so aus: [global] workgroup = server.de share modes = yes security = server os level = 65 domain logons = yes logon script = %U.bat log file = /home/netlogon/%m.log server string = Mein kleiner Server encrypt passwords = yes [homes] browseable = no writeable = yes [cdrom] path = /cdrom read only = yes [netlogon] path = /home/netlogon read only = yes browseable = no create mode = 0755 [internetdaten] path = /home/internet browseable = yes writeable = yes create mode = 777 9. Einrichten des Windows 98 Clients
10. Erster TestDa wir nun mit dem größten Teil der Konfiguration fertig sind, ist es an der Zeit, einmal zu testen, ob auch alles so geklappt hat wie es soll. Hierzu benutzen wir am Server am Besten das Programm smbclient. Durch die Eingabe von smbclient -L server -U NEUER_BENUTZER sollten wir folgende Ausgabe bekommen, wenn alles geklappt hat: Added interface ip=192.168.0.99 bcast=192.168.0.255 nmask=255.255.255.0
Password:
Domain=[SERVER.DE] OS=[Unix] Server=[Samba 2.0.5a]
Sharename Type Comment
--------- ---- -------
cdrom Disk
internetdaten Disk
IPC$ IPC IPC Service (Mein kleiner Server)
NEUER_BENUTZER Disk
Server Comment
--------- -------
SERVER Mein kleiner Server
Workgroup Master
--------- -------
SERVER.DE SERVER
Natürlich müsste, nach der Anmeldung am Client, auch der Server mit seinen freigegebenen Ressourcen in der Windows Netzwerkumgebung zu sehen sein. Sollte es wider Erwarten Probleme geben, als erstes mit ipconfig (Windows) bzw. ifconfig (Linux) testen, ob das Netzwerk richtig konfiguriert ist und dann eventuell auch noch versuchen, ob sich die Rechner mit ping erreichen. Folgende Fragen sollten wir uns bei der Fehlersuche stellen:
11. Logonscripts11.1. Allgemeines zu Logonscripts Nun gut, die mehr oder weniger umständliche Konfiguration des Servers und der Clients ist jetzt soweit abgeschlossen. Da unser Server ja ein Fileserver sein soll, wäre es ganz praktisch, wenn bei der Anmeldung am Client automatisch ein oder auch mehrere Netzlaufwerke verbunden werden würden. Zwar kann man dies auch von Hand machen, aber das ist wohl in den seltensten Fällen erwünscht. Denn für einen "normalen" User muß der PC einfach funktionieren. Wenn man als Systemadministrator jedoch mal ein paar Daten vom Server braucht, kann man allerdings ohne Probleme schnell ein Verzeichnis auf dem Server freigeben, und dieses dann manuell mit einem Netzlaufwerk verbinden (rechter Mausklick auf Netzwerkumgebung - Netzlaufwerk verbinden...). Genug geredet, jetzt zur automatischen Lösung: Logonscripts. Logonscripts werden bei der Anmeldung an den Server ausgeführt. Sie liegen unserer Konfiguration (/etc/smb.conf) nach im Verzeichnis /home/netlogon auf dem Server. Außerdem haben wir während der Konfiguration des Samba-Servers festgelegt, dass jeder Benutzer ein individuelles Logonscript haben soll. Dass heißt also, dass wir nun für jeden Benutzer ein eigenes Logonscript schreiben müssen. Dabei sind drei Dinge zu beachten: Erstens müssen die Logonscripts mit einem DOS/Windows-Editor geschrieben werden, damit der Client sie später auch versteht. Zweitens muß jedes Logonscript folgendes Format haben: BENUTZER_NAME.bat. Drittens sollten die einzelnen Logonscripts mit folgenden Befehlen: chmod 500 BENUTZER_NAME.bat chown BENUTZER_NAME BENUTZER_NAME.batmit diesen Rechten versehen werden: -r-x------ 1 BENUTZER_NAME root 156 Dec 29 17:51 BENUTZER_NAME.batAufgrund der vergebenen Rechte spielt es keine Rolle, welcher Gruppe das Logonscript zugeordnet ist. 11.2. Aufbau eines Logonscripts Wie muss ein Logonscript denn jetzt aussehen? Logonscripte sind eigentlich ganz einfache Batch-Dateien (zumindest in unserem Fall). Wichtigster Bestandteil unserer Logonscripts ist der DOS- bzw. Windows-Befehl net. Er ist in der Lage Netzwerkverzeichnissen Laufwerksbuchstaben zuzuordnen, oder aber auch die Uhrzeiteinstellungen des Clients mit denen des Servers abzugleichen. Also, hier nun mal ein Logonscript, wie es in unserem Fall für NEUER_BENUTZER aussehen könnte: @echo off c:\windows\net start c:\windows\net use g: \\server\NEUER_BENUTZER c:\windows\net use h: \\server\cdrom c:\windows\net use i: \\server\internetdaten c:\windows\net time \\server /set /yes Dieses Logonscript muss nun vom Windowsrechner (mit dem es ja geschrieben wurde!) auf den Server in das Verzeichnis /home/netlogon (in unserem Fall) als NEUER_BENUTZER.bat gespeichert werden. Die Rechte und weitere Einstellungen zu den Logonscripts siehe unter: Allgemeines zu Logonscripts. Zur Erklärung der einzelnen Befehlszeilen: die erste Zeile @echo off besagt, dass die Befehle selbst nicht in das Logonfenster geschrieben werden, sondern nur die Rückgaben der einzelnen Befehle. Mit c:\windows\net start wird der Net-Dienst gestartet, falls dies nicht schon vorher geschehen ist. Die nächsten drei Zeilen im Logonscript weisen den Laufwerken G, H und I jeweils eine Netzwerkressource zu (\\server\NEUER_BENUTZER, \\server\cdrom und \\server\internetdaten). Falls es bei der Zuweisung der Laufwerksbuchstaben zu Fehlermeldungen kommt, sollte überprüft werden, ob a) der Netzwerkpath korrekt ist und ob b) eventuell schon alle verfügbaren Laufwerksbuchstaben verbraucht sind. Die maximale Anzahl von Laufwerksbuchstaben kann mit regedit auf dem Windows-Rechner im Schlüssel: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup durch das Ändern des Wertes von lastdrive höher gesetzt werden (maximaler Wert von lastdrive ist Z). Die letzte Zeile im Logonscript synchronisiert die Uhrzeiteinstellungen vom Client mit denen des Servers (\\server). Natürlich können in das Logonscript auch noch andere Befehle eingebunden werden, die eventuell nötig sind. 12. SchlusswortSo, dass war's. Ich hoffe, dass ich dir weiterhelfen konnte. Falls du noch irgendwelche Fragen hast oder einen (oder auch mehrere ;) ) Fehler entdeckt hast, schreib mit doch einfach eine eMail. Konstruktive Kritik und eventuell auch Lob ;) gehen auch an diese Adresse. 13. Über den Autor
Mein Name ist Thomas Kemmerich und ich wohne in Stadtoldendorf, einer Kleinstadt 70 km südlich
von Hannover. Ich bin 17 Jahre alt und besuche das Campe Gymnasium in Holzminden. Eigentlich
hasse ich es, solche langen Texte zu schreiben, wie diesen hier, aber diesmal hat es mir
echt Spaß gemacht - lag wahrscheinlich am Thema ;). In meiner Zukunft möchte ich einen
Beruf ausüben, der was mit Computern zu tun hat. Ich weiß bloß noch nicht genau was: Informatiker,
Webdesigner, Programmierer oder oder oder... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Autor: Thomas Kemmerich |