Aufbaubeispiel

Schematischer Aufbau Proxy Deamon in der DMZ

Schematischer Aufbau Proxy Deamon in der DMZ

Benötigte Pakete

Folgende Pakete werden nach der Grundinstallation noch benötigt:

apt-get install gcc make

 

Installationsquelle

Die tar.gz Datei einfach von der offiziellen Quelle bei Squid Cache herunter laden.

Kompilieren

zusätzlich zur Standardkonfiguration wird der ICAP Support aktiviert.

./configure
./configure -~-enable-icap-suppor
 

Konfiguration

Bei der default Installation kann der squid deamon das Verzeichnis /usr/local/squid/var/cache nicht erstellen.

mkdir /usr/local/squid/var/cache
mkdir /usr/local/squid/var/logs
chmod -R 777 /usr/local/squid/var/cache
chmod -R 777 /usr/local/squid/log

 

Grundeinstellungen

Im ersten Schritt Clients den Zugriff auf den Proxy erlauben. Hierbei wird die Konfigurationsdate /usr/local/squid/etc/squid.conf angepasst.

acl localnet src 172.170.34.0/22
acl wlannet src 172.170.48.0/24
acl serverlan src 172.170.90.0/23
acl blglan src 192.168.120.0/23

http_access allow localnet
http_access allow serverlan
http_access allow guestlan
http_access allow wlannet

 

Cache aufbauen

Für den ersten Start muss noch der Cache initialisiert werden:

/usr/local/squid/sbin/squid -z

 

Automatische Blacklist

Um Verbotene Seiten automatisch zu blocken, wird von current.domain eine Blacklist als txt Datei heunter geladen. Die Dateigröße beträgt knapp 10 MByte und umfasst knapp 544.000 URLs.

Folgende Zeilen müssen in die Konfigurationsdatei /usr/local/squid/etc/squid.conf eingetragen werden.

acl spammers url_regex "/usr/local/squid/etc/sa-blacklist.current.domains"
http_access deny all spammers

Der Swap Space sollte mindestens 1 GB groß sein, da sonst beim starten mit der Blacklist ein page error erfolgt.

 

testen der Einstellungen

/usr/local/squid/sbin/squid -N -d 2

folgendes Ergebnis sollte man sehen:

2009/05/12 10:46:04| Starting Squid Cache version 2.7.STABLE6 for i686-pc-linux-gnu...
2009/05/12 10:46:04| Process ID 22921
2009/05/12 10:46:04| With 1024 file descriptors available
...
2009/05/12 10:46:04| WCCP Disabled.
2009/05/12 10:46:04| Ready to serve requests.
2009/05/12 10:46:10| Done reading /usr/local/squid/var/cache swaplog (60 entries)
2009/05/12 10:46:10| Finished rebuilding storage from disk.
2009/05/12 10:46:10| 60 Entries scanned
2009/05/12 10:46:10| 0 Invalid entries.
2009/05/12 10:46:10| 0 With invalid flags.
2009/05/12 10:46:10| 60 Objects loaded.
2009/05/12 10:46:10| 0 Objects expired.
2009/05/12 10:46:10| 0 Objects cancelled.
2009/05/12 10:46:10| 0 Duplicate URLs purged.
2009/05/12 10:46:10| 0 Swapfile clashes avoided.
2009/05/12 10:46:10| Took 5.6 seconds ( 10.7 objects/sec).
2009/05/12 10:46:10| Beginning Validation Procedure
2009/05/12 10:46:10| Completed Validation Procedure
2009/05/12 10:46:10| Validated 60 Entries
2009/05/12 10:46:10| store_swap_size = 632k
2009/05/12 10:46:11| storeLateRelease: released 0 object

 

automatisches Startskript

Squid bietet kein Startskript nach der Installation zur Verfügung. Daher wird die Datei /etc/init.d/squid angelegt:

#!/bin/sh
#
# Basic startup script for Squid
#
case "$1" in
start)
echo "Starting Squid"
/usr/local/squid/bin/RunCache > /dev/null 2>&1 &
;;
stop)
echo "Shutting down Squid"
/usr/bin/killall -q RunCache
/usr/local/squid/sbin/squid -k shutdown
;;
restart)
echo "Restarting Squid"
/usr/local/squid/sbin/squid -k reconfigure
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Damit beim booten das Sktipt läuft, muss es noch ausführbar gemacht werden:

chmod a+x /etc/init.d/squid

 

logs automatisch in den Müll

Damit der Server nicht überläuft mit Logs können folgende Files nach /dev/null umgeleitet werden:

ln -s /dev/null /usr/local/squid/var/logs/store.log
ln -s /dev/null /usr/local/squid/var/logs/access.log
ln -s /dev/null /usr/local/squid/var/logs/cache.log