Squid - ein leistungsstarker Proxy Drucken

Inhalt

 


 


Was ist Squid?


 

Bei Squid handelt es sich um einen so genannten Proxy Server unter anderem für die Protokolle http und ftp. Das heißt, die Software hält besonders häufig angeforderte Web-Seiten, deren Bilder und andere Elemente lokal vor. Auch speichert sie die Anfragen an DNS-Server zwischen. Ruft nun ein Surfer aus dem lokalen Netzwerk eine Web-Seite auf, kann Squid sie im günstigsten Falle aus seinem Cache ausliefern - ohne dafür Daten erneut aus dem Internet laden zu müssen.

Dies reduziert das Datenaufkommen. Auch Geschwindigkeitsgründe können für den Einsatz von Squid sprechen. Schließlich fließen Daten im lokalen Netzwerk in der Regel schneller als übers Internet.

Ich beschreibe hier den Einsatz von Squid unter dem Betriebssystem Windows.

 


Voraussetzungen



Als Betriebssystem sollte mind. Windows 2000 oder besser vorhanden sein. Neben dem Arbeitsspeicherbedarf von Windows sollte auch noch 64 MB für Squid verfügbar sein. Eine schnelle Festplatte mit ausreichender Kapazität für das Betriebssystem und Squid setze ich voraus.

 


Quellen


 

Squid für Windows (angepasste Version)
http://www.acmeconsulting.it/SquidNT.html
Squid für Linux (Entwicklerseite)
http://www.squid-cache.org/

 


Installation


 

Damit nachher nicht zuviel zu konfigurieren ist, wird die ZIP-Datei nach C:\squid entpackt. Andere Verzeichnisse sind auch möglich, jedoch müssen dann die Verzeichniseinträge in der squid.conf angepasst werden.

 


Konfiguration



Squid wird durch die Konfigurationsdatei ..\squid\etc\squid.conf gesteuert. Hier sind die wichtigsten Einträge anzupassen.

#setzen des Proxy Ports - über diesen wird Squid vom Browser angesprochen


http_port 3128

#Deaktivierung des ICP Ports über den sich benachbarte Proxy-Server unterhalten


icp_port 0

# Cachegröße Arbeitsspeicher - mit 64 MB habe ich gute Erfahrungen gemacht

cache_mem 64 MB

#Durch diesen Eintrag erhält squid die Möglichkeit 250MB an Daten zwischenzuspeichern.
#Die anderen beiden Werte geben Auskunftüber die Beschaffenheit des Caches.
#16 Cache-Verzeichnisse der ersten Ebene und 256 Verzeichnisse der zweiten Ebene.
#Hierkönnen die Standardwerte übernommen werden.
#WICHTIG: unter Windows darf das "Dateisystem" (ufs) NICHT geändert werden!


cache_dir ufs /var/spool/squid 250 16 256

#Es macht Sinn keine CGI skripte zu cachen


acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

#Setzen der Logfiles. Falls Squid nicht nach C:\squid installiert wurde müssen die
#Pfadangaben angepasst werden.


cache_access_log c:/squid/var/logs/access.log
cache_log c:/squid/var/logs/cache.log
cache_store_log c:/squid/var/logs/store.log

#Eine Regel um den internen Verkehr zu erlauben. Als lokales Lan nehme ich hier
#192.168.1.0 an und muß ggf. angepasst werden. Dazu wird die Variable INTERNAL
#mit dem IP-Bereich definiert. Dann wird der IP-Bereich für freigegeben.
#Abschliessend werden alle anderen IPs ausgeschlossen.


acl INTERNAL src 192.168.1.0/255.255.255.0
http_access allow INTERNAL
http_access deny all

Die Syntax der ACL:

acl


Optionale Einträge im ACL-Bereich:

#Als Beispiel einen PC ausschließen

acl BADPC src 192.168.1.25
http_access deny BADPC

#den Zugriff einiger PCs auf einen bestimmten Zeitraum einschränken

acl timewindow src 192.168.1.25
acl CLEANTIME MTWHF 15:00-18:00
http_access deny timewindow CLEANTIME

#MP3 Dateien blocken

acl FILE_MP3 urlpath_regex -i \.mp3$
http_access deny FILE_MP3

#Falls im eigenen Netzwerk kein DNS-Server zur Verfügung steht, muss Squid
#gesagt werden, wie er die Namensauflösung durchführen soll.
#dns_nameservers
#IP Adressen sind Beispiele und müssen ggf. angepasst werden.

 

dns_nameservers 145.253.2.11 145.253.2.75 145.253.2.203


#Den FQDN der Webserver nicht auflösen, da dies Performance kostet


log_fqdn off

#Aktives FTP ist zu vermeiden, deshalb auf passiv setzen


ftp_passive on

#Bei FTP-Zugriffen wird der hier definierte Benutzernamen verwendet


ftp_user Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.

#Der Hostname des Proxys


visible_hostname proxy


Cache Verzeichnisse erzeugen

 

Aufruf der squid.exe mit dem Parameter -z . Muss bei jeder Änderung an der Cachegröße durchgeführt werden.

Squid.exe -z

 


Squid starten, Squid als Dienst, Komandozeilenparameter



Squid starten:

squid.exe ggf. mit Parameter -f den Pfad zur squid.conf angeben

Squid als Dienst starten:

squid -i -n SQUID

Squid-Dienst stoppen:

squid -k shutdown

Squid-Dienst deinstallieren:

 

squid -r

Parameter von Squid.exe anzeigen:

squid -h

 


Absicherung, Sicherheitsuntersuchung


Eine Sicherheitsuntersuchung des Squid Proxy-Servers durch das BSI (Bundeamt für Sicherheit in der Informationstechnik) ist unter der folgenden Adresse zugänglich:

http://www.bsi.de/literat/studien/squid/index.htm

 


Die Logdateien von Squid


 

Dateiname:
Bedeutung:
squid.out Startmeldungen von Squid
cache.log Sehr ausführliche Meldungen und Statistik-Informationen des Squid
access.log Hier wird jeder einzelne Zugriff auf den Proxy protokolliert
store.log
Verzeichnis der gespeicherten Dateien

 


Überwachung



Nachdem SQUID installiert und fertig konfiguriert ist, stellt sich die Frage nach der Überwachung. Dazu gibt es verschiedene Ansätze, die jeweils ihre Vor- und Nachteile haben. Die einfachste Art der Überwachung ist, sich die neuen Einträge des Squid-Logfiles anzuschauen.

Diese Form der Auswertung ist aber bezüglich der Proxy-Nutzung nur begrenzt aussagekräftig. Abhilfe schaffen der Cachemanager von Squid oder externe Tools wie Webalizer oder AWStats.

Diese Programme erstellen unter anderem Übersichten über die Anzahl der Anfragen und übertragenen Bytes sowie Tagesstatistiken. Die Nutzung dieser Programme im Zusammenspiel mit Squid werde ich in einem seperaten Artikel beschreiben.

 


Update



Bevor ein Update durchgeführt wird, muss als Erstes die Konfigurationsdatei (squid.conf) gesichert werden!

Dann muss der laufende Squid-Prozess vollständig beendet werden. Beispiel:

squid -k shutdown

Der Shutdown kann je nach Installation einige Minuten in Anspruch nehmen. Wenn Squid wirklich beendet ist, kann die neue Version installiert werden. Ein vorheriges Entfernen der alten Version ist i.d.R. nicht notwendig. Als Letztes wird die Konfigurationsdatei auf ggf. geänderte Optionen geprüft um die neue Squid-Version dann zu starten.

 


Erweiterungen für Squid


 

SquidGuard
SquidGuard ist eine Erweiterung zu Squid, mit der bestimme Seiten beim Surfen gefiltert werden können. Diese Filterung geschieht entweder anhand der von SquidGuard „mitgelieferten“ Datenbank oder anhand von selbst definierten Listen
Squid-vscan Patch
Eine weitere Möglichkei, Squid zu erweiter, bietet das OpenAntiVirus-Projekt mit Squid-vscan. Squid-vscan steht als Patch für Squid zur Verfügung, der Squid um einen Virenscanner erweitert

 

 


Weiterführende Informationen



Siehe im Bereich Hauptmenü - unter dem Punkt Links / SQUID .

 


Alternativen zu Squid


Programm
Homepage
Bemerkung
Jana Server
www.jana-server.de Proxy, E-Mail-Server
AVM Ken!
www.avm.de
Proxy
Fli4l www.fli4l.de
Routing, Firewall
Sambar www.sambar.com
Proxy, E-mail, FTP usw.

Dies ist nur eine kleine Auswahl von verfügbaren Programmen.

06/2009  www.netz-forum.de