Der Linuxrechner als Datei- und Druckserver
Im Netzwerk ist es meist unverzichtbar eine gemeinsame Datenablage zu haben. Um aber Daten auf einem Netzlaufwerk ablegen zu können, benötigen Sie einen Fileserver. In diesem Kapitel wird Ihnen gezeigt, wie Sie einen solchen mit Linux realisieren können.
Ich habe im Rahmen meiner EDV-Karriere schon eine Menge Netzwerke unter
den verschiedensten Betriebssystemen gesehen und teilweise mit betreuen
"dürfen". Ich will ja nicht lästern, aber ich behaupte einfach
einmal, daß die meisten Netze lediglich als bessere Druckserver und
vielleicht noch als erweiterte Festplatte dienen. "Richtige" Netzwerkanwendungen
werden in den wenigsten Fällen verwendet. Die benötigten Netzfunktionen
werden von einem Linux-PC allemal bereit gestellt. Und dazu noch zu einem
unschlagbaren Preis- /Leistungsverzeichnis und bei extrem niedrigen Hardwareanforderungen.
Wenn ein Linuxrechner als Datei- und Druckserver dienen soll, hängen
die notwendigen Konfigurationsschritte von den Betriebssystemen ab, die
auf den Clients installiert sind. Auf der einen Seite sind das Windows-
und OS/2-Rechner, für die das Programmpaket SAMBA installiert werden
muß (Wenn von einem Windows NT-Rechner nur gedruckt werden soll und
kein Dateizugriff benoetigt wird, gibt es noch eine weitere Möglichkeit
ohne SAMBA) und auf der anderen Seite alle Unix-Rechner. Ich beschreibe
letzteres kurz am Beispiel eines Linux-Clients.
Datei- und Druckserver für Windows 3.11,
Windows 95, Windows NT und OS/2-Rechner.
Damit ein Linuxrechner als Server für Windows und OS/2-Rechner
fungieren kann, muß auf dem Server das Programmpaket Samba installiert
werden. Die Installation von Samba ist im S.u.S.E.-Handbuch und in den
Hilfedateien eigentlich relativ ausführlich beschrieben. Deshalb hier
nur das Wesentliche in Kürze. Installieren Sie erst einmal das Samba-Paket,
am besten mit dem Installationstool YaST.
Die Kommunikation im Netzwerk erfolgt über sogenannte Protokolle.
Stellen Sie sich das etwa so vor, als einige mensch sich auf eine bestimmte
Sprache, um sich miteinander zu unterhalten. Das Internet basiert auf dem
TCP/IP-Protokoll. Genau genommen gibt es verschiedene Protokollebenen.
Vergleichen Sie das wieder etwa mit Buchstaben auf der untersten, Wörtern
auf der nächsthöheren und Sätzen auf der nächsten Ebene
und so weiter. TCP/IP ist ein Protokoll auf der unteren Ebene. In der Windows-Familie
und unter OS/2 wird meistens NetBEUI verwendet, unter Novell IPX/SPX. Mit
Samba implementieren Sie die sogenannten NETBIOS-Dienste, eine Sammlung
von Protokollen zur Datei und Druckerfreigabe. Diese Dienste können
sowohl auf dem TCP/IP-Protokoll als auch auf dem NetBEUI-Protokoll aufsetzen.
Eigentlich gibt es also keinen Grund mehr, neben dem TCP/IP-Protokoll noch
andere Protokolle in der Netzwerksteuerung der windows-Rechner zu aktivieren.
Es wird gelegentlich sogar berichtet, daß dieses Protokolldurcheinander
der Grund für Pobleme im Netzwerk sein kann.
Dann konfigurieren Sie Samba. Im wesentlichen passiert das, indem Sie
die Datei smb.conf im Verzeichnis /etc bearbeiten. Die Einstellungsmöglichkeiten
sind so vielfältig, daß die Darstellungen hier den Rahmen sprengen
würden. Ich hatte anfangs eine Konfiguration gewählt, die eher
an die Unix-Philosophie angelehnt war, daß heißt, Benutzer
mussten sich mit einem Paßwort anmelden. Da aber niemand von außen
auf mein Netz zugreifen kann, habe ich mittlerweile diese Restriktionen
gelockert. Dies ist allerdings ein Thema, daß unter Netzwerkern zu
heftigen Diskussionen führen kann, denn die "Windows-Philosophie"
beim Umgang mit Passwörtern und Netzwerksicherheit entspricht eigentlich
keinen vernünftigen Sicherheitsrichtlinien. Freunden Sie sich nach
Möglichkeit mit der Unix-Philosophie an.
Ich füge einfach meine an wichtigen Punkten kommentierte Datei
an (Kommentarzeilen beginnen mit einem Semikolon):
[global]
; Unter Windows oder OS/2 sind Sie
Mitglied einer Arbeitsgruppe.
; Diese geben Sie dort bei der Netzinstallation
ein.
workgroup = MEINNETZ
; Gibt an, in welchen Abständen
die Verbindung überprüft werden soll
keep alive = 30
os level = 2
printing = bsd
; Der Name der Datei, aus der die
Druckereinträge gelesen werden sollen
; /etc/printcap ist der Standard
printcap name = /etc/printcap
; Sollen die dort definierten Drucker
automatisch eingelesen werden?
load printers = yes
guest account = nobody
security = share
; security = user
; würde die Anmeldung mit Passwort
erforderlich machen
; share dagegen funktioniert auf
Gruppenebene
; bzw. sorgt dafür, daß
als public gekennzeichnete Ressourcen
; wirklich frei zugänglich
sind
wins support = no
; Jeder Zugriff auf die Samba-Dienste
wird protokolliert
; Hier wird definiert, daß
das für jeden Rechner getrennt passiert.
; %m wird durch den Namen des sich
anmeldenden Hosts ersetzt
log file = /var/log/log.%m
; wichtig: Die Benutzer müssen
Schreibrechte in diesem Verzeichnis haben !!!
Interfaces = 192.168.1.1/255.255.255.0
; mit dieser Anweisung werden von
Samba aus nur Rechner im lokalen
; Netz angesprochen. Diese Vorsichtsmaßnahme
unterbindet unnötige und
; teure Verbindungen zum Provider
;
; Es sollen einfach alle Drucker,
die in printcap definiert sind
; freigegeben werden
[printers]
comment = All Printers
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
; Die obige Freigabe führt
allerdings zu einer Vielzahl von Druckern, die im Netz
; angezeigt werden, Das kann für
normale Benutzer etwas irreführend sein
; Alternativ können auch gezielt
einzelne Drucker freigegeben werden.
; z.B. so:
[Laser]
comment = Laser im Netz
browseable = yes
printable = yes
printer = lp4
; das muß ein gültiger
Eintrag aus der Datei /etc/printcap sein
public = yes
writable = yes
create mode = 0750
path = /home/%m
; Auch hier an die Schreibrechte
denken
[Netz]
; Für jeden Rechner soll ein
Verzeichnis freigegeben werden.
; Das Verzeichnis erscheint im Netz
als azaleaNetz,
; auf dem Linuxrechner handelt es
sich je nach Client um
; /home/calluna, home/tilia etc.
comment = Netzverzeichnis
path = /home/%m
; welche Rechner dürfen zugreifen?
; wichtig: diese Benutzernamen entsprechen den Rechnernamen
; unter Windows und nicht
den Benutzernamen, mit denen unter
; Windows die Anmeldung
erfolgt ist !!!
valid users = calluna begonia acer
tilia
browseable = yes
public = no
writable = yes
printable = no
read only = no
create mode = 750
Mit der Druckereinrichtung habe ich es mir sehr einfach gemacht. Ich
habe das mit YaST erledigt und dabei gleich den APS-Filter installiert
(Ein sehr mächtiger Druckerfilter unter Linux, der dort z.B. automatisch
zwischen Postscript- und anderen Druckerformaten umschaltet). Es würde
auch eine einfache Druckerdefinition reichen, aber in meinem Netz soll
auch ein Linuxrechner auf den Drucker zugreifen können und dabei auf
dem Server die APS-Fähigkeiten nutzen können.
Das führt allerdings dazu, daß für Windowsrechner eine
Reihe von Netzwerkdruckern zu sehen sind, wem das zu viel ist, der sollte
nur gezielt einzelne Rechner freigeben (siehe Details in der smb.conf oben).
Bei meiner Konfiguration müssen auf dem Linuxsystem Benutzereinträge
für diejenigen bestehen, die auf Samba zugreifen wollen. Soweit ich
das herausgefunden habe, wird von Windows 3.11-Maschinen und Windows 95
Rechnern der Benutzername verwendet (das ist der Name, unter dem Sie dort
angemeldet sind). Wenn Sie diesbezüglich unsicher sind, geben Sie
in einem Dos-Fenster unter Windows 3.11 und Windows 95 den Befehl "net
config", unter Windows NT "net config arbeitsstationsdienst"
und unter OS/2 "net config requester" ein.
Dort wird dann der Benutzername angezeigt.
Damit die Samba-Dienste automatisch beim Systemstart des Linuxrechners
gestartet werden, müssen Sie in der Datei /etc/rc.config
nach dem Eintrag START_SMB suchen und ihn auf
START_SMB="yes"
setzen. Beim nächsten Systemstart müßte dann Samba gestartet
werden.
Achtung, Hinweis zum Update der Distribution:
Etwas ärgerlich finde ich, daß beim Update der S.u.S.E.-Distribution
(bei mir von Version 5.0 auf 6.0) die Datei smb.config und damit die ganzen
eigenen Einstellungen in smb.conf.rpmorig umbenannt wird und eine Standarddatei
als smb.conf installiert wird. Durch simples Umbenennen und Systemneustart
ist das aber wieder behoben.
Druckserver für NT-Rechner ohne Dateizugriff
Windows NT ist von Hause aus etwas Linux-freundlicher. Wenn kein Dateizugriff
benötigt wird, also nur über die Linuxmaschine gedruckt werden
soll, kann direkt über die Linux-Druckdienste gedruckt werden. In
diesem Fall muß also SAMBA nicht installiert werden. Auf dem NT-Rechner
muß auf jeden Fall das TCP/IP-Protokoll installiert sein. Dann muß
über Arbeitsplatz->Systemsteuerung->Netzwerk unter "Dienste" "Microsoft
TCP/IP-Druckdienst" eingetragen werden. Dann ist ein Rechnerneustart fällig.
Wird jetzt unter NT ein neuer Rechner installiert (Vorsicht: auf die Abfrage
Arbeitsplatz oder Druck-Server im Netzwerk muß hier verrückterweise
Arbeitsplatz markiert werden!) muß dann im nächsten Schritt
ein neuer Anschluß hinzugefügt werden. Aus der Liste muß
LPR-Port und dann Neuer Anschluß ausgewählt werden. Im dann
erscheinenden Fenster wird unter "Name oder Adresse des Hosts, der LPD
bereitstellt: die IP-Adresse des Linuxrechners eingetragen werden (192.168.1.1)
und unter "Name des Druckers auf dem Computer" ein gültiger Name aus
der Datei /etc/printcap. Z.B. "stcolor-raw" oder was auch immer bei Ihnen
in der ersten Zeile des jeweiligen Druckers dort eingetragen ist. Diese
Lösung hat den großen Vorteil, daß auf dem Server weniger
Ressourcen verbraucht werden, wenn Samba nicht laufen muß.
Datei- und Druckserver für Linux-Rechner
Druckserver
Einen Linuxrechner als Druckserver für andere Linuxrechner zur
Verfügung zu stellen, ist sehr einfach. Sie müssen als erstes
auf dem Server die Drucker installieren. Am einfachsten mit Hilfe von YaST.
Dann müssen sie dem System mitteilen, daß der Zugriff durch
andere Rechner gestattet ist. Es kann sein, daß die folgenden Einstellungen
teilweise doppelt gemoppelt sind, aber in der beschriebenen Konfiguration
funktioniert es bei mir. Fügen Sie in die Datei /etc/hosts.allow
eine Zeile
ALL: .meinnetz.com
ein. Damit bekommen alle Rechner des lokalen Netzes das Recht zum Zugriff.
In der Datei /etc/hosts.equiv befindet sich
eine Zeile
192.168.1.6
ein. Damit erhält der andere Linuxrechner die Erlaubnis, auf dem
Server Kommandos via einer remote shell auszuführen. Und zuletzt enthält
die Datei /etc/hosts.lpd eine Zeile
quercus.meinnetz.com
mit der explizit der Zugriff auf den Druckerspooler gestattet wird.
Wichtig: hier muß unbedingt der voll qualifizierte Hostname stehen,
die ip-Nummer reicht nicht (Warum weiß der Geier).
Dateiserver
Als Dateiserver kann der Linuxserver für andere Unixrechner und
damit auch für einen anderen Linuxrechner dienen, indem NFS (Network
File-System) installiert wird. Sie müssen dafür zum einen das
NFS-Serverpaket (z.B. mit Hilfe von YaST) installieren und dann in der
Datei /etc/rc.config die Einträge
START_PORTMAP=yes und
NFS_SERVER="yes"
entsprechend einstellen. Dann müssen Sie in der Datei /etc/exports
festlegen, welche Verzeichnisse für wen wie zur Verfügung stehen
sollen. In der Regel werden die Optionen ro für read-only und rw für
read and write dabei die wichtigsten sein. Um dem Linuxrechner (quercus,
192.168.1.6) den Schreib- und Lesezugriff auf das Verzeichenis /home/quercus
auf dem Server zu gestatten, muß die Datei so aussehen:
/home/quercus quercus(rw)
Das war's.
Windows 95 Client
Um von Windows 3.11 und Windows 95 auf die Samba-Ressourcen zugreifen
zu können, müssen Sie jeweils die Netzwerkfunktionen installiert
haben. Standardgemäß installiert das Windows-Setup das NETBEUI-Protokoll.
Zusätzlich oder besser alternativ müssen Sie das TCP/IP-Protokoll
installieren. Zusätzlich müssen Sie den Client für Microsoft-Netzwerke
installiert haben. Achten Sie darauf, bei der Frage nach der Arbeitsgruppe
exakt den Namen zu verwenden, den Sie auch unter Samba in der Zeile "workgroup
= MEINNETZ" eingegeben haben.
Die Verbindungen zum Linuxserver stellen Sie am einfachsten her, indem
Sie den Ordner "Netzwerk" oder im Explorer den Punkt "Netzwerk" anklicken.
Dort müßte dann der Linuxrechner unter seinem Namen auftauchen.
Beim Anklicken werden Sie in meiner Konfiguration nach dem Benutzerpaßwort
(das Paßwort auf der Linuxmaschine !) gefragt. Daraufhin müßte
das Verzeichnis "Netz" und die Linuxdrucker erscheinen. Den Drucker installieren
Sie am einfachsten, indem Sie auf einen der Einträge (ich nehme den
"raw"-Drucker) klicken und dann den Anweisungen zum Installieren des Windows-Druckertreibers
folgen. Sie müssen natürlich den Druckertreiber nehmen, der auf
Ihren Drucker paßt. Das Netzwerklaufwerk verwenden Sie entweder,
indem Sie den Order wie jeden anderen Laufwerksordner verwenden oder indem
Sie Den Ordner "Netz" auswählen und mit der rechten Maustaste den
Menüpunkt "Netzlaufwerk verbinden ..." auswählen. Sie können
dann einen Laufwerksbuchstaben vergeben und angeben, ob diese Verknüpfung
automatisch beim Systemstart wiederhergestellt werden soll. Dies sollten
Sie aber nur tun, wenn Ihr Server permanent zur Verfügung steht.
Windows NT-Client
Die Konfiguration eines NT-Clients (Windows NT, Version 4.0) funktioniert
fast genauso wie bei Windows 95. Überprüfen Sie unter Netzwerk,
ob das TCP/IP-Protokoll installiert ist. Wenn ja, versuchen Sie die für
Windows 95 beschriebenen Schritte nachzuvollziehen. Beachten Sie aber bitte
folgende Besonderheiten: Wenn Sie unter Windows NT, Version 4.0 das Servicepak
3 installiert haben und Ihre Sambaversion kleiner ist als 1.9.17, kann
es Probleme geben. Windows NT versucht dann das Paßwort verschlüsselt
zu übermitteln, das kann aber Samba erst ab der genannten Version.
Sie müssen dann einen Eintrag in der Windows NT Registry vornehmen.
Speichern Sie den folgenden Text als Datei Password.reg und doppelklicken
im Explorer darauf. Daraufhin müßte der entsprechende Eintrag
in die Registry eingetragen sein.
REGEDIT4
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRdrParameters]
"EnablePlainTextPassword"=dword:00000001
Mit den aktuellen Sambaversionen haben Sie hiermit keine Probleme. Lassen
Sie es unter Sicherheitsaspekten besser bei den verschlüsselten Paßwörtern.
OS/2-Client
Die folgenden Hinweise beziehen sich auf OS/2 Warp in der Version 4.0.
Unter OS/2 müssen Sie logischerweise die Netzwerkunterstützung
installieren. Für die Nutzung von Samba müssen Sie die Peer-Dienste
installieren. Eine ärgerliche Fehlerquelle besteht darin, daß
Sie als Protokoll unter OS/2 "NetBEUI over TCP/IP" installieren müssen,
wenn Sie TCP/IP und NetBEUI gleichzeitig nutzen möchten (Und das dürfte
der Normalfall sein). Wenn Sie TCP/IP und das normale NetBEUI nebeneinander
installieren, gibt es Probleme. Die Sambaressourcen nutzen Sie, indem Sie
im Ordner "Verbindungen" den Punkt "Netzwerkdienste" und dann "Gemeinsame
Ressourcen und Netzwerkverbindungen" auswählen. Wählen Sie dort
Verbindungen und wählen den Button "Verbindung herstellen". Wählen
Sie dann als Ressourcentyp (*) Verzeichnis, als Server aus der Liste den
Linuxrechner und als Ressource das Verzeichnis Netz. Sie können hier
auch angeben, daß die Ressource automatisch beim Anmelden verbunden
werden soll. Für die Druckerinstallation wählen Sie als Ressourcentyp
(*) Drucker, als Server wieder den Linuxrechner und den passenden Drucker
(raw). Weisen Sie als lokalen Druckeranschluß eine nicht benutzte
Schnittstelle zu. Auch hier können Sie angeben, daß die Ressource
automatisch beim Anmelden verbunden werden soll
Linux-Client
Drucken
Um auf einem Linuxrechner den Netzwerkdrucker nutzen zu können,
reicht ein simpler Eintrag in der Datei /etc/printcap. An Stelle eines
lokalen Druckers steht hier nur der Verweis auf die Druckerwarteschlange
des Servers. Da auf dem Server der aps-Filter installiert ist, können
somit Postscriptdateien und alle anderen Druckformate an diesen Drucker
geschickt werden. Meine printcap auf dem Client sieht so aus:
lp:
:rm=192.168.1.1:rp=lp:
:sd=/var/spool/lpd/ljet3-a4-auto-mono-300:
:la:mx#0:sh
Dateien
Um ein per NFS freigegebenes Verzeichnis nutzen zu können, müssen
Sie es einfach in Ihr Dateisystem mounten. Sie müssen dem Mount-Befehl
mitteilen, daß es sich um ein NFS-Verzeichnis handelt, wo es auf
dem Server liegt und wo es lokal gemountet werden soll.
Z.B.: mount -t nfs azalea.meinnetz.com:/home/quercus
/mnt/quercus.
Wenn das Verzeichnis regelmäßig beim Systemstart gemountet
werden soll, sollten Sie eine entsprechende Zeile in der Datei /etc/fstab
einfügen. Dort könnte dann z.B. stehen:
# zu mountendes Dateisystem
wohin mounten Typ
Zugriffsrechte
/dev/hda1
/
ext2 defaults 1 1
/dev/hda2
swap
swap defaults 0 0
azalea.meinnetz.com:/home/quercus
/mnt/quercus nfs
defaults 1 1
none
/proc
proc defaults 0 0
Ab jetzt können Sie auf dieses Verzeichnis zugreifen, als wäre
es ein lokales Verzeichnis. Die Möglichkeiten von NFS gehen weit über
das hinaus, was ich hier darstellen kann. Sie finden genügend Hinweise
in den man-Seiten und diversen Büchern.
|