Squid – Proxyeinrichtung unter Linux

Proxy-Server sind hauptsächlich für das Cachen von Webseiten bzw. Kontrolle und / oder Reglementierung von Internetzugriffen verantwortlich – ein gut konfigurierter Proxy spart Bandbreite (auch wenn das im xDSL-Zeitalter nicht mehr ganz so von Belang ist) und hindert auch den ein oder anderen Kollegen erfolgreich daran, am Arbeitsplatz allzu offen privat zu surfen. Ein jeder, der sich schon mal genauer mit dem Thema “Proxy-Server” beschäftigt hat, wird schon einmal den Begriff “Squid” gehört haben – quasi DAS Synonym für einen Proxy-Server unter Linux. Als Alternativen stehen viele andere Produkte bereit, das berühmteste (leider auch teuerste) Beispiel wäre hier Microsofts ISA (Internet Security and Acceleration) Server. Im Verlaufe dieses Tutorials wollen wir uns aber dem quelloffenen Tintenfisch (Squid) sowie seiner Kompilierung und Ersteinrichtung widmen, um dem Ziel, einen eigenen Proxy-Server erfolgreich einzusetzen, ein wenig näher zu kommen!

Wie üblich, steht am Anfang immer die Quelle bzw. das Quellpaket, welches Ihr von http://www.squid-cache.org herunterladen könnt und in Eurem gewünschten Zielpfad (bei mir wie gewohnt /usr/local) herunterladen könnt. Anschliessend wird das Paket durch Eingabe von

“tar zxvf squid-3.0.STABLE24.tar.gz”

entpackt und wir wechseln durch Eingabe von

“cd /usr/local/squid-3.0.STABLE24”

in das soeben frisch entpackte Verzeichnis. Wie gewohnt, müssen wir nun den Squid-Server auf die Bedürfnisse unseres Systems zuschneiden und das geht über das bekannte “configure”-Skript, wobei wir dieser Installationsroutine den ein oder anderen individuellen Parameter übergeben. Wer eine genauere Übersicht der Befehle sucht, kann die wie üblich über Eingabe des Befehls

“./configure –help”

im Quellverzeichnis finden und – die wie üblich erschlagende Anzahl von Optionen – genauer nachlesen. Erstellen wir also gemäss dem folgenden Beispiel (die Bedeutungen der einzelnen Schalter sind grösstenteils selbsterklärend bzw. können in der Hilfe des Konfigurationsskriptes nachgelesen werden) unser Makefile:

“./configure –prefix=/usr/local/squid –enable-icmp –enable-useragent-log –enable-referer-log –enable-ssl –enable-default-err-language=German –enable-linux-netfilter”

Wie bereits gewohnt sollten diverse Abhängigkeiten (openSSL) im System bereits erfüllt werden, da es sonst zum Abbruch des Skriptes samt passender Fehlermeldung kommt. Nun wenden wir uns per Eingabe von

“make all”

dem eigentlichen Kompilierungsvorgang zu, der ebenfalls problemlos durchlaufen sollte und uns im Falle eines Fehlers wieder entsprechend informiert. Installiert werden dann die neuen Binärdateien durch Eingabe von

“make install”

an ihren Zielort im System kopiert. Der eigentliche Installationsvorgang ist nun abgeschlossen. Vor dem erstmaligen Starten des Proxy-Servers sollte sich aber ein jeder noch der Konfigurationsdatei “squid.conf” im Verzeichnis /usr/local/squid/etc widmen, in dem unter anderem der Benutzer und die Gruppe, unter denen der Cache-Dämon laufen soll, anzupassen sind. In meinem Fall habe ich durch Eingabe der Befehle

“groupadd squid” und
“useradd squid -g squid”

den Benutzer “squid” und die Gruppe “squid” angelegt, wobei der User logischerweise auch Mitglied dieser Gruppe ist. Diese Benutzer- und Gruppenkonfiguration ist in der mir vorliegenden Datei in Zeile 2935 (“cache_effective_user”) und 2955 (“cache_effective_group”) zu finden. Sobald dies geändert wurde, müssen wir noch die Benutzerrechte auf das Cache- und Logverzeichnis durch Eingabe von

“chown squid.squid /usr/local/squid/var -R”

ändern, da diese Verzeichnisse ja noch vom aktuellen Root-Benutzer erstellt wurden und der Squid-Dämon ja nicht als Root läuft bzw. laufen sollte! Auch das PID-File, das ja den Status darüber liefert, ob der Cache läuft oder nicht, kann in Zeile 2006 (“pid_filename”) der squid.conf noch vom störenden “Lattenkreuz” befreit und somit aktiviert werden.

Schlussendlich erfolgt nun noch das Initialisieren des eigentlichen Cacheverzeichnisses, welches noch durch Eingabe von

“/usr/local/squid/sbin/squid -z”

einmalig geschieht. Dies sollte nach den vorherigen Anpassungen ohne Probleme erfolgen und uns somit einen funktionsfähigen und grundeingerichteten Proxyserver bescheren, welcher durch Eingabe von

“/usr/local/squid/sbin/squid”

zu starten ist. Trägt man dann im Browser die IP des Linux-Servers samt Proxy-Port (in meinem Falle die 192.168.15.5, Port 3128) ein und surft auf die ein oder andere Seite, sollte der Squid bereits diese Inhalte cachen. Final können wir dies verfolgen, indem wir einfach ein Echzeitmonitoring auf die Logdatei “access.log” durch Eingabe des Befehls

“tail -f /usr/local/squid/var/logs/access.log”

durchführen – voila, unsere gecachten Dokumente sind in diesem Logfile schon zu finden, was letztendlich heisst: Der Proxyserver funktioniert!

Wie bereits von meinen Tutorials gewohnt, ist auch dies nur ein kleiner Einstieg in die Funktionsweise einer selbstkompilierten Linux-Software, denn ob nun selbstkompiliert oder direkt via “apt-get” oder “rpm” installiert, es gilt immer: Die letztendliche Konfiguration übernimmt immer noch der Benutzer bzw. der Administrator – und wie immer gibt es auch viele unzählige Optionen, die dem einen wichtig, dem anderen eher unwichtig erscheinen, daher rate ich an dieser Stelle auch: Zieht die Dokumentation der Software zu Rate und passt Euch das Produkt gezielt auf Eure Bedürfnisse an, es lohnt sich!

Bei Fragen, Anmerkungen oder Ergänzungen nutzt bitte die Kommentarfunktion oder das Kontaktformular auf dieser Webseite!

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*