Για να εγκατασταθεί το squid απλά εκτελούμε
aptitude install squid squid-prefetch
Στην αρχική του εγκατάσταση το squid ρυθμίζεται σαν απλός τοπικός proxy για http και ftp και μπορεί άμεσα να χρησιμοποιηθεί εάν στις ρυθμίσεις σύνδεσης του browser μας τοποθετήσουμε την διεύθυνση localhost και την θύρα 3128
Βασικές ρυθμίσεις που πρέπει να γίνουν στο squid είναι ο ορισμός του μέγιστου αποθηκευτικού χώρου στο δίσκο. (π.χ. 10GB)
cache_dir ufs /var/spool/squid3 10240 16 256
και το μέγιστο μέγεθος αρχείου που θα κρατιέται στην cache (π.χ. 32ΜΒ).
maximum_object_size 32768 KB
Το squid ως transparent proxy για την θύρα 80, μπορεί να χρησιμοποιείται σε ένα δίκτυο χωρίς να υπάρχει ιδιαίτερη ρύθμιση στους υπολογιστές πελάτες.
Θεωρούμε ότι ήδη ο υπολογιστής που θα στηθεί το squid κάνει και προώθηση πακέτων, είναι δηλαδή και router. (βλ Απλή Δρομολόγηση)
Θα ρυθμίσουμε αρχικά το squid ως transparent proxy. Τροποποιούμε το αρχείο /etc/squid3/squid.conf
http_port 3128 transparent acl localnet src 192.168.0.0/16 http_access allow localnet http_access allow localhost
Στην συνέχεια προσθέτουμε στο script που κάνει routing τις παρακάτω εντολές, ώστε όλα τα πακέτα που αιτούνται ιστοσελίδες να εξυπηρετούνται από το squid. (Όπου eth0 to interface που συνδέεται με το τοπικό δίκτυο lan)
Για για οδηγούνται οι αιτήσεις ιστοσελίδων διάφανα μέσω squid από τον ίδιο τον υπολογιστή που έχει ρυθμιστεί το squid
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j ACCEPT iptables -t nat -A OUTPUT -p tcp --dport 3128 -m owner --uid-owner proxy -j ACCEPT iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128
Για τους clients του τοπικού δικτύου που ήδη δρομολογούνται στο internet μέσω του υπολογιστή που έχει ρυθμιστεί το squid (όπου eth0 η διεπαφή που είναι συνδεδεμένοι οι clients)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Πολλές φορές η ρύθμιση ενός transparent proxy δημιουργεί προβλήματα στην πρόσβαση σε έναν webserver στο τοπικό δίκτυο. Ούτως ή άλλως έχουμε απώλεια και όχι κέρδος στην ταχύτητα όταν γίνεται η πρόσβαση ενός τοπικού webserver μέσω proxy.
Π.χ. εάν το τοπικό δίκτυο μας είναι το 192.168.1.0/24 Μπορούμε να τροποποιήσουμε τις παραπάνω iptable εντολές ως εξής:
Αντί για την εντολή
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128
την εντολή
iptables -t nat -A OUTPUT -p tcp --dport 80 ! -d 192.168.1.0/24 -j REDIRECT --to-ports 3128
και για τους clients του τοπικού δικτύου, αντί για
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
την εντολή
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 ! -d 192.168.1.0/24 -j REDIRECT --to-port 3128
Εάν θέλουμε να εμποδίσουμε την πρόσβαση σε κάποια sites κάνουμε την παρακάτω ρύθμιση στο /etc/squid3/squid.conf
acl block_url dstdomain "/etc/squid3/block_url.conf" http_access deny block_url
Στην συνέχεια δημιουργούμε το αρχείο /etc/squid3/block_url.conf και προσθέτουμε εγγραφές όπως οι παρακάτω
.games.com .facebook.com .youtube.com .hi5.com
Για να δούμε τις ενέργειες που κάνει το squid εκτελούμε
tail -f /var/log/squid3/access.log
Για να διαγράψουμε την cache
/etc/init.d/squid3 stop rm -rf /var/squid3/cache/* /etc/init.d/squid3 start
Εναλλακτικά υπάρχει το squidview
aptitude install squidview
Εάν χρησιμοποιούμε το squi3 θα πρέπει να τροποποιήσουμε τον σύνδεσμο ~/.squidview/log1 ώστε να δείχνει στο /var/log/squid3/access.log
Εκτελούμε
squidview
Θα δημιουργήσει τον φάκελο ~/.squidview και θα μας βγάλει μήνυμα μεταξύ άλλων
The squid log file doesn't exist or is of zero size
Στην συνέχεια εκτελούμε
rm ~/.squidview/log1 ln -s /var/log/squid3/access.log ~/.squidview/log1
Πλέον μπορούμε να δούμε τα στατιστικά με την εντολή
squidview
Για εξαγωγή στατιστικών και αποστολή σε καθημερινό e-mail στον root μπορούμε να εγκαταστήσουμε το calamaris
aptitude install calamaris
Για να πάρουμε μια ιδέα από τα στατιστικά που εμφανίζει
cat /var/log/squid3/access.log | calamaris
Για μια πιο αναλυτική κατάσταση σε html μορφή
cat /var/log/squid3/access.log | calamaris -F 'html' -D 2 -d -1 -R -1 -s -t -1 > results.html firefox results.html