Der Linuxrechner als Datei- und Druckserver Der Linuxrechner als Datei- und Druckserver
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 \\azalea\Netz,
; 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_MACHINE\SYSTEM\ControlSet001\Services\Rdr\Parameters]
"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.


Zurück zur Hauptseite