33.4. Squid starten

Der Squid auf SUSE LINUX ist bereits soweit vorkonfiguriert, dass man ihn sofort nach der Installation starten kann. Als Voraussetzung für einen reibungslosen Start sollte das Netzwerk soweit konfiguriert sein, dass mindestens ein Nameserver und das Internet, dessen Daten man cachen möchte, erreichbar sind. Probleme kann es bereiten, wenn man eine Wählverbindung mit dynamischer DNS-Konfiguration verwendet. In so einem Fall sollte mindestens der Nameserver fest eingetragen sein, da Squid erst gar nicht startet, wenn er in der /etc/resolv.conf keinen DNS-Server findet.

33.4.1. Start- und Stopp-Befehle

Um Squid zu starten, gibt man auf der Kommandozeile (als root) den Befehl rcsquid start ein. Beim ersten Mal wird zunächst die Verzeichnisstruktur in /var/squid/cache angelegt. Dies wird vom Startskript /etc/init.d/squid automatisch durchgeführt und kann ein paar Sekunden bis Minuten dauern. Erscheint rechts in grün done, wurde Squid erfolgreich gestartet. Auf dem lokalen System kann man die Funktionsfähigkeit von Squid sofort testen, indem man im Browser als Proxy localhost und als Port 3128 einträgt.

Um den Zugriff auf Squid und somit das Internet für alle zu ermöglichen, braucht man in der Konfigurationsdatei /etc/squid/squid.conf lediglich den Eintrag http_access deny all auf http_access allow all zu ändern. Allerdings sollte man dabei bedenken, dass man den Squid damit komplett für jedermann öffnet. Von daher sollte man unbedingt ACLs definieren, die den Zugriff auf den Proxy regeln. Dazu mehr unter Abschnitt 33.5.2, „Optionen zur Zugriffskontrolle“.

Hat man Änderungen an der Konfigurationsdatei /etc/squid/squid.conf vorgenommen, muss Squid diese neu einlesen; das geschieht mit dem Befehl: rcsquid reload. Alternativ kann man Squid auch komplett neu starten: rcsquid restart.

Mit dem Befehl rcsquid status kann man feststellen, ob der Proxy läuft; mit rcsquid stop wird Squid beendet. Das Stoppen kann eine Weile dauern, da Squid bis zu einer halben Minute (Option shutdown_lifetime in /etc/squid/squid.conf) wartet, bevor die Verbindungen zu den Clients unterbrochen werden, und da er dann noch seine Daten auf Platte schreiben muss.

[Warning]Beenden von Squid

Beendet man Squid mit kill oder killall, kann das einen beschädigten Cache zur Folge haben, Ist der Cache beschädigt, muss man diesen löschen, um Squid überhaupt wieder starten zu können.

Beendet sich Squid nach kurzer Zeit, obwohl er anscheinend erfolgreich gestartet wurde, kann das an einem fehlerhaften Nameserver-Eintrag oder an einer fehlenden /etc/resolv.conf liegen. Den Grund für einen gescheiterten Start protokolliert Squid in der Datei /var/squid/logs/cache.log . Soll Squid bereits beim Booten automatisch gestartet werden, muss im Runlevel-Editor von YaST Squid für die gewünschten Runlevel aktiviert werden. Siehe Abschnitt 2.7.7, „System Services (Runlevel)“.

Bei einer Deinstallation von Squid werden weder die Cache-Hierarchie noch die Protokoll-Dateien entfernt. Man muss das Verzeichnis /var/cache/squid manuell löschen.

33.4.2. Lokaler DNS-Server

Einen lokalen DNS-Server aufzusetzen, ist durchaus sinnvoll, auch wenn dieser keine eigene Domain zu verwalten hat. Er fungiert dann lediglich als „Caching-only“-Nameserver und kann ohne spezielle Konfiguration DNS-Anfragen über die Root-Nameserver auflösen; zum Hintergrund vgl. Abschnitt 24.2, „Nameserver BIND starten“. Wie dies geschieht, ist davon abhängig, ob Sie während der Konfiguration der Internet-Verbindung dynamisches DNS wählen oder nicht.

Dynamisches DNS

Bei dynamischem DNS wird der DNS-Server während des Aufbaus der Internet-Verbindung vom Anbieter gesetzt, und die lokale Datei /etc/resolv.conf wird automatisch angepasst. Dieses Verhalten wird durch die sysconfig-Variable MODIFY_RESOLV_CONF_DYNAMICALLY erreicht, die auf YES gesetzt ist. Setzen Sie diese Variable mit Hilfe des YaST-sysconfig-Editors auf NO (siehe Abschnitt 7.8, „Der YaST Sysconfig-Editor“). Dann geben Sie den lokalen DNS-Server in der Datei /etc/resolv.conf an, indem Sie die IP-Adresse 127.0.0.1 für localhost setzen. So findet Squid beim Starten immer den lokalen Nameserver.

Um Zugriff auf den Nameserver des Providers zu ermöglichen, muss dessen Name in der Konfigurationsdatei /etc/named.conf unter forwarders zusammen mit seiner IP-Adresse eingegeben werden. Bei dynamischem DNS kann dies durch die sysconfig-Variable MODIFY_NAMED_CONF_DYNAMICALLY, die auf YES gesetzt werden muss, automatisch während des Verbindungsaufbaus erreicht werden.

Statisches DNS

Bei statischem DNS werden während des Verbindungsaufbaus in Bezug auf DNS keine automatischen Anpassungen vorgenommen. Daher brauchen keine sysconfig-Variablen geändert werden. Geben Sie den lokalen DNS-Server wie oben beschrieben in der Datei /etc/resolv.conf ein. Außerdem muss der statische Nameserver des Anbieters manuell in der Datei /etc/named.conf unter forwarders zusammen mit seiner IP-Adresse eingegeben werden.

[Tip]DNS und Firewall

Falls auf Ihrem System eine Firewall läuft, sorgen Sie dafür, dass DNS-Anfragen diese passieren können.


SUSE LINUX Administrationshandbuch 9.3