Proxy-Server squid
Ein Proxy-Server hat die Aufgabe, alle abgefragten Internetseiten zu speichern und bei einer erneuten Anfrage auf die bereits gespeicherten Seiten zurückzugreifen. Dadurch kann auf häufig besuchte Seiten viel schneller zugegriffen werden, als wenn die Anfrage die langsame Internetverbindung bemüht.
Squid ist hierfür bestens geeignet. Damit squid auch als FTP-Proxy fungiert, muss mindestens die Version "Version 2.3.STABLE4" verwendet werden. Ältere Versionen unterstüzen nur das HTTP-Protokoll.
tar xfj squid-2.5.STABLE4.tar.bz2 cd squid-2.5.STABLE4 ./configure --sysconfdir=/etc/squid --enable-ssl --enable-linux-netfilter make make install
Die letzte Option beim Configure-Skript aktiviert transparentes Proxy. Was das ist und wozu man es verwendet, wird weiter unten erläutert. Nach erfolgreicher Kompilation finden sich die Squid-Startdateien in /usr/local/squid/bin. Die Konfiguration findet in /etc/squid/squid.conf statt.
http_port 3128 cache_mem 8 MB cache_swap_low 90 cache_swap_high 95 maximum_object_size 65536 KB minimum_object_size 0 KB cache_dir ufs /squid_cache 4000 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log emulate_httpd_log off mime_table /etc/squid/mime.conf pid_filename /var/lock/squid.pid debug_options ALL,0 log_fqdn off ftp_user Squid@krypton.laas.priv ftp_list_width 96 ftp_passive off dns_nameservers 192.168.0.1 unlinkd_program /usr/bin/unlinkd refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 reference_age 2 month quick_abort_pct 80 connect_timeout 120 seconds request_timeout 60 seconds shutdown_lifetime 30 seconds acl all src 0.0.0.0/0.0.0.0 acl laas src 192.168.0.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl manager proto cache_object acl Protocols proto HTTP FTP SSL acl Safe_ports port 20 21 22 80 443 acl Methods method CONNECT GET PUT HEAD INFO http_access allow manager localhost http_access deny manager http_access allow Protocols laas http_access deny !Safe_ports http_access deny !Methods http_access deny all icp_access deny all miss_access allow all cache_mgr webmaster@mail.laas.de cache_effective_user squid cache_effective_group nogroup visible_hostname proxy.laas.de append_domain .laas.priv forwarded_for off anonymize_headers deny From Referer Server icon_directory /etc/squid/icons error_directory /etc/squid/errors
Man sollte bei der Konfiguration den Speicherbedarf des temporären Verzeichnisses einplanen. Die hier vorgestellte Konfiguration geht von 4 GByte aus. In der angegebenen Beispielkonfiguration ist allen Nutzern des lokalen Netzes erlaubt worden, squid zu benutzen.
Die Nutzer müssen in ihrem Browser für HTTP-, HTTPS- und FTP-Verbindungen unseren Rechner angeben. In allen Fällen wird der Port 3128 verwendet, wenn nicht anders in der squid-Konfiguration festgelegt.
Transparenter Proxy
Ein transparenter Proxy ist ein Zwischenspeicher, der von den Benutzern nicht extra im Browser eingestellt werden muss. Im großen und Ganzen funktioniert das derart, dass ihre Anfragen "heimlich" über den Proxy geleitet werden, ohne dass sie das beeinflussen können. Der Vorteil liegt auf der Hand. Die Nutzer müssen im Browser keinen Proxy eintragen, was gerade bei einer größeren Anzahl von Rechnern viel Arbeit ersparen kann.
Squid ist in der Lage, transparentes Proxying anzubieten. Dazu werden in der Konfigurationsdatei die folgenden Optionen aktiviert.
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on
Ferner muss noch die Firewall angepaßt werden. Dazu werden alle Pakete, die auf dem internen Netzgeräten ankommen (hier: eth0 und eth1) mit Zielport 80 auf den Proxy geleitet. Die Regel sieht in diesem Fall so aus und sollte am besten vor allen anderen Regeln zum externen Netzwerk stehen:
#lokales Netz LAN="192.168.0.0/16" #Interface (LAN) i="eth0" $IPTABLES -A PREROUTING -t nat -i $i -p tcp -d ! $LAN --dport 80 \\ -s $LAN -j REDIRECT --to-port 3128