SuSE Linux(nur Server)

Inhalt:

Config Apache
Config Samba
Config Squid


Apache Web Server: Windows/Linux zum Inhalt zurück

Apache ist in der Unix-Welt der meistgebrauchte Webserver. Apache ist sehr viel kleiner als der Microsoft IIS oder die Netscape Server Fasttrack und Enterprise. Trotzdem ist Apache leicht erweiterbar durch CGI-Skripte mit Perl und dynamische Webseiten mit PHP. Letzteres ermöglicht den Datenbankzugriff mit SQL oder ODBC. Apache verfügt sogar über ein Proxy-Modul, das leider keinen eigenen Dialler mitbringt. Apache wird konfiguriert mit Eintragungen in der Datei conf\httpd.conf, ein Web-Interface ist nicht nötig.

Apache ist Freeware und wird betreut von der Open-Source-Gruppe Apache.org. Die von uns benutzte Version ist 1.3.12 und kommt als selbstentpackende Exe-Datei, (bei Linux falls nötig mit YAST Installieren --> Paketauskunft)die nach dem Start das Programm einrichtet und die notwendigen Eintragungen im Startmenu des Rechners macht. Danach kann man Apache von Hand starten oder als Service installieren. Ggf. sind noch einige Änderungen in httpd.conf vorzunehmen und Apache neu zu starten, dann kann mit einem Browser auf dem Server und dem Url "http://localhost" ein erster Test stattfinden. Die Einstellungen, die am MPG verwendet werden, kann man dem folgenden Text entnehmen:

So könnte z. B. eine "httpd.conf" Aussehen
Nach der Installation von Apache sind in der Datei apache/conf/httpd.conf

eine Anzahl Eintragungen vorzunehmen. Der folgende Text dokumentiert die 

am MPG verwendeten Einstellungen. Mit "#" gekennzeichnete Zeilen sind aus

der Original-httpd.conf übernommene Kommentare, mit "->" gekennzeichnete Zeilen

enthalten Parameter, die an den entsprechenden Stellen in httpd.conf gesetzt 

werden können oder müssen. Wichtig: Analog zur Unix-welt sind in allen Pfaden

die "\" durch "/" zu ersetzen!



### Section 1: Global Environment



In welchem Verzeichnispfad ist Apache installiert?

->ServerRoot "d:/apache"



Hier sind die Pfade zu srm.conf und access.conf anzugeben. 

Da empfohlen wird, diese Dateien leer zu lassen und stattdessen die 

Informationen in httpd.conf zu schreiben, kann man diese Dateien gleich

als zu ignorierende kennzeichnen:

->ResourceConfig nul

->AccessConfig nul



Zeit in Sekunden, bis der Server Timeout an den Browser schickt.

Wichtig, falls man länger laufende CGI-Skripte benutzen will.

->Timeout 300



Es folgt eine Liste der zu ladenden Module. 

Was geladen werden soll, muss auskommentiert werden. Wichtig ist, die 

vorgegebene Reihenfolge einzuhalten.

Hier wird nur das Modul geladen, das Apache als Proxy-Server arbeiten lässt.

Beim Browser ist dann als Port des Proxy-Servers 8080 einzutragen und um den 

Proxy-Betrieb zu aktivieren, 
sind weitere Werte zu setzen - siehe das Ende dieses Textes. #LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll #LoadModule cern_meta_module modules/ApacheModuleCERNMeta.dll #LoadModule digest_module modules/ApacheModuleDigest.dll #LoadModule expires_module modules/ApacheModuleExpires.dll #LoadModule headers_module modules/ApacheModuleHeaders.dll ->LoadModule proxy_module modules/ApacheModuleProxy.dll #LoadModule rewrite_module modules/ApacheModuleRewrite.dll #LoadModule speling_module modules/ApacheModuleSpeling.dll #LoadModule status_module modules/ApacheModuleStatus.dll #LoadModule usertrack_module modules/ApacheModuleUserTrack.dll ### Section 2: 'Main' server configuration Hier steht der Port, auf dem der Server Anfragen entgegennimmt: ->Port 80 Und hier die Mailadresse des Systemverwalters: ->ServerAdmin rieg@planck.karlsruhe.de Das Verzeichnis, in dem die Dokumente liegen, die Apache servieren soll: ->DocumentRoot "d:/Data/Web" Mit <Directory ... > kann man Eigenschaften eines Verzeichnisses festlegen. Das Schlüsselwort leitet einen Abschnitt ein, der Instruktionen zu diesen Eigenschaften enthält. Der Abschnitt wird mit </Directory> beendet. Hier werden die Defaultwerte gesetzt: -><Directory /> -> Options FollowSymLinks -> Options Includes -> AllowOverride AuthConfig -></Directory> Zur Bedeutung der Angaben: Includes: In diesem Verzeichnis und den darunterliegenden sind "server side includes" erlaubt. AllowOverride: Unterverzeichnisse und Dateien
können durch eine Datei mit Namen ".htaccess" passwortgeschützt werden. Im Gegensatz zu den Defaultwerten werden hier folgende Angaben über das Wurzelverzeichnis gemacht, die sich auf Unterverzeichnisse vererben.
Order legt fest, in welcher Reihenfolge Zugriffsregeln abgearbeitet werden.
Hier wird zunächst der Zugriff auf alle Dateien zugelassen,
kann aber später z.B. verzeichnisweise durch eine Datei .htacces eingeschränkt werden: -><Directory "d:/Data/MyWeb"> -> Options Indexes FollowSymLinks -> Options +Includes -> AllowOverride AuthConfig -> Order allow,deny -> Allow from all -></Directory> Für bestimmte Unterverzeichnisse können neue Werte gesetzt werden. Z.B. soll das Verzeichnis isdn nur bestimmten Client-Rechnern zugänglich sein. Deshalb wird zunächst der Zugriff generell unterbunden und dann für bestimmte IP-Adressen freigegeben: -><Directory "d:/Data/Web/isdn"> -> Options Indexes FollowSymLinks -> Options +Includes -> AllowOverride AuthConfig -> Order deny,allow -> Allow from 192.168.100.4 192.168.100.5 -></Directory> Sollen Benutzer eigene Homepages anlegen dürfen, dann müssen diese in der Windows- Version von Apache in einem gemeinsamen Unterverzeichnis liegen. Beispiel_ Man legt ein Verzeichnis Users an, in diesem für den Benutzer Krug einen Ordner "Krug", in dem er seine Homepage hat. Dann hat der Benutzer Krug den URL "http://www.planck.karlsruhe.de/~Krug" ->UserDir "d:/MyWeb/Users/" Hier wird angegeben, welche Datei der Server ausliefert, wenn in einem URL nur ein Verzeichnis-, aber kein Dateiname angegeben ist. Die Angaben sind wichtig, um Startdateien mit Server Includes (*.shtml) zu ermöglichen.
Ausserdem haben manche CDs Startdateien wie "start.html"
(Einbinden von CDs siehe unten). Findet sich in einem Verzeichnis keine Datei mit einem der folgenden Namen,
dann wird ein Inhaltsverzeichnis serviert: ->DirectoryIndex index.shtml index.html index.htm start.html start.htm Setzt man die folgende Direktive auf "On", dann wird in der Logdatei access.log ausser der IP-Nummer auch der Rechnername des Clients protokolliert. Dies ist sinnvoll zur Kontrollzwecken, führt aber zu ansonsten unnötigen DNS-Anfragen durch den Server. ->HostnameLookups On Alias wird benutzt, um durch Kürzel auf Verzeichnisse zugreifen zu können. Z.B. führt die folgende Definition dazu, dass mit dem URL http://www.planck.karlsruhe.de/CD auf das CDRom des Servers zugegriffen werden kann. ->Alias /icons/ "d:/server/apache/icons/" ->Alias /CD "g:" Mit "ScriptAlias" wird definiert, in welchem Verzeichnis serverseitig auszuführende Skripte abgelegt sind. Das folgende Alias führt dazu, dass ein URL wie "http://www.plannck.karlsruhe.de/cgi-bin/meinskript.cgi"
im Verzeichnis "d:/apache/cgi-bin/" nach der Datei "meinskript.cgi" sucht und sie ausführt. ->ScriptAlias /cgi-bin/ "d:/server/apache/cgi-bin/" Das folgende Alias sorgt dafür, dass Html-Files, die PHP-Skripte enthalten, vor dem Ausliefern durch Apache durch das PHP-Modul in "d:/apache/php3/" bearbeitet werden. ->ScriptAlias /php3/ "d:/apache/php3/" Hier wird noch das cgi-Verzeichnis durch Passwort gesichert: -> -> AllowOverride AuthConfig -> Options None -> Mit AddType kann man Angaben machen, die über die Datei mime.types hinausgehen. Um PHP-Skripte zu verarbeiten, ist z.B. sinnvoll: ->AddType application/x-httpd-php3 .phtml ->AddType application/x-httpd-php3 .php3 ->AddType application/x-httpd-php3-source .phps AddHandler sagt Apache, wie Dateien mit bestimmten Endungen zu handhaben sind. Das folgende ist nur von Belang für cgi-Skripte, die ausserhalb von cgi-bin liegen: ->AddHandler cgi-script .cgi Um Server Side Includes zu benutzen, ist dieses wichtig: ->AddType text/html .shtml ->AddHandler server-parsed .shtml Hier wird definiert, welches Programm aufzurufen ist, um einen bestimmten Dateityp zu bearbeiten. Um PHP-Skripte (.phtml oder .php3) auszuführen, braucht man ->Action application/x-httpd-php3 "/php3/php.exe" Die folgenden Einträge sorgen dafür, dass beim Auftreten bestimmter Fehler eine selbstgeschriebene Seite aufgerufen wird. Erläuterungen: 401: Die Seite ist passwortgeschützt. 403: Die Seite ist nicht zum Servieren freigegeben. 404: Dokument nicht gefunden, 407: Proxyzugang nur mit Passwort. 408: Timeout, z.B. weil ein Skript zu lange braucht. 500: Interner Fehler des Servers, fehlerhaftes cgi-Skript etc. ->ErrorDocument 401 /fehler/401.html ->ErrorDocument 403 /fehler/403.html ->ErrorDocument 404 /fehler/404.html ->ErrorDocument 500 /fehler/500.html Die folgende Direktive dient dazu, den Proxy-Betrieb einzuschalten: ->ProxyRequests On Die folgenden Angaben sind wichtig, um den Proxy zu benutzen. Wurzelverzeichnis des Cache: ->CacheRoot "d:/server/apache/proxy" Größe des Cache in KByte: ->CacheSize 500 Zu beachten ist, dass der Cache sehr wohl größer werden kann, weil er nicht ständig geräumt wird, sondern in festlegbaren Zeitabschnitten. Dies wird durch die folgende Angabe (in Stunden) geregelt: ->CacheGcInterval 4 Dokumente im Cache werden in jedem Fall höchstens so viele Stunden gehalten, wie die folgende Zahl angibt: ->CacheMaxExpire 24 ->CacheLastModifiedFactor 0.1 ->CacheDefaultExpire 1 Von den folgenden Domains sollen keine Dateien gecached werden: ->NoCache sysnet.at.gs

Jetzt kann man den Zugriff auf ein Verzeichnis regeln, indem man in diesem Verzeichnis eine Datei .htaccess anlegt. Z.B. soll das Verzeichnis nur für bestimmte Benutzer erreichbar sein, die sich mit Benutzername und Kennwort ausweisen müssen.Die .htacces in diesem Verzeichnis sieht so aus:
AuthName "lycos" 

AuthType Basic 

AuthUserFile d:/server/apache/bin/sicher        

require valid-user 

require user netware

Zunächst wird ein Bereichsname für die Benutzerauthentifizierung festgelegt. Verlangt der Benutzer innerhalb einer Browsersitzung mehrere Dateien mit dem selben AuthName, dann wird er vom Browser nur beim ersten Mal nach Username und Kennwort gefragt. Als AuthType wird derzeit von Apache nur "Basic" unterstützt. AuthUserFile legt eine Datei fest, in der die zulässigen Benutzer oder Gruppen definiert werden. Require legt schließlich fest, welche Benutzer oder Gruppen authorisiert sind.

Die Datei AuthUserFile wird an der Kommandozeile mit dem Programm htpasswd.exe im Verzeichnis apache/bin erzeuugt:

htpasswd -c sicher netware

Dabei wird ein erster Benutzer eingetragen, dessen Passwort anschließend interaktiv erfragt wird.
Wenn die Datei schon existiert, kann ein neuer Benutzer eingetragen bzw. sein Passwort geändert werden:

htpasswd -b sicher netware passwort




Samba File Server zum Inhalt zurück

Was ist Samba?

Bei Samba handelt es sich um ein Paket von Programmen für Unix und ähnliche Betriebssysteme, insbesondere Linux, das die Funktionalität eines Microsoft LanManager kompatiblen Servers zur Verfügung stellt. Es werden einem Client Dienste (sog. "shares"), d.h. die Nutzung von Druckern und Festplatten auf dem Server, zur Verfügung gestellt. Es sind aber auch Programme vorhanden, mit deren Hilfe von Linux aus auf geteilte Drucker und Festplatten von Rechnern zugegriffen werden kann, auf denen ein LanManager kompatibler Server, wie z.B. Windows 3.11, NT, 95 oder OS/2 installiert ist. Die Software wurde im wesentlichen von Andrew Tridgell entwickelt, der das Paket kostenlos unter den Bedingungen der Gnu Public License zur Verfügung stellt.

Samba benutzt auf der Basis von TCP/IP das SMB-Protokoll (Session Message Block), das ich im nächsten Abschnitt kurz einführen werde.

Das SMB-Protokoll

Das SMB-Protokoll ist im Gegensatz zu anderen Microsoft-Produkten gut dokumentiert, da es zum einen in Zusammenarbeit mit anderen Firmen wie z.B. Intel entstanden ist und zum anderen auf dem Netzwerk-Protokoll NetBIOS basiert. Das Protokoll ist in etliche Stufen gegliedert. Dies begründet sich dadurch, daß es von Microsoft immer wieder an neue Versionen der Betriebssysteme (DOS und Windows) angepaßt wurde. Es entstanden dadurch verschiedene Dialekte des Protokolls, von denen folgende von Samba unterstützt werden: CORE, COREPLUS, LANMAN1, LANMAN2 und NT1. Dabei ist NT1 die Standardeinstellung von Samba.

Im SMB-Protokoll gibt es ca. 65 Hauptfunktionen, z.B. SMBread und SMBwrite. Manche dieser Funktionen sind wiederum in etliche Unterfunktionen untergliedert (SMBtrans hat mindestens 120 Unterfunktionen, z.B. DosPrintQAdd oder NetSessionEnum). Jede Funktion hat selbstverständlich mehrere Optionen und sogenannte "Information Levels", die die Art der Datenstruktur, die zurückgeliefert wird, bestimmen.

Samba unterstützt zur Zeit 63 der 65 Hauptfunktionen, jedoch nur 8 der Unterfunktionen von SMBtrans, wobei fairerweise dazu gesagt werden muß, daß sogar Windows NT nicht alle Unterfunktionen unterstützt. Das aktuellste Protokoll, das von Samba unterstützt wird, wird auch von Windows 95 und NT 3.5 verwendet und hat die genaue Bezeichnung "NT LM 0.12".

Aufgrund der Komplexität des Protokolls wird auch die Implementierung eines SMB-Servers für Unix groß und komplex. Das heißt nun aber auch, daß es sehr schwer ist, eine fehlerfreie Implementierung zu erreichen bzw. jeden beliebigen Client ohne Einschränkungen zu unterstützen.

Installation von Samba auf einem Linux-Rechner

Entpacken und Compilieren

Das Programmpaket kann mittels ftp von den in Abschnitt 5 genannten Servern bezogen werden. Dieses Archiv sollte im Pfad "/usr/local/src" mit dem Befehl

"tar xvzf samba.Version.tar.gz"

entpackt werden. Anschließend muß im Verzeichnis

"/usr/local/src/samba.Version/source"

die Datei "Makefile" mit einem Editor (z.B. vi) bearbeitet werden. In ihr sind Konfigurationen für viele Unix-Dialekte enthalten, unter anderem auch für Linux. Für Linux existieren zwei Versionen: Mit und ohne Shadow-Passwort-Unterstützung. Je nachdem, wie die Passwort-Abfrage auf dem Linux-Rechner konfiguriert ist, müssen dann die Kommentare in "Makefile" entfernt und die Datei gespeichert werden. Für die Version, die auf dem ftp-Server sunsite.unc.edu bzw. einem der Mirrors vorhanden ist, ist dies bereits geschehen (Konfiguration ohne Shadow-Passwort-Unterstützung).

Nach der Eingabe von "make" werden die Binärdateien compiliert. Nachdem diese erfolgreich erzeugt wurden, werden nach der Eingabe von "make install" die Binärdateien sowie die Manual Pages in den Verzeichnissen "/usr/local/samba" bzw. "/usr/local/man" installiert. Die ausführbaren Dateien befinden sich nun im Verzeichnis "/usr/local/samba/bin", die Konfigurationsdateien in "/usr/local/samba/lib" und die Dateien, die zur Laufzeit erzeugt werden (z.B. Logdateien) in "/usr/local/samba/var".

Falls Samba bereits installiert war, werden die alten Binärdateien mit einer ".old"-Erweiterung umbenannt. Wenn die neu installierte Version nicht funktionieren sollte, kann man leicht mittels "make revert" wieder zur alten Version zurückkehren.

Im Verzeichnis "/usr/local/samba/bin" sollten sich nun folgende Programme befinden:

Progammname Funktion
smbd Der Samba-Server. Hier werden Anfragen auf Dienste anhand der Informationen in der Konfigurationsdatei bedient.
nmbd Der NetBIOS Nameserver. Dieses Programm übersetzt Anfragen von Rechnernamen in die zugehörige IP-Adresse.
smbclient Dies ist ein Client-Programm für Unix-basierte Rechner. Man kann mit dessen Hilfe auf Dienste von Samba-Rechnern, aber auch auf geteilte Dienste von Windows-Rechnern zugreifen.
testprns Ein kleines Programm zur Überprüfung der Druckerkonfiguration.
testparm Überprüft die Konfigurationsdatei auf eventuelle Fehler.
smbprint Ein Shell-Script, das Drucken auf Windows-Rechnern ermöglicht, die ihre(n) Drucker zur Nutzung im Netzwerk freigegeben haben.
smbstatus Ein Programm, das Statusinformationen anzeigt, falls diese aufgezeichnet wurden
Samba-Binaries und deren Bedeutung.

Konfiguration von Samba

Die Konfiguration wird in der Datei "/usr/local/samba/lib/smb.conf" gespeichert. Zu diesem Thema ist auch eine ca. fünfzigseitige ManPage vorhanden, die alle Optionen ausführlich beschreibt. Im Folgenden werde ich nur auf die wichtigsten Optionen eingehen, die zur Einrichtung wirklich notwendig sind, und die meisten Fälle der Praxis abdecken. Die ManPages kann man mittels dem Befehl "man smb.conf" abrufen und sich damit alle verfügbaren Einstellungsmöglichkeiten anzeigen und erläutern lassen.

Die Datei "smb.conf" ist ähnlich aufgebaut wie ".ini"-Dateien von Windows. Sie besteht aus Abschnittsüberschriften in eckigen Klammern und nachfolgend Einstellungen für diesen Abschnitt. Die einfachste nützliche Konfiguration hierbei sieht wie folgt aus:

[homes]

        comment = Home-Verzeichnisse

        guest ok = false

        writable = yes

Mit dieser Konfiguration können Benutzer, die bereits ein Account auf dem Samba-Rechner haben, bequem auf die Dateien in ihrem Home-Verzeichnis zugreifen.

Die Werte "0", "false" und "no" bzw. "1", "true" und "yes" für boolesche Optionen können synonym verwendet werden. Spaces bzw. Tabulatorschritte zwischen den einzelnen Schlüsselwörtern sowie Groß- bzw. Kleinschreibung werden ignoriert. Die Namen der Abschnitte können bis auf drei frei gewählt werden, da den Sektionen [global], [homes] und [printers] besondere Bedeutungen zukommen, die ich im Folgenden noch erklären werde. Namen von Benutzern, die auf den Server zugreifen wollen, müssen in der Datei /etc/passwd vorhanden sein, auch wenn sie kein Account auf dem Server besitzen, da Samba die Benutzerautorisierung anhand dieser Datei vornimmt.

Ob die Einstellungen in der Konfigurationsdatei korrekt sind, läßt sich mit Hilfe des Programms "testparm" ermitteln. Dieses Programm arbeitet die Konfigurationsdatei ab und gibt bei erfolgreichem Abschluß die konfigurierten Dienste aus. Bei fehlerhaften Einträgen werden diese angezeigt und man kann sie entsprechend korrigieren.

Globale Einstellungen

Einstellungen im Abschnitt [global] beziehen sich auf die allgemeine Verhaltensweise von Samba. Hier nun ein Beispiel für diesen Abschnitt:

[global]

        comment = Globale Einstellungen

        protocol = NT1

        printing = SYSV

        status = Yes

        password level = 2 

Diese Einstellungen legen die SMB-Protokoll-Version (NT1) und die Art wie Drucker angesprochen werden (SYSV) fest. Durch die Einstellung "status = Yes" wird bestimmt, daß Informationen über den Zustand des Servers in einer Statusdatei (im Verzeichnis "/usr/local/samba/var") abgelegt werden, die mit dem Programm "smbstatus" angezeigt werden können.

Eine wichtige Option ist "password level". Da LAN-Manager-Clients die Passwörter grundsätzlich in Großbuchstaben umwandeln (außer bei der Verwendung des Protokolls COREPLUS), muß Samba alle möglichen Kombinationen von Groß- und Kleinbuchstaben für die Passwörter testen. Diese Option bestimmt nun die maximale Anzahl der Zeichen, die im Passwort groß geschrieben sein dürfen. Dies schränkt die Anzahl der zu versuchenden Buchstaben-Kombinationen ein und beschleunigt den Prozeß der Anmeldung auf dem Samba-Server.

Einrichten von geteilten Verzeichnissen

Ich will das Einrichten von geteilten Verzeichnissen am Beispiel einer Daten demonstrieren, die von den Benutzern Max, Moritz und Fritz erstellt werden muß. Auf dem Linux-Rechner muß ein Verzeichnis eingerichtet werden, das die Daten der Arbeit enthält (z.B. "/samba/data"). Um den Dreien nun den Zugriff auf das Verzeichnis zu ermöglichen, muß folgendes in der Datei "smb.conf" eingetragen werden:

[data]

        comment = Daten

        user = max,moritz,fritz

        only user = True

        path = /samba/data

        writable = Yes

        max connections = 2

Der geteilte Dienst "data" kann nun einem Laufwerksbuchstaben auf dem Windows-Rechner zugeordnet werden. Dabei haben zu diesem Dienst nur die angegebenen Benutzer Zugriff (only user - Option), was auch zur logischen Folge hat, das maximal drei Benutzer auf einmal (max connections) diesen Dienst in Anspruch nehmen können.

Um Benutzern, die ein Account auf dem Samba-Rechner besitzen, Zugang zu ihrem Home-Verzeichnis zu ermöglichen, wird der Abschnitt [homes] verwendet, wie ich schon im einführenden Teil erläutert hatte.

Mit der Option "mangled names" wird eingestellt, ob Dateinamen, die nicht der DOS-Norm "Name (8 Zeichen).Erweiterung (3 Zeichen)" entsprechen, umgeformt werden sollen oder einfach übergangen werden. Die Option "mangling char" wählt das Zeichen aus, das zur Namensverkürzung verwendet wird (Standardeinstellung: ~).

[data]

        comment = DatenDos

        ...

        mangled names = 1

        mangling char = °

        ...

In diesem Beispiel würde der Dateiname slackware-2.1.4 unter Windows als slack°1.4 erscheinen.

Einrichten von geteilten Druckern

Der allgemeine Abschnitt [printers] dient dazu, die Drucker unter den selben Namen wie sie auf dem Linux-Rechner (in der Datei "/etc/printcap") definiert sind, zu benutzen. Ein typisches Beispiel hierfür wäre:

[printers]

        comment = Globale Druckereinstellungen

        public = Yes

        path = /usr/spool/pub

        printable = Yes

Jeder Benutzer kann jetzt jeden Drucker das Servers ansprechen (public = Yes). Die Dateien, die vom Client aus gedruckt werden sollen, werden im Verzeichnis "/usr/spool/pub" abgelegt. Der Benutzer darf jedoch nicht direkt in das Verzeichnis schreiben (writable = No), sondern diese Aufgabe wird von Samba übernommen (printable = Yes).

Hinweis: Das angegebene Verzeichnis muß für jeden Benutzer alle Zugriffsrechte aufweisen (zu Erreichen durch den Befehl "chmod 777 /var/spool/pub").

Um spezielle Drucker zu definieren, die nur von bestimmten Personen verwendet werden dürfen, muß ein neuer Abschnitt definiert werden, der wie folgt aussehen kann (vgl. auch Abschnitt 2.2.2 Einrichten von geteilten Verzeichnissen):

[laserjet]

        comment = HP Laserjet 4M

        printer = laserjet

        users = max,moritz,fritz

        only user = True

        printable = True

        public = False

        path = /var/spool/pub

Hier können die Benutzer Max, Moritz und Fritz nun exklusiv auf den Dienst laserjet zugreifen und das Resultat ihrer Daten zu Papier bringen. Es wird der Drucker verwendet, der in der Datei "/etc/printcap" als "laserjet" definiert ist.

Die Befehle zum Drucken bzw. Löschen eines Druckauftrages sowie Art der Anzeige der Druckerwarteschlange können auch verändert werden. Im folgenden Beispiel werden die zusätzlichen Befehle aufgezeigt:

[ascii2ps]

        comment = ASCII auf Postscript

        ...

        print command = /usr/bin/mpage -2 %s | /usr/bin/lpr -P%p

        lpq command = /usr/bin/lpq %p

        lprm command = /usr/bin/lprm -P%p %j

Hierbei enthalten die Variablen %s den Namen der zu druckenden Datei, %p den Druckernamen und %j die Druckauftragsnummer. In diesem Beispiel wird der Laserdrucker zum Drucken von ASCII-Dateien im Postscript-Format verwendet. Es sollen zwei Seiten auf einem Blatt erscheinen, was mit dem Befehl "mpage -2" erreicht wird. Die Art der Anzeige der Warteschlange, sowie der Befehl zum Löschen eines Druckauftrages enthalten Standard-Einstellungen.

Mit dem Programm "testprns" kann man zusätzlich noch überprüfen, ob die angegebenen Namen der Drucker in der Konfigurationsdatei gültig sind.

Browsing

Samba stellt die Möglichkeit zur Verfügung, einem Client sämtliche geteilte Dienste aufzulisten. Ist dies nicht erwünscht, d.h. nur Benutzer, die den Namen von bestimmten Diensten kennen, sollen auch von diesen Kenntnis haben, kann dies mit der Option

[dienst]

        comment = Dienstplanung

        ...

        browseable = No

        ...

ausgeschaltet werden. Auf diese Weise können einzelne oder auch alle (wenn die Option im [global]-Abschnitt angegeben wird) Dienste versteckt werden.

Es handelt sich hierbei allerdings eine sehr nützliche Eigenschaft, da man beim Anmelden von Windows aus automatisch eine Liste der zur Verfügung stehenden Dienste erhält und den gewünschten dann leicht mit einem Maus-Klick auswählen kann. Aus diesem Grund sollte man nur bei erhöhtem Sicherheitsbedarf auf diese Möglichkeit verzichten.

Manche Dienste benötigen zu Ihrer Laufzeit bestimmte Ressourcen, wie z.B. eine CD-ROM. Damit diese Ressource nun bei der Anforderung des Dienstes zur Verfügung gestellt werden kann und bei dessen Beendigung wieder freigegeben wird, existieren die Optionen "preexec" und "postexec". Das mounten bzw. unmounten einer CD-ROM am Beginn bzw. Ende des Dienstes würde wie folgt realisiert:

[data]

        comment = DatenCD

        ...

        preexec = mount /cdrom

        postexec = umount /cdrom

        ...

Def. Variablen

Um die Konfiguration flexibler zu gestalten, sind folgende Variablen definiert:

Variable Bedeutung
%S Der Name des aktuellen Dienstes.
%P Der Pfad des aktuellen Dienstes.
%u Der Name des Benutzers des aktuellen Dienstes.
%H Das Home-Verzeichnis des aktuellen Benutzers (%u).
%v Die verwendete Samba-Version.
%h Der Name des Samba-Rechners.
%m Der NetBIOS-Name des Client-Rechners.
%M Der Internet-Name des Client-Rechners.
%d Die Prozess-Nummer von smbd.
%a Die Architektur des Client-Rechners (bisher nur erkannt (v1.9.15p8): Samba und Windows für Workinggroups, 95 und NT; ansonsten "UNKNOWN").
%I Die IP-Adresse des Client-Rechners.
%T Das aktuelle Datum und Zeit.
Tabelle 3.1 Variablen in smb.conf und deren Bedeutung

Die Verwendung der Variabeln möchte ich nun an zwei Beispielen demonstrieren:

Beispiel 1:

[dienst]

        comment = Dienstplanung

        ...

        path = /samba/%u

        ...

In diesem Beispiel wird einem Benutzer anhand seiner Kennung ein entsprechendes Arbeitsverzeichnis im Verzeichnis-Ast /samba zugewiesen. Der Benutzer moritz würde also das Verzeichnis /samba/moritz zugeordnet.

Beispiel 2:

[FastASCII]

        comment = ASCII zweiseitig pro Blatt

        public = yes

        printer = laserjet

        printcommand = mpage -2 -h"%u %T" %s | lpr -P%p

Der Dienst FastASCII aus diesem Beispiel druckt Textdateien zweiseitig pro Blatt versehen mit Benutzernamen und Druckzeitpunkt aus.

Sicherheit des Samba-Rechners

Um eine gewisse Sicherheit des Samba-Rechners zu gewährleisten, existieren verschiedene Sicherheits-Einstellungen, von denen einige denen des ftp-Daemons ftpd ähneln. Es ist möglich bestimmte Rechner oder Benutzer von der Nutzung der Dienste ein- bzw. auszuschließen. Außerdem können bestimmte Verzeichnis vor einem Zugriff geschützt werden. Abhängig davon, ob sich diese Einstellungen im Abschnitt [global] oder einem anderen, speziellen Abschnitt befinden, sind diese Einstellungen für alle Dienste oder nur für diesen speziellen Dienst gültig.

Bestimmten Rechnern Zugriff auf die Dienste von Samba zu gewähren

Mit den Optionen "hosts allow" und "hosts deny" ist es möglich nur bestimmten Rechnern Zugriff auf die Dienste von Samba zu gewähren. Im folgenden Beispiel erhalten alle Rechner mit der IP-Adresse 192.168.2.*, jedoch nicht das Gateway mit der Adresse 192.168.2.1 Zugriff auf die Samba-Dienste:

[global]

        comment = Globale Einstellungen

        ...

        hosts allow = 192.168.2. except 192.168.2.1

        ...

Das gleiche Resultat kann aber auch durch die folgenden Einstellung erreicht werden:

[dienst]

        comment = Dienstplanung

        ...

        hosts allow = 192.168.2.

        hosts deny = 192.168.2.1

        ...

Um nur Rechner zuzulassen, die nur an einem bestimmten Netzwerk mit einer bestimmten Netzmaske angeschlossen sind, muß man folgendermaßen vorgehen

[data]

        comment = DatenServer

        ...

        hosts allow = 192.168.2.0 / 255.255.255.0

        ...

Verzeichnisse vor einem Zugriff zu schützen

Um bestimmte Verzeichnisse vor einem Zugriff zu schützen, können diese mit der Option "dont descend" angegeben werden. In diese Verzeichnisse kann zwar gewechselt werden, jedoch werden keine Dateien angezeigt (ähnlich einem Verzeichnis auf Linux mit den Zugriffsrechten x--).

[global]

        comment = Globale Einstellungen

        ...

        dont descend = /dev, /etc, /proc

        ...

Um einzustellen, ob in Verzeichnisse gewechselt werden darf, die nur als Verweis (link) in einen anderen Teil des Verzeichnisbaumes existieren, kann man die Option "wide links" verwenden:

[global]

        comment = Globale Einstellungen

        ...

        wide links = true

        ...

Benutzer mit Sicherheit

Um bestimmte Benutzer mit Sicherheit von der Benutzung eines Dienstes auszuschließen, können diese mit der Option "invalid users" explizit genannt werden:

[data]

        comment = Daten

        ...

        user = volker, gerhard, peter

        only user = True

        ...

        invalid users = klausk,ulrike,brigitte
...

Hier dürfen die Benutzer Axel, Klaus und Peter sowie die Benutzer in der Unix-Gruppe "diplom" nicht auf die Daten von Max, Moritz und Fritz zugreifen, da die Gefahr besteht, daß sie abschreiben könnten. Es handelt sich hierbei um eine eigentlich unnötige Option, da diese bereits durch die Kombination der Optionen "user" und "only user" abgedeckt ist. Sie ist aber sehr hilfreich, wenn die Definition der erlaubten Benutzer nicht so eindeutig wie in dem obigen Beispiel ist.

Um auch Benutzer zuzulassen, die ein Account ohne Passwort besitzen, kann man die Option "null passwords" verwenden.

[global]

        comment = Globale Einstellungen

        ...

        null passwords = true

        ...

Die Option "password level" wurde bereits im Abschnitt 2.2.1 Globale Einstellungen behandelt. Es wird hierbei eingestellt, wieviele Großbuchstaben ein Passwort enthalten darf, da Windows das Passwort nur in Großbuchstaben übermittelt und Samba das Passwort quasi "erraten" muß.

[global]

        comment = Globale Einstellungen

        ...

        password level = 2

        ...

Um bei einem Wechsel des genutzten Dienstes sicherzustellen, daß immer noch ein autorisierte Benutzer den neuen Dienst anfordert, kann man die Option "revalidate" verwenden. Sie stellt sicher, daß bei jedem Zugriff des gleichen Benutzers auf einen anderen Dienst das Passwort nochmals abgefragt wird.

[global]

        comment = Globale Einstellungen

        ...

        revalidate = true

        ...

Starten des Servers

Der Server besteht aus zwei Teilen: Das Programm "nmbd" ist für die Zuordnung von Namen zu den entsprechenden Diensten zuständig. Das Programm "smbd", stellt den eigentlichen SMB-Server dar und ist somit das Herz von Samba.

Das Starten des Servers kann auf zwei Arten realisiert werden: Erstens, als Daemon, der immer als Hintergrundprozeß präsent ist oder als Service, der in der Datei "/etc/inetd.conf" eingetragen ist. Im ersten Fall müssen folgenden Zeilen in die Datei "/etc/rc.d/rc.local" eingfügt werden:

# Starten der SMB-Daemons

echo Starting SaMBa...

/usr/local/samba/bin/smbd -D

/usr/local/samba/bin/nmbd -D

Der Parameter "-D" teilt den Programmen mit, daß sie als Daemons im Hintergrund arbeiten sollen und somit die benötigten Ports (139 für smbd und 137 für nmbd) selbst verwalten.

Um die Dateien als Service von inetd laufen zu lassen, müssen in die Datei "/etc/inetd.conf" folgende Zeilen eingefügt werden:

# SMB-Requests

netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd

netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd

Falls die Dienste, die hier angesprochen werden, noch nicht in der Datei "/etc/services" mit einem Port verbunden sind, müssen in dieser Datei noch folgende Zeilen eingefügt werden:

# NETBIOS-Services

netbios-ns 137/tcp      # NETBIOS name service

netbios-ns 137/udp                              *)

netbios-dgm 138/tcp     # NETBIOS datagram

netbios-dgm 138/udp

netbios-ssn 139/tcp     # NETBIOS session       *)

netbios-ssn 139/udp

Nur die Zeilen, die mit einem *) markiert sind, sind wirklich notwendig; die anderen wurden nur der Vollständigkeit halber mit angegeben. In einer normalen Slackware-Distribution von Linux sind diese Einträge in beiden Dateien bereits vorhanden. Man sollte jedoch immer vorsichtshalber überprüfen, ob diese wirklich vorhanden sind.

Der Internet-Daemen "inetd" wird mit dem Befehl "kill -HUP Prozess-Nummer" (wobei die Prozess-Nummer die des Internet-Daemon bezeichnet) neu initialisiert. Jetzt kann eine Anfrage auf Port 139 bzw. 137 über "inetd" von "smbd" bzw. "nmbd" korrekt beantwortet werden, d.h. der SMB-Server kann jetzt seiner Aufgabe nachgehen. Den Server als Daemon im Hintergrund laufen zu lassen, hat den einzigen Vorteil, daß Verbindungs-Anfragen ein wenig schneller bearbeitet werden können, da "smbd" bzw. "nmbd" nicht mehr gestartet werden müssen.

Testen des Servers

Zum Testen des Servers kann das Programm "smbclient" verwendet werden. Alle verfügbaren Dienste werden mit dem Befehl

smbclient -L Hostname

aufgelistet. War dieser Test erfolgreich, kann man eine ftp-ähnliche Oberfläche mit dem Befehl

smbclient \\Hostname\Dienstname

aufgerufen werden. Manche Unix-Befehls-Interpreter verlangen, daß "Backslashes escaped" (der Rückstrich wird verwendet, um nicht-druckbare Zeichen anzusprechen bzw. einen Zeilenumbruch anzuzeigen) werden müssen, d.h. der Aufruf folgendermaßen aussieht:

smbclient \\\\Hostname\\Dienstname

Falls auch dieser Aufruf funktioniert, d.h. man kann mit den Dateien dieses Dienstes arbeiten, kann die Installation auf den Windows-Clients erfolgen, was ich im nächsten Abschnitt erläuteren möche.

Installation in Windows

Für Windows 3.1 und Windows 3.11 (für Workgroups) gibt es zwei verschiedene Vorgehensweisen, da Windows 3.11 bereits netzwerkfähig ist. Die ältere Windows-Version ist durch eine (kostenlose) Aufrüstung außerdem nur in der Lage die zur Verfügung gestellten Dienste zu nutzen, jedoch keine eigenen Dienste zur Verfügung zu stellen. Beiden Versionen fehlen das Netzwerk-Protokoll TCP/IP, dessen Installation ich im Folgenden im Zusammenhang mit der Einrichtung des Clients erklären werde.

Installation unter Windows 3.1

Die Installation unter Windows 3.1 kann nur indirekt durchgeführt werden. Da Windows 3.1 keine Netzwerkunterstützung hat, und von Microsoft (kein mir bekanntes) Paket zur Aufrüstung anbietet, müssen die Netzwerkdienste unter DOS installiert werden. Leider ist es hier auch nicht möglich eigene Drucker oder Verzeichnisse anderen Rechnern zur Verfügung zu stellen, da Microsoft nur einen Client (leider auch nur die englische Version) auf seinem ftp-Server zur Verfügung stellt. Natürlich ist es möglich mit Hilfe des Microsoft LAN-Manager diese Dienste zur Verfügung zu stellen, jedoch möchte ich diese Möglichkeit aus Kostengründen ausschließen.

Auf dem ftp-Server von Microsoft befinden sich die Dateien DSK3-1.EXE und DSK3-2.EXE. Sie müssen in einem leeren Verzeichnis entpackt werden und die Dateien anschließend auf zwei Disketten (Installationsdisketten) kopiert werden. Anschließend muß die Installation mit setup gestartet werden. Die Installation funktioniert weitesgehend automatisch; es wird sogar versucht, die Netzwerkkarte zu erkennen. Da in der Standard-Konfiguration das TCP/IP-Protokoll nicht vorgesehen ist, muß dies während der Installation nachgetragen werden. Die nötigen Änderungen der Dateien config.sys, autoexec.bat, windows.ini und system.ini werden in den meisten Fällen auch automatisch vorgenommen. Kann das Installationsprogramm die Dateien nicht selbst ändern (bei mehreren Konfigurationen in der Datei config.sys oder einem bestehenden Netzwerk-Zusatz für Windows, z.B. Novell NetWare), werden die betreffenden Dateien im Installationsverzeichnis abgelegt und die entsprechenden Systemdateien müssen von Hand geändert werden. In den Dateien hosts bzw. lmhosts müssen noch die IP-Adresse des Linux-Rechners eingetragen werden.

Hinweis: Der Eintrag von IP-Adressen erfolgt hier ohne die trennenden Punkte: Die IP-Adresse 192.168.1.2 muß also als 192 168 1 2 eingetragen werden.

In der Datei protocol.ini muß im Abschnitt [TCPIP] der Eintrag disableDHCP von 0 auf 1 geändert werden. Das Protokoll DHCP (Dynamic Host Configuration Protocol) wird von Windows NT zur Verfügung gestellt und ermöglicht dem Client eine automatische Konfiguration der IP-Adresse, Netzmaske sowie Default-Gateway. Ist kein enstsprechender Server im Netzwerk vorhanden, hängt sich der Client beim Hochfahren auf, da die Suche nach einem solchen Server offensichtlich nicht zeitlich eingeschränkt ist.

Nach einem Neustart des Rechners wird der Client automatisch gestartet. Der Benutzer wird nach seiner Kennung und seinem Passwort gefragt und ist anschließend im Netzwerk eingeloggt. Nach der Eingabe des Befehls net können nun beliebig die Dienste des Samba-Hosts (Drucker und Verzeichnisse) benutzt werden.

Installation in Windows 3.11(Workgroups)

Für die Installation in Windows 3.11 wird das Packet wfwt32.exe benötigt, welches das Netzwerkprotokoll TCP/IP hinzufügt (Quellen für dieses Paket sind in Abschnitt 5, Bezugsquellen, Seite 14 aufgelistet). Bei dem Paket handelt es sich um ein selbstenpackendes Archiv. Es muß in einem leeren Verzeichnis (z.B. c:\temp) entpackt werden und anschließend kann die Installation in Windows beginnen.

Mit dem Programm Netzwerk-Setup aus der Gruppe Netzwerk kann nun das TCP/IP-Protokoll installiert werden. Es müssen die IP-Adresse, die Subnetz-Maske sowie die Gateway-Adresse eingetragen werden. Die Einträge Enable Automatic DHCP Configuration, Primary und Secondary WINS-Server können nur verwendet werden, falls ein Windows-NT-Rechner mit den entsprechenden Diensten DHCP (Dynamic Host Configuration Protocol) und WINS (Windows Internet Name Service) im gleichen Netz vorhanden ist. In diesem Fall kann die IP-Adresse, die Subnetz-Maske und die Gateway-Adresse automatisch eingetragen werden und es können mit Hilfe des Name-Servers Rechner-Namen verwendet werden, die sich nicht in der Datei hosts befinden.

Um statt IP-Adressen Rechnernamen (insbesondere der des Samba-Hosts) verwenden zu können müssen mit Hilfe des Editors die Dateien hosts und networks bearbeitet werden. Das Format ist gleich dem Format auf Unix-Rechnern:

127.0.0.1       localhost

195.93.160.13    sysnet.at.gs

Für die Datei networks:

localnet        127

sysnet.at.gs 195.93

Nach dem Neustart von Windows kann nun auf die Dienste des Samba-Hosts mit Hilfe des Dateimanagers zugegriffen werden. Hier können die Druckerports bzw. Laufwerksbuchstaben den entsprechenden Diensten zugeordnet werden.

Installation in Windows 95 bzw NT

Die Installation in Windows 95 bzw NT gestaltet sich leicht, da das TCP/IP-Protokoll bereits im Lieferumfang des Betriebssystems. Es muß lediglich über das Netzwerk-Setup hinzugefügt werden.

 

Glossar

Account Kombination von Benutzername und Passwort, die einen Zugang zu einem (meist Mehrbenutzer-) Rechner ermöglicht.
Client Rechner, der auf die zur Verfügung gestellten Ressourcen eines Servers (siehe unten) zugreift.
DHCP Dynamic Host Configuration Protocol. Wird von Windows-NT-Servern zur Verfügung gestellt, damit Clients die Möglichkeit haben, ihre IP-Adresse, die Subnetz-Adresse und die Gateway-Adresse über das Netzwerk zu erhalten, d.h. automatisch zu konfigurieren.
ftp File Transfer Protokoll. Programm, mit dessen Hilfe Dateien von und zu anderen Rechnern übertragen werden können.
Home-Verzeichnis Verzeichnis, in dem sich die persönlichen Dateien eines Benutzers auf einem Mehrbenutzer-Rechner befinden.
link Querverweis auf eine Datei oder ein Verzeichnis in Unix-Datei-Systemen.
ManPage Anleitung zu Befehlen, die mittels "man Befehlsname" angezeigt werden kann.
mounten Einbinden einer bestimmten Datei-Ressource, z.B. Festplatten, Disketten oder CD-ROMs, in den Verzeichnisbaum eines Unix-Betriebssystems.
Server Rechner, zu dessen Ressourcen Zugang durch ein spezielles Programm (hier: Samba) gewährt wird. Ein Server stellt auch weitere Dienste, z.B. das DHCP-Protokoll eines Windows-NT-Servers zur automatischen Konfiguration der IP-Daten.
Shadow-Passwörter Werden Shadow-Passwörter verwendet, befinden sich die Passwörter für den Linux-Rechner nicht mehr in der Datei "/etc/passwd" sondern werden in einer gesonderten Datei "/etc/shadow" gesichert, die nur der Benutzer root lesen kann. Die Verwendung von Shadow-Passwörtern erhöht die Sicherheit eines Rechners gegen unerlaubten Zugang.
Shell-Script Eine Auflistung von Unix-Befehlen in einer Datei. Wird diese Datei aufgerufen, werden die dort enthaltenen Befehle nacheinander abgearbeitet (vgl. Batch-Dateien unter MS-DOS).
share Ein geteilter Dienst, d.h. eine Ressource (ein Drucker oder ein Verzeichnis), die von einem Server zur Verfügung gestellt wird.
unmounten Entfernen einer bestimmten Datei-Ressource, z.B. Festplatten, Disketten oder CD-ROMs, aus dem Verzeichnisbaum eines Unix-Betriebssystems.
WINS Windows Internet Name Service. Es handelt sich hierbei um die Windows-Variante der von Unix her bekannten Nameservern. Ein Windows-Server übersetzt hierbei auf Anfrage einen Rechner-Namen (z.B. sysnet.at.gs) in deren IP-Adresse (z.B. 195.93.160.13) und liefert diese Informationen zurück.

Linux Rechte

Auflösung der Rechte
Die Rechte werden in einem Zahlen Code Aufgelöst.
Beispiel:           rwx      rwx      rwx

                        421      421      421

pro Block werden die Zahlen Addiert

cmod 755 <Dateiname> die Rechte an dieser Datei  :

rwx

r - x

r - x

4+2+1

4+0+1

4+0+1

7

5

5

Via FTP auf Linux Server zugreifen

Mit YAST Pakete Installieren
WUFTP*        Relativ geringe Sicherheit
PROFTP*       Hohe Sicherheit


Installation und Konfiguration Squid

Installation

Für die Installation wurde auf dem Server ein eigenes Verzeichnis eingerichtet.
   /export/home/fd1891/squid
Nachdem die Datei aus dem Internet in das Unterverzeichnis ./src heruntergeladen ist, muß sie mit dem Befehl gunzip entpackt werden.
   gunzip squid-1.1.19-src.tar.gz
Da es sich hier um eine doppelt gepackte Datei handelt, muß sie nun nochmals ausgepackt werden. Dazu wird diesmal der Befehl tar benötigt, der diese Archivdatei auspackt und die entsprechende Verzeichnisstruktur anlegt. Durch die Optionen wird angegeben, daß die Datei entpackt wird und die Namen der archivierten Dateien angezeigt werden.
   tar xvof squid-1.1.19-src.tar
Danach liegen die Dateien mit dem Quellcode in dem Verzeichnis. Vor dem Kompilieren des Codes muß nun zuerst eine Konfiguration vorgenommen werden, damit die richtige Verzeichnisstruktur erstellt wird. Damit die Installation in dem gewünschten Verzeichnis erstellt wird, gibt man im aktuellen Verzeichnis (./src) an
   ./configure /export/home/fd1891/squid
Danach kann das Kompilieren mit dem Befehl
   make
gestartet werden. Nachdem dies erfolgreich beendet wurde, gibt man nun zum Installieren
   make install
ein. Nun wird die Verzeichnisstruktur und die notwendigen Programme werden erstellt.
Die Verzeichnisstruktur sieht dann wie folgt aus:
 

/export/home/fd1891/squid/ 

			 /bin  

			 /cache  

			 /etc  

			 /logs  

			 /src 

 

 

Programmdateien 

Cache-Verzeichnisse 

Konfigurationsdatei 

Protokolldateien 

(war schon vorhanden) 

Bevor das Programm gestartet werden kann, muß im Verzeichnis /etc/ die Konfigurationsdatei squid.conf geändert werden und auf die Gegebenheiten angepaßt werden (siehe Abschnitt Konfiguration). Nun müssen noch die Cache-Verzeichnisse angelegt werden. Dies geschieht, indem man in dem Verzeichnis /bin/ den Befehl
   squid –z
eingibt. Danach werden die Verzeichnisse automatisch angelegt. Um nun den Squid Proxy-Server endgültig zu starten, muß man im selben Verzeichnis den Befehl
   RunCache&
aufrufen. Damit ist der Proxy-Server gestartet und sollte ohne Probleme laufen.

Konfiguration

In diesem Kapitel wird beschrieben, welche Konfgurationsmöglichkeiten bei dem Squid Proxy-Server bestehen und welche Einstellungen für den vorliegenden Fall vorgenommen wurden. Bei einigen Optionen ist das Zeichen # vorangestellt. Dies bedeutet, daß dies in der Konfigurationsdatei auskommentiert wurde und somit keine Wirkung hat oder daß die Standardeinstellung verwendet wird, sofern eine Angabe notwendig ist.

Allgemeine Angaben

http_port
 

http_port 9000 

Hier wird der Port angegeben, auf welchem die HTTP-Anfragen von den Clients eingehen. Wenn ein Client einen Proxy-Server verwenden will, muß er neben dem Domänennamen die-sen Port angeben.
In diesem Falle wurde der Port 9000 gewählt, da die Konfiguration nur zu Testzwecken läuft und der vorgesehene Port 8080 bereits belegt ist.

icp_port

 

icp_port 3130 
Auf diesem Port sendet und empfängt der Proxy-Agent ICP-Anfragen (ICP = Internet Caching Protocol). Über diesen Port kommuniziert der Proxy mit benachbarten Caches über das ICP. Dieses hat gegenüber IP und HTTP den Vorteil, daß es auf UDP basiert und damit deutlich schneller ist.

mcast_groups
Multicast groups ist ein relativ neuer Dienst, der im Netz noch nicht unterstützt wird. Daher ist hier keine Angabe notwendig.

tcp_incoming_address
tcp_outgoing_address
udp_incoming_address
udp_outgoing_address

Diese Angaben sind notwendig, wenn „multihomed hosts“ verwendet werden. Da dies hier nicht vorliegt, sind keine Angaben notwendig.

cache_host

 

cache_host proxy.sysnet.de sibling 8080 3130 

cache_host hercule.daa.net sibling 8000 3130 

cache_host wwwproxy.linux.de parent 80 3130 

Mit dieser Option werden die benachbarten Caches mit ihrer Internetadresse und dem dazugehörigen Port angegeben, sowie ihre Funktion als gleichberechtiger Proxy (sibling) oder in der Hierarchie höher stehend (parent). Ebenfalls angegeben wird hier der ICP-Port, über den der Proxy mit den benachbarten Caches kommuniziert. Über weitere Optionen können weitere Merkmale eingestellt werden, die aber in diesem Falle nicht von Bedeutung sind.

cache_host_domain
Mit dieser Option kann begrenzt werden, für welche Domänen bei benachbarten Caches angefragt werden soll.
Es werden für alle Domänen Anfragen geschickt.
neighbor_type_domain
Mit dieser Option ist es möglich, daß für bestimmte Domänen die benachbarten Caches als anderer Typ behandelt werden, als es bei cache_host angegeben ist.
Dies ist jedoch hier nicht notwendig.

inside_firewall
Hiermit können Domänen spezifiziert werden, die sich innerhalb des lokalen Internet Firewalls befinden.
Da das System nicht von einer Firewall umgeben ist, ist es nicht notwendig, hier Angaben zu machen.

local_domain

local_domain sysnet.de
Hier kann eine Liste von Domänen angegeben werden, die sich in dem lokalen Netz befinden. Alle Anfragen auf Domänen, die hier angegeben werden, werden direkt von der Quelle geholt, nicht zwischengespeichert und es werden keine Anfragen an benachbarte Caches durchgeführt.
Da alle Seiten auf den Servern der Domäne sysnet.de angehören, ist die Angabe nur dieser einen Domäne ausreichend.

local_ip
Diese Angabe beinhaltet dasselbe wie local_domain, jedoch wird hier die IP-Adresse des URLs überprüft. Dazu muß eine DNS-Nachfrage gestartet werden. Aus diesem Grund wird jedoch die Anfrage nach local_domain vorgezogen.
Eine Angabe ist hier also nicht notwendig, da in dem lokalen Netz der SYSNET nur eine Hauptdomäne existiert und eine DNS-Nachfrage nicht notwendig ist.

firewall_ip
Hier wird die IP-Adresse der Firewall angegeben. Dies hat dieselbe Auswirkung wie die An-gabe bei inside_firewall, nur für IP-Adressen. Da sich aber firewall_ip und local_ip gegenseitig ausschließen, werden bei einer Angabe hier die Angaben bei local_ip ignoriert.
Eine Angabe ist in diesem Falle nicht notwendig.

neighbor_timeout (seconds)

neighbor_timeout 2
Hier wird die Zeit in  Sekunden angegeben, wie lange auf eine Antwort von einem Nachbarn gewartet werden soll. Nach verstreichen dieser Zeit ohne eine Antwort, wird die Anfrage direkt an die Quelle geleitet.
Ohne eine Angabe ist diese Zeit auf zwei Sekunden eingestellt. Dies wird hier entsprechend übernommen.

hierarchy_stoplist

 

hierarchy_stoplist cgi-bin cgi ? 

Die Ausdrücke, die hier angegeben werden, bewirken, daß Anfragen auf URLs, in denen diese Ausdrücke vorkommen, nicht an benachbarte Caches weitergegeben werden, sondern direkt an die Quelle weitergeleitet werden. Dies ist beispielsweise sinnvoll für Seiten, in denen über Skripte  Abfragen gestartet werden.
Die Standardeinstellung wird hier übernommen, um Seiten mit cgi-Scripts und Anfragen direkt an die Quelle weiterzuleiten.

cache_stoplist

cache_stoplist cgi-bin cgi ?
In dieser Liste wird angegeben, daß Seiten, in deren Adresse die spezifizierten Ausdrücken vorkommen, nicht gespeichert werden und jedesmal neu von der Quelle geholt werden.
Auch hier wird die Standardeinstellung übernommen.

cache_stoplist_pattern  # case sensitive
cache_stoplist_pattern/i  # case insensitive

bedeutet dasselbe wie cache_stoplist, jedoch können hier reguläre Ausdrücke anstatt einfacher Zeichenketten angegeben werden. Es gibt keine Standardeinstellung.
Eine Angabe ist nicht notwendig.

Optionen für die Cachegröße

cache_mem (megabytes)

cache_mem 8
Angabe der maximalen Größe des virtuellen Speichers zum zwischenspeichern von Seiten. Eine sinnvolle Angabe dieser Größe hat erheblichen Einfluß auf die Performance des Proxys, da hier Daten im Arbeitsspeicher gehalten werden und dadurch wesentlich schneller abgerufen werden können, als vorhandene Seiten, die auf der Platte gespeichert sind. Die Größe muß aber auch von den Gegebenheiten der Maschine abhängig gemacht werden, um parallel verlaufende Prozesse nicht zu sehr zu behindern.
Für den Testbetrieb wird dieser Wert auf 8 MB gesetzt. Dies ist allerdings für ein Netz mit der Größe der SYSNET sehr wenig. Daher muß der Wert bei einer endgültigen Installation noch heraufgesetzt werden. Empfehlenswert ist eine Größe von 256 MB, wenn der Server auf einer eigenen Maschine läuft.

cache_swap (megabytes)

cache_swap 100
Maximaler Plattenplatz, der zur Verfügung steht, um Seiten zu speichern. Es ist darauf zu achten, daß hier mehr angegeben wird, als bei cache_mem. Wenn dieser Speicherplatz voll ist, werden alte oder lange nicht benutzte Seiten aus dem Speicher gelöscht.
Standardeinstellung sind 100 MB, die für die Testinstallation beibehalten wurde. Dieser Wert ist jedoch für einen normalen Betrieb viel zu gering. Um ein sinnvolles Caching zu gewährleisten, sollte hier ein Wert von mehr als 1GB genommen werden. Im Endeffekt hängt dies aber von dem zur Verfügung stehenden Plattenspeicher ab. Generell gilt aber, je mehr Plattenspeicher zur Verfügung steht, desto größer ist die Effektivität des Proxies.

cache_swap_low  (percent, 0-100)
cache_swap_high (percent, 0-100)

 

cache_swap_low 90 

cache_swap_high 95 

Mit diesen Angaben wird eingestellt, bei welcher Auslastung des Plattenspeichers damit angefangen wird, Objekte zu löschen (cache_swap_high). Wenn genug Objekte gelöscht wurden und die cache_swap_low-Marke erreicht ist, wird das Löschen beendet.
Die Standardeinstellungen sind 90% und 95%. Diese Marken erscheinen auch hier sinnvoll und werden nicht geändert.
Wenn der Bereich zu eng gewählt wird (z.B. 99% und 98%), muß sehr oft gelöscht werden, was sich nachteilig auf die Performance des Proxies auswirkt. Ein zu groß gewählter Bereich (z.B. 95% und 50%) hat zur Folge, daß der zur Verfügung stehende Plattenspeicher nicht optimal ausgenutzt wird und dadurch dem Sinn eines Proxy-Agenten entgegengewirkt wird.

cache_mem_low  (percent, 0-100)
cache_mem_high (percent, 0-100)

 

cache_mem_low 75 

cache_mem_high 90 

Wie bei den vorherigen Angaben, werden auch hier Ober- und Untergrenzen festgelegt. Jedoch erfolgt dies hier für den Cache im Arbeitsspeicher. Da die Zugriffszeiten hier wesentlich schneller sind und dadurch auch Löschvorgänge schneller sind, kann der Bereich hier größer gewählt werden. Gelöschte Objekte werden nur aus dem RAM gelöscht und bleiben auf der Festplatte erhalten.
Standardeinstellung sind 75 und 90%. Diese Einstellungen werden so übernommen, da sie auch hier sinnvoll erscheinen.

maximum_object_size

 

maximum_object_size 4096 

Hier wird die maximale Größe zu speichernder Objekte in Kilobyte angegeben. Objekte, die größer sind, werden nicht gespeichert.
Die Standardeinstellung ist 4 MB. Da der Cache nur für HTTP dient, ist diese Größe ausreichend und wird übernommen.

ipcache_size (number of entries)
ipcache_low  (percent)
ipcache_high (percent)

Mit diesen Optionen wird die Größe, Ober- und Untergrenze des IP-Caches angegeben. Für den vorliegenden Fall werden keine Angaben benötigt.

Pfadnamen für Log-Dateien und Cache-Verzeichnisse

Im Folgenden werden die Pfadnamen für die Log-Dateien und Cache-Verzeichnisse angege-ben. Diese ergeben sich aus der Verzeichnisstruktur, die bei der Installation erstellt wurde.

cache_dir

 

cache_dir /export/home/fd1891/squid/cache 

Verzeichnis für die Zwischenspeicherung auf der Festplatte.

cache_access_log

 

cache_access_log /export/home/fd1891/squid/logs/access.log 

In dieser Log-Datei wird gespeichert, von welchem Client auf welchen URL zugegriffen wurde.

cache_log

 

cache_log /export/home/fd1891/squid/logs/cache.log 

Hier werden die Ereignisse des Caches protokolliert.

cache_store_log

 

cache_store_log /export/home/fd1891/squid/logs/store.log 

In dieser Datei wird protokolliert, welche Objekte aus dem Cache herausgeworfen wurden, welche gespeichert wurden und für wie lange.

cache_swap_log
Hier kann ein Pfadname für die swap log-Datei angegeben werden. In dieser werden die Daten der Objekte auf der Platte gespeichert, um den Cache bei einem Neustart zu rekonstruieren. Eine Angabe ist hier allerdings nicht notwendig, da diese Datei standardmäßig im ersten Cache-Verzeichnis abgelegt ist.

emulate_httpd_log

 

emulate_httpd_log on 

Der Cache kann das Format von Log-Dateien emulieren, welches von vielen HTTPD-Programmen benutzt wird. Dies hat keine Auswirkungen auf die Performance des Caches und wird daher bei der Standardeinstellung auf ‚on‘ belassen.

log_mime_hdrs

 

#log_mime_hdrs off 

Diese Option wird hier nicht benötigt. Die Standardeinstellung ‚off‘ wird beibehalten.

useragent_log

 

#useragent_log none 

Diese Option wird hier nicht benötigt. Die Standardeinstellung ‚none‘ wird beibehalten.

pid_filename

 

pid_filename /export/home/fd1891/squid/logs/squid.pid 

In dieser Datei wird die Prozeß-ID des Squid gespeichert. Diese ist notwendig, um den Squid zu beenden. Bei Beenden des Squid wird die Datei gelöscht und bei einem Neustart neu angelegt.

debug_options

 

debug_options ALL,1 

Hier wird festgelegt, welche Debug-Informationen in den Log-Dateien gespeichert werden. Die Angabe erfolgt in section, level, wobei jeder Quelldatei eine section zugewiesen ist. Niedrige Level ergeben nur wenig Informationen, der höchste Level (Level 9) verursacht allerdings sehr große Log-Dateien, es ist also Vorsicht angeraten und nur dann ein höherer Level anzugeben, wenn die Informationen unbedingt notwendig sind. Mit der Angabe ALL werden für alle Sections die gleichen Debug-Level gesetzt.
Standardeinstellung für diese Option ist ALL,1 und wird übernommen.

ident_lookup

 

#ident_lookup off 

Diese Einstellung ist notwendig, um für jede Verbindung eine Verifizierung des Client-Benutzernamen nach RFC931 zu machen. Die Standardeinstellung ,off' wird beibehalten, da dies im vorliegenden Fall nicht notwendig ist.

log_fqdn

 

#log_fqdn off 

Diese Option muß auf on gesetzt werden, wenn in der Datei access.log die vollen Domänennamen gespeichert werden sollen. Auch hier wird die Standardeinstellung übernommen.

client_netmask

 

client_netmask 255.255.255.0 

Diese Option hat eine zentrale Bedeutung für den Datenschutz und die Wahrung der Privatsphäre der Benutzer. Durch die Angabe einer Netzmaske kann hier bewirkt werden, daß in der Datei access.log die IP-Adresse des Clients überdeckt wird. Die Standardeinstellung sieht keine Netzmaske vor. Es ist aber anzuraten hier eine sinnvolle Maske zu generieren, damit auf der einen Seite die Privatsphäre der Benutzer gewahrt ist, auf der anderen Seite aber noch eine Rückverfolgung möglich ist, um mögliche Fehler zu verfolgen.
An der SYSNET ist es deshalb sinnvoll, nur die letzten 4 Bits zu überdecken. Dadurch ist es möglich, zu erkennen, aus welchem Subnetz die Anfrage kam, die Verfolgung zu einem einzelnen Client ist allerdings nicht mehr möglich. Die Abdeckung erfolgt in der Weise, daß für den Bereich der abgedeckt werden soll, der Wert auf null gesetzt wird. Greift beispielsweise der Client mit der IP-Adresse 193.174.25.130 auf eine Seite zu, so erscheint mit der obigen Einstellung in der Datei access.log die IP-Adresse als 193.174.25.0 auf.

Optionen für externe Programme

Der Proxy-Server benötigt mehrere externe Programme, für die hier die Pfadnamen und die notwendigen Optionen angegeben werden können. Die meisten Programme sind im Installationsumfang enthalten. Es können jedoch auch andere Programme dafür benutzt werden. Dann sind die Pfadnamen und Optionen entsprechend anders zu setzen.

ftpget_program

 

ftpget_program /export/home/fd1891/squid/bin/ftpget 

Der Pfad für das FTP-Programm.

ftpget_options

 

#ftpget_options 

Hier können die Optionen angegeben werden, mit dem das FTP-Programm gestartet werden soll.

ftp_user

 

ftp_user user@sysnet.de 

Um bei einem anonymen Login das Paßwort informativer zu machen kann hier die eine E-Mailadresse angegeben werden, bzw. die Domäne. In dem vorliegenden Fall wäre dies user@sysnet.de. Manche FTP-Server verlangen eine gültige E-Mailadresse um einen Zugang zu ermöglichen. Daher wird hier eine Adresse gesetzt.

cache_dns_program

 

cache_dns_program /export/home/fd1891/squid/bin/dnsserver 


Dieses Programm wird zum Ausführen von DNS-Nachfragen benötigt.

dns_children

 

dns_children 10 

Wird der Proxy-Server stark frequentiert, sind oft mehrere DNS-Abfragen gleichzeitig notwendig. Hier wird angegeben, wieviel Kind-Prozesse für DNS-Abfragen gestartet werden dürfen.
Standardeinstellung ist hier fünf und die maximale Anzahl ist 32. Für stark belastete Caches auf großen Servern sollte die Anzahl entsprechend erhöht werden. Für die SSYSNET wird 10 als sinnvoll angesehen.

dns_defnames

 

#dns_defnames off 

In einem lokalen Netzwerk reicht es oft aus, zum Holen von Seiten innerhalb der Domäne nur die Internetadresse ohne den Domänennamen anzugeben (z.B. die Domäne sysnet.de“ weglassen). Damit der DNS-Server damit umgehen kann, muß diese Option auf „on“ gesetzt werden. Dies kann aber zu Problemen führen, wenn der Proxy Teil einer Cache-Hierarchie ist. Da dies hier zutrifft, muß die Option standardmäßig auf „off“ gelassen werden.

unlinkd_program



unlinkd_program /export/home/fd1891/squid/bin/unlinkd 

 



Dieses Programm wird zum Löschen 

von Ojekten aus dem Cache benötigt.  

pinger_program

 

#pinger_program /export/home/fd1891/squid/bin/pinger 

Dieses Programm sendet Pings an andere Rechner, um deren Erreichbarkeit zu überprüfen. Dieses Programm ist hier nicht notwendig und bleibt daher auskommentiert.

redirect_program

 

#redirect_program /bin/false 

Hier wird der Pfadname für ein Programm angegeben, welches URLs nachsendet. Dieses Programm muß selber erstellt werden. Deshalb wird dies standardmäßig nicht verwendet und bleibt auskommentiert.

redirect_children

 

#redirect_children 5 

Hier wird die maximale Zahl der startbaren Kind-Prozesse für das redirect-Programm angegeben.

Optionen zum Beschleunigen des Caches

wais_relay
 

#wais_relay localhost 8000 

Das WAIS (Wide Area Information Service) ist ein älteres Protokoll, welches dem HTTP ähnlich ist. Diese Angabe ist also ähnlich den Angaben unter http_port. Da es allerdings nicht mehr von allen Web-Servern unterstützt wird und nur noch selten angewandt wird, ist eine Angabe hier nicht notwendig.

request_size
Die Angabe bezeichnet die maximal akzeptable Größe für Objekte, die Anfragen enthalten, wie beispielsweise cgi-Skripte. Diese verwenden die HTTP-Anweisung POST, um Daten an den referenzierenden Server zu übertragen. Dies ist notwendig, wenn eine zu große Netzlast verhindert werden soll. An der SYSNET soll dies derzeit nicht begrenzt werden. Eine Angabe ist also nicht notwendig.

refresh_pattern # case sensitive
refresh_pattern/i # case insensitive

 

refresh_pattern   .    0 20% 4320 

Mit diesen Angaben kann der beeinflußt werden, wie sich der Proxy beim Löschen von im Cache gespeicherten Objekten verhält. Hier werden die Standardeinstellungen verwendet, da es nicht möglich war, die Einstellungen zu testen.
Die Einstellungen werden mit min, percent und max bezeichnet, wobei min und max in Minuten angegeben werden und percent eine Zahl im Format Integer ist.
Beim Löschen werden die Objekte folgendermaßen behandelt:

Die Liste wird beim Löschen in dieser Reihenfolge gelesen und die erste zutreffende Eigenschaft wird angewendet. „Schale“ Objekte werden dabei gelöscht.

reference_age

 

reference_age 1 year 

Beim Löschen der auf Festplatte gespeicherten Objekte unterstützt der Squid-Proxy LRU (Least Recently Used). Dabei wird ein Objekt nach seinem letzten Gebrauch beurteilt. Das hier angegebene Alter gilt dabei als Höchstgrenze. Hier ist es sinnvoll, eine recht lange Zeitspanne anzugeben, da eine zu kurze Lebensdauer im Zwischenspeicher dem Sinn eines Proxy-Caches entgegenwirkt. Außerdem wird vorausgesetzt, daß der zur Verfügung stehende Plattenplatz auch ausgenutzt werden kann und damit ein sehr altes Objekt nicht als störend auffällt, solange genug Platz vorhanden ist. Die Marken, die beim Löschen von der Platte beachtet werden sollen, sind weiter oben bereits beschrieben. Aus den beschriebenen Gründen ergibt sich, daß es sinnvoll ist, die Standardeinstellung von einem Jahr zu übernehmen.

quick_abort

 

quick_abort -1 0 0 

Standardmäßig fährt der Cache fort, ein angefordertes Objekt zu holen, auch wenn der Client die Anfrage abbricht. Bei stark belasteten Caches oder sehr langsamen Links ist dies nicht immer erwünscht. Mit quick_abort kann eingestellt werden, wann eine Übertragung abgebrochen werden soll.
Die Einstellungen sind min-kbytes percent (%) und max-kbytes. Sind nur noch weniger als min-kbytes zu holen, wird die Übertragung weitergeführt, ebenso, wenn bereits mehr als der mit percent angegebene Teil des Objektes empfangen wurde. Werden noch mehr als max-kbytes benötigt, wird die Übertragung beendet.
Um diese Funktion auszuschalten, muß bei min-kbytes -1 angegeben werden. Dies ist auch die Standardeinstellung, die hier beibehalten wird, da an der SYSNET eine Standleitung zum Internet besteht und der Cache leistungsfähig genug ist, um dies zu bewältigen.

negative_ttl (minutes)

 

negative_ttl 5 

Mit TTL (Time-to-Live) wird angegeben, für welche Zeitdauer ein Objekt im Speicher gehalten werden soll. Bei negative_ttl werden Negativ-Antworten auf HTTP-Anfragen, wie „connection refused“ (Verbindung verweigert) oder „404 Not Found“ (Objekt nicht gefunden) für die angegebene Zeit gespeichert.
Die Standardeinstellung von 5 Minuten erscheint hier sinnvoll und wird übernommen.

positive_dns_ttl (minutes)

 

positive_dns_ttl 360 

Hier wird angegeben, wie lange die Ergebnisse erfolgreicher DNS-Anfragen im Cache gehalten werden sollen. Die Standardeinstellung von 6 Stunden (360 Minuten) wird nicht geändert. Es muß ein Test im laufenden Betrieb vorliegen, um diese Einstellung bei Bedarf zu optimieren .

negative_dns_ttl (minutes)

 

negative_dns_ttl 5 

Negative DNS-Anfragen werden die hier angegebene Zeit im Speicher gehalten. Die Standardeinstellung von 5 Minuten muß nicht geändert werden.

connect_timeout (seconds)

 

connect_timeout 60 

Es kann vorkommen, daß die Verbindung zu einem Server nicht aufgebaut werden kann. Nach der hier angegebenen Zeit wird der Versuch zum Aufbauen einer Verbindung vom Squid abgebrochen.
Der Standard sind zwei Minuten. Dieser Wert wird jedoch auf 60 Sekunden reduziert, da diese Zeit im Normalfall zum Aufbauen einer Verbindung ausreichen sollte und der Server dadurch nicht unnötig lange blockiert wird. Wenn die Zeit zu kurz ist, können allerdings Probleme auftreten, da es gerade bei transkontinentalen Verbindungen einige Zeit dauern kann, bis diese aufgebaut ist.

read_timeout (minutes)

 

read_timeout 15 

Wenn bei einer aufgebauten Verbindung nach der hier angegebenen Zeit keine Aktivität festgestellt wird, wird die Verbindung geschlossen.
Der Standardwert sind 15 Minuten. Jedoch ist es auch hier sinnvoll den Wert bei stark belasteten Caches nach unten zu setzen, um die Anzahl der nicht aktiven Verbindungen zu reduzieren.

client_lifetime (minutes)

 

client_lifetime 200 

Mit diesem Wert wird begrenzt, wie lange ein Client (in diesem Falle ein Browser) mit dem Proxy-Server verbunden sein darf. Dies soll davor schützen, daß zu viele unbenutzte Verbindungen zum Cache aufgebaut sind, da es vorkommen kann, daß aufgrund eines Netzwerkfehlers eine Verbindung nicht sauber beendet wurde oder eine Verbindung unnötig aufgebaut bleibt, wenn ein Anwender den Browser zwar gestartet hat, aber nicht benutzt.
Die Standardeinstellung sind 200 Minuten. Diese Zeit sollte ausreichen, um ein 10 MB großes Objekt bei einer Datentransferrate von 1k/sec zu übertragen. Eine Änderung dieses Wertes sollte davon abhängen, ob FTP über den Proxy laufen muß und sollte außerdem an die Bedürfnisse der Anwender angepaßt werden. Derzeit ist es an der SYSNET nicht notwendig, FTP über den Proxy abzuwickeln. Daher wird die Standardeinstellung beibehalten.

shutdown_lifetime (seconds)

 

#shutdown_lifetime 30 

Soll der Server heruntergefahren werden, müssen alle Verbindungen beendet werden. Nach Ablauf dieser Zeit erhalten die noch aktiven Clients eine Nachricht, daß ihre Verbindung ab-gebrochen wird. Für diese Zeit wird der Server im „shutdown mode“ gehalten.
Diese Einstellung ist hier nicht notwendig.

Zugriffskontrollen

Die Zugriffskontrollen bilden einen zentralen Punkt der Proxy-Funktionalität.
Im Folgenden werden die Einstellungen für den hier installierten Server beschrieben.

Für die Zugriffskontrollen werden ACLs (Access Control Lists) erstellt, über die dann der Zugriff geregelt wird. Dabei können Listen für die verschiedensten Zwecke angelegt werden.
Dazu wird der Syntax acl aclname acltype string1 ... verwendet. Mit aclname wird der Liste ein Name gegeben und mit acltype der Typ bestimmt. In diesen Listen können für den festgelegten Typ eine Reihe von Objekten, Adressen oder Ähnliches eingetragen werden. Weiter unten wird dann festgelegt, ob für diese Objekte der Zugriff erlaubt oder verboten wird. Dabei können die folgenden Typen verwendet werden.

Für die vorliegende Konfiguration werden folgende ACLs benötigt:

 

acl localhost1 src 193.174.24.0-193.174.31.255/255.255.255.255 

acl localhost2 src 194.94.230.0/255.255.255.0 

acl all src 0.0.0.0/0.0.0.0 

Hier sind die IP-Adressen, bzw. der IP-Adreßbereich für die SYSNET angegeben. Die ACL all deckt alle übrigen IP-Adressen ab. Mit der Netzmaske wird angegeben, welcher Bereich der Adresse nicht beachtet werden soll. In dem vorliegenden Fall trifft dies für die ACL localhost2 zu. Bei der angegebenen Adresse werden mit der Netzmaske die letzten vier Bits abgedeckt, wodurch der gesamte Bereich von 194.94.230.0 bis 194.94.230.255 gemeint ist.

Aufgrund dieser ACLs kann der Zugriff auf den Proxy-Server und der Zugriff auf Objekte begrenzt werden. Da außer dem ICP alle Protokolle über den HTTP-Port laufen, werden hier die meisten Beschränkungen eingetragen.
Der Syntax dazu lautet: http_access allow|deny [!]aclname ... Das !-Zeichen bedeutet dabei eine Negation der ACL.

Für den Proxy-Server der SYSNET sind die Beschränkungen wie folgt:

 

http_access allow localhost1 

http_access allow localhost2 

http_access deny all 

Dies bedeutet, daß nur von den Rechnern der SYSNET auf den Proxy zugegriffen werden darf. Weitere Einschränkungen sind hier derzeit nicht notwendig. Bei dieser Angabe muß unbedingt auf die Reihenfolge geachtet werden, da die Zugriffsrechte von oben nach unten abgearbeitet werden. Würde z.B. http_access deny all in der ersten Zeile stehen, könnte kein Client auf den Proxy zugreifen, da alle IP-Adressen auf diese ACL zutreffen.

Für den ICP-Port können ebenso Einschränkungen gemacht werden. Dies ist aber hier nicht notwendig. Die Einstellung ist also

 

icp_access allow all 

Es gibt noch eine Reihe weiterer Einstellungsmöglichkeiten, die jedoch hier nicht von Bedeutung sind und daher nicht erläutert werden. Sie wurden, soweit vorhanden, bei den Stan-dardeinstellungen belassen. Auf die Performance des Proxy-Caches haben sie keinen oder nur unbedeutenden Einfluß.
Ein Teil dieser Optionen dient zum Konfigurieren des Caches, wenn dieser im Accelerator-Mode gestartet wird. Da dies hier nicht zutrifft, können diese Einstellungen ebenfalls ignoriert werden.