arlogo
[zurück] [Anfang] [Start] [Stichwörter]
[weiter] [Ende] [Home] [Glossar]

Intranet-Server unter Linux

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):

Server mit Samba

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.

WWW-Server Apache

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.

Volltextsuche mit Glimpse

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.

Datenbank mSQL und PHP/FI

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&auml;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.

LAN/WAN-Groupware

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).

X-Server

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.

NFS

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.

ncpfs

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]
[weiter] [Ende] [Home] [Glossar]
© Andreas Rittershofer 5.8.1996
Letzte Änderung: 13.5.1997