Es gibt eine ganze Reihe von Vorteilen, die für Linux als Server-Betriebssystem in einem Intranet bzw. einem lokalen Netz sprechen, unter anderem der, daß es nahezu umsonst zu bekommen ist, bei gleichzeitig unglaublicher Leistungsfähigkeit und Stabilität. Im folgenden wird kurz auf einige der sich daraus ergebenden Möglichkeiten eingegangen (siehe auch: Sehestedt, Raymond: Low-Budget-Netz: Linux als Server in kleinen Netzen; c't10(1995)298; sehr lesenswert):
Mit dem Softwarepaket Samba kann ein Linux-Rechner File- und Printserver für
ein LAN sein, das heutzutage wohl typischerweise aus Windows95-Rechnern besteht,
aber auch Windows 3.11 kommt als Client-Betriebssystem in Frage. (Windows95
verfügt bereits von Haus aus über einen TCP/IP-Stack,
für Windows 3.11 gibt es kostenlos von Microsoft das Paket tcp32b, das Windows
3.11 mit dem erforderlichen Netzwerkprotokoll ausstattet.) Jeder Benutzer erhält
auf dem Server ein Home-Directory mit Lese- und Schreibrecht, des weiteren kann
in Read-only-Verzeichnissen die benötigte Software installiert
werden.
CD-ROM-Laufwerke im Server können ganz einfach ins Netz gemappt
werden.
Ein Drucker, der am Server angeschlossen ist, ist der Netzwerkdrucker
für das gesamte LAN. Der Linux-Server bleibt dennoch ein vollständig nutzbarer
Unix-Rechner, auch unter X11.
Das eigentliche Programm, der Dämon smbd, befindet sich im Verzeichnis /usr/sbin, weitere Hilfsprogramme, deren Name mit smb beginnt, sind im Verzeichnis /usr/bin. Der Dämon wird mit der Datei /etc/smb.conf konfiguriert, dazu weiter unten mehr. Zusätzlich ist ein Netbios-Nameserver-Dämon nmbd erforderlich.
Der Programmstart erfolgt günstigerweise in der Datei
/etc/inetd.conf mit den beiden Zeilen
netbios-ssn stream tcp
nowait root /usr/sbin/tcpd /usr/sbin/smbd -l
/var/adm/smblogs/log
netbios-ssn dgram udp wait root /usr/sbin/tcpd
/usr/sbin/nmbd -s -l /var/adm/nmblogs/log -I 192.168.1.1
Der Schalter -l gibt jeweils die Logdatei an, der Schalter -I die Adresse des Hosts, wobei diese hier aus einem Nummernbereich stammt, der im Internet nicht geroutet wird (siehe RFC 1597).
Die Konfigurationsdatei /etc/smb.conf kann z.B. das folgende Aussehen haben:
[global] debuglevel = 3 valid users = arix, ritters, root, rt domain master = yes [tmp] comment = tmp on ari path = /tmp writable = yes [cd] comment = cd on linux machine path = /cdrom read only = yes share modes = no [home] comment = home directory arix and ritters path = /home/arix read only = no share modes = no [homes] comment = home dirs writable = yes share modes = no [bin] comment = linux binaries path = /usr/bin read only = yes [printers] path = /var/spool/public writable = no public = yes printable = yes [smb-bin] comment = binaries for smb clients path = /usr/local/smb-bin writable = no share modes = no
Im Abschnitt [global] werden im Wesentlichen die erlaubten User
festgelegt, die übers LAN Zugriff erhalten sollen.
Im Abschnitt
[tmp] wird das /tmp-Verzeichnis des Linux-Hosts auch für die
Clients als temporäres Verzeichnis freigegeben.
Im Abschnitt [cd]
wird das CD-ROM-Laufwerk der Linux-Maschine freigegeben, so daß jeder
Netzbenutzer darauf zugreifen kann.
Im Abschnitt [home] wird das
Home-Directory für einzelne User festgelegt; evtl. sinnvoll z.B. bei root.
Im
Abschnitt [homes] werden alle Home-Verzeichnisse zur Verfügung
gestellt. Diese Sektion muß genau so heißen. Dann hat jeder
User direkt immer sein Home-Directory zur Verfügung.
Im Abschnitt
[bin] wird das Verzeichnis /usr/bin lesbar gemacht, denn dort
befindet sich das Programm lpr, das zum Drucken übers Netz gebraucht
wird; der Netzwerkdrucker ist am Linux-Host angeschlossen.
Im Abschnitt
[printers] wird ein Spool-Verzeichnis für Druckaufträge übers Netz
festgelegt.
Im Abschnitt [smb-bin] wird ein Verzeichnis festgelegt,
unter dem sich Software für Windows-Clients befindet.
Ein erster Test, und zwar auf Korrektheit der smb.conf-Datei, ist
der Aufruf testparm. Hier darf es keine Fehlermeldung geben; zusätzlich
werden alle Parameter angezeigt. Als nächstes kann die Funktionsfähigkeit lokal
getestet werden mit
smbclient -L localhost
-U<username>%<password>.
Dem folgt z.B. ein
smbclient
"\\\\localhost\\tmp".
Bei
nmblookup -B localhost
__SAMBA__
muß die IP-Adresse des Servers erscheinen; hierfür sorgt der
Schalter -I beim Aufruf von nmbd, siehe oben. Sind alle Tests
bis hierher einwandfrei verlaufen, kann man nun die Rechner gegenseitig
an"ping"en, auch ein telnet auf den Host funktioniert nun.
Den Sektionen tmp, cd, dos, home, homes und smb-bin werden unter Windows Laufwerksbuchstaben zugeordnet, damit kann vollständig transparent übers Netz gearbeitet werden, wie z.B. auch von Novell her gewohnt. Wenn der Sektion homes z.B. der Laufwerksbuchstabe u: zugeordnet wird, dann hat jeder User immer unter u: sein Homedirectory. Der Sektion bin muß kein Laufwerksbuchstabe zugeordnet werden; es genügt, daß das Programm lpr übers Netz zur Verfügung steht.
Selbstverständlich kann die Konfiguration noch viel mehr ausgefeilt werden, weitere Informationen hierzu sind z.B. den man-pages zu entnehmen oder im WWW unter http://lake.canberra.edu.au/pub/samba/ oder auch in iX1(1996)52.
Ein HTTP-Server kann ohne große Schwierigkeiten zum Laufen gebracht werden. Dies ermöglicht, daß im Intranet auch dynamisch Daten präsentiert werden können, z.B. aus Datenbanken.
Der WWW-Server Apache ist im Quellcode und vorkompiliert für verschiedene Betriebssysteme unter http://www.apache.org erhältlich.
Der HTTP-Server kann beim Booten automatisch aufgerufen werden z.B. mit der
Zeile
/usr/sbin/httpd -f /var/httpd/conf/httpd.conf > /dev/null
2>&1 &
am Ende der Datei /etc/rc.d/rc.local. Hierbei
wird davon ausgegangen, daß der HTTP-Dämon im Verzeichnis /usr/sbin ist
und alle übrigen Dateien unterhalb von /var/httpd. Mit dem Schalter
-f wird der Pfad und der Dateiname der Konfigurationsdatei angegeben.
Der Start wie oben beschrieben hat gegenüber der Methode über inetd den
großen Vorteil, daß nicht bei jeder Anfrage die Konfigurationsdateien des
Servers neu eingelesen werden müssen.
Sollen Anfragen an den HTTP-Server der Art http://192.168.1.1/~arix (zur IP-Adresse siehe oben den Abschnitt über Samba) beantwortet werden, so ist die Datei /var/httpd/conf/access.conf zu ergänzen, und zwar ganz am Ende mit z.B.:
<Directory /home/arix> Options All AllowOverride All <Limit GET> order allow,deny allow from all </Limit> </Directory>
In der Datei /var/httpd/conf/srm.conf ist noch die
Zeile
UserDir text
zu ergänzen. Dann landet eine Anfrage
http://192.168.1.1/~arix auf der Datei
/home/arix/text/index.html. Üblich ist allerdings nicht der
Unterverzeichnisname text, sondern public_html.
Das Programm Glimpse ermöglicht eine Volltextsuche über Textdateien in einem ganzen Verzeichnisbaum, sogar Tippfehler sind in der Suchanfrage zulässig. Mit GlimpseHTTP ist eine Bedienung der Volltextsuche über WWW-Seiten möglich.
Die WWW-Kopplung von Glimpse erfolgt mit den Dateien im Verzeichnis
/usr/src/glimpsehttp. Zur Installation wird das Skript
ghinstall aufgerufen. Die Software wird dabei ins Verzeichnis
/usr/src/glimpsehttp kopiert, die cgi-Skripten landen im Verzeichnis
/usr/src/glimpsehttp/cgi-bin. Der anzugebende relative CGI-Skript-URL
ist dabei z.B. g-cgi-bin. Hier ist nun noch der HTTP-Server anzupassen,
und zwar muß in der Datei srm.conf die Zeile
ScriptAlias
/g-cgi-bin/ /usr/src/glimpsehttp/cgi-bin/
ergänzt werden.
Wenn alle Texte unter /home/arix/text liegen, dann wird ein
Glimpse-Index mit
glimpseindex /home/arix/text
erstellt.
Anschließend ist ein makegharc (Gegenstück: rmgharc)
erforderlich, um die Archive zu erzeugen. Das Root-Dokumentenverzeichnis ist
dabei wie oben /home/arix/text, mit der URL
http://192.168.1.1/~arix. Zur IP-Adresse siehe weiter oben den
Abschnitt über Samba,
zu ~arix siehe weiter unten den Abschnitt über Apache.
Auf Wunsch wird auch der crond gleich so eingerichtet, daß jede Nacht
alle Texte neu indiziert werden.
In der Standardkonfiguration ermöglicht GlimpseHTTP nur in die Datei der
Fundstelle zu springen, nicht aber gezielt in die entsprechende Zeile. Ist dies
gewünscht, muß jeweils die Datei ghindex.html modifiziert werden. Um
diese Möglichkeit auf Dauer in allen Verzeichnissen zu aktivieren, ist es am
geschicktesten, die Datei /usr/src/glimpsehttp/ghgenhtml zu
modifizieren: Fast ganz am Ende, vor </form> wird die folgende
Zeile eingefügt:
print $OUT "<INPUT TYPE=HIDDEN NAME=\"lines\"
VALUE=1>\n";.
Weitere Informationen finden sich im WWW unter http://glimpse.cs.arizona.edu:1994/ghttp/ oder auch in iX5(1996)166.
Hinweis: In meiner GlimpseHTTP-Version war in der Datei /usr/src/glimpsehttp/cgi-bin/mfs ein Tippfehler: In der zweiten if-Abfrage waren bei GLIMPSEHTTP_HOME das P und das S miteinander vertauscht.
Für Linux existiert ein Shareware-Datenbankprogramm, das eine SQL-Teilmenge versteht: mSQL.
Weitere Informationen finden sich im WWW unter http://Hughes.com.au/.
Besonders komfortabel wird die Datenbanknutzung über WWW-Seiten, dies setzt aber einen WWW-Server voraus, da CGI-Skripte verarbeitet werden müssen. Eine gute Lösung ist z.B. PHP/FI:
Eine Datenbanknutzung kann damit z.B. folgendermaßen aussehen:
<? msql_connect ("localhost"); $result= msql ("test", "select * from test order by Nummer"); $num= msql_numrows ($result); echo "$num Datensätze"> <table border> <? $i= 0; while ($i < $num)> <tr><td><strong><? echo msql_result ($result, $i, "Nummer")></strong></td> <td><? echo msql_result ($result, $i, "Name")></td> </tr> <? $i++; endwhile> </table>
Dies ist eingebettet in eine Datei, die normalen HTML-Code enthält, aber die Dateiendung phtml trägt. An dieser Dateiendung erkennt der WWW-Server, daß er die Datei erst noch durch das Modul PHP/FI bearbeiten lassen muß, bevor er das, was dabei entsteht, an den WWW-Browser ausliefert.
PHP/FI stellt von selbst mit Hilfe einer kleinen mSQL-Datenbank ausführliche Zugriffszähler für jede Seite auf.
Weitere Informationen zu PHP/FI sind unter http://www.vex.net/php zu bekommen oder auch in iX8(1996)56.
Für verteilte Arbeitsgruppen kann eine Workgroup-Software eine gute Arbeitshilfe sein. Damit können z.B. Dateien ausgetauscht und Nachrichten ausgetauscht werden, Daten abgelegt, Zeichnungen gemeinsam erstellt werden, usw.. Eine Lösung für Unix, Windows und Apple ist z.B. TeamWave (http://www.teamwave.com).
Auf dem Linux-Server wird mit einiger Wahrscheinlichkeit die grafische Oberfläche von Unix, X-Window, derzeit X11R6, installiert sein. Diese läßt sich auf dem Server natürlich gleichzeitig zum Serverbetrieb nutzen. Viele hervorragende X-Window-Programme können aber auch auf den Arbeitsstationen unter Windows genutzt werden, sofern auf den Windows-PCs ein X-Server installiert ist. Damit steht an den Arbeitsplätzen Software aus zwei Welten zur Verfügung.
Ein geeigneter X-Server für Windows ist z.B. unter http://www.starnet.com zu finden, Informationen gibt es auch in der c't10(1994)235.
Linux unterstützt von Haus aus das Network File System NFS. Damit ist es möglich, auf einem Rechner auf Dateisysteme anderer Rechner vollständig transparent zuzugreifen, so als lägen sie auf der eigenen Festplatte. Soll ein Rechner Verzeichnisse per NFS exportieren, so muß auf ihm ein NFS-Server laufen. Soll ein Rechner auf Verzeichnisse per NFS zugreifen, so muß auf ihm ein NFS-Client laufen.
Soll von Arbeitsplätzen unter Windows auf Verzeichnisse auf dem Linux-Server zugegriffen werden können, so erledigt diese Aufgabe bereits Samba. Soll jedoch vom Linux-Server auf Verzeichnisse auf Arbeitsplätzen unter Windows zugegriffen werden, so muß auf diesen Windows-Rechnern ein NFS-Server laufen. Hierzu kann z.B. Tropic NFS verwendet werden. Eine WWW-Seite ist im Aufbau.
Damit ist es leicht möglich, die ganze Festplatte, einzelne Verzeichnisse oder das lokale CD-ROM-Laufwerk eines Windows-Rechners auch unter Linux nutzen zu können, wobei ebengenannte Möglichkeiten auch kombiniert werden können.
Mit diesem Programmpaket ist es möglich, Novell-Server einzubinden, konkret Novell-Volumes ins Linux-Filesystem zu mounten. Das Softwarepaket liegt vielen Linux-Distributionen bei, ist aber z.B. auch bei ftp://ftp.gwdg.de/pub/linux/misc/ncpfs zu bekommen. Es wird z.B. in /usr/local/ncpfs ausgepackt und mit make all übersetzt und mit make install installiert. Vor der Nutzung muß noch sichergestellt werden, daß der Kernel IPX-Support enthält und das NCP-Filesystem unterstützt.
Mit den beiden Befehlen
ipx_interface add -p eth0 802.3 ncpmount -S <servername> -U <username> -P <password> /novell
wird der Server an das Verzeichnis /novell gemountet. Mit dem zusätzlichen Parameter -V kann noch bestimmt werden, welches "Volume" wohin gemountet wird.
[zurück] [Anfang] [Start] [Stichwörter]