Squid
SQUID
Einleitung
Squid (http://www.squid-cache.org/) ist ein Proxy-Server für das HTTP-Protokoll. Er kann aber auch mit HTTPS- und FTP-Verbindungen umgehen. Man kann damit oft aufgerufene Seiten zwischenspeichern. Dies spart Bandbreite bei langsamen Verbindungen. Weiterhin lassen sich bestimmte URLs blockieren bzw schadhafte Dateien ausfiltern. Er wird meist auf dem Gateway, der die Internetverbindung bereitstellt, installiert.
Konfiguration
Squid kann bei allen Linuxdistributionen als Paket installiert werden. Die Konfiguration erfolgt über die Konfigurationsdatei /etc/squid/squid.conf (Minimalkonfiguration):
visible_hostname redir.local http_port 3128 cache_mem 8 MB cache_dir ufs /var/cache/squid 100 256 16 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl allowed_hosts src 192.168.1.0/255.255.255.0 http_access allow manager localhost http_access deny manager all http_access allow allowed_hosts http_access deny all icp_access allow allowed_hosts icp_access deny all cache_effective_user daemon access_log none cache_store_log none
Wichtig sind folgende Parameter:
- cache_mem 8 MB - dies ist die Größe des Hauptspeichers, die Squid benutzen darf
- cache_dir ufs /var/cache/squid 100 256 16 - dies gibt das Verzeichnis an, wo Squid den Zwischenspeicher vorhält und wie gross der Platzbedarf sein darf (100MiB), Anzahl der Unterverzeichnisse im Zwischenspeicherverzeichnis (16) und Anzahl der Unterverzeichnisse in Unterverzeichnissen vom Zwischenspeicherverzeichnis (256). Man muss eigentlich nur die Größe anpassen (100MiB).
- acl allowed_hosts src 192.168.1.0/255.255.255.0 - Dies gibt das Netzwerk der Clients an und muss mit dem Netzwerk des LAN übereinstimmen. Ohne diese Regel dürfen die Clients den Proxy nicht benutzen.
Normalerweise müssen die Clients im Webbrowser den Proxyserver eintragen (IP-Adresse des Servers und Port 3128). Es besteht aber auch die Möglichkeit, dass Squid transparent läuft. Hierfür muss zuerst eine Portredirekt per iptables eingerichtet werden (eth0 ist die LAN-Schnittstelle, wo die Clients angeschlossen sind):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
In der Konfigurationsdatei sind folgende Zeilen anzufügen:
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on
Wer weiterführende Konfigurationen benötigt, kann unter Squid-Konfigurationsdirektiven (http://www.squid-cache.org/Doc/config/) auf der Squid-Seite nachschlagen.