Table of Contents

Squid - proxy server

Εγκατάσταση

Για να εγκατασταθεί το squid απλά εκτελούμε

aptitude install squid squid-prefetch

Στην αρχική του εγκατάσταση το squid ρυθμίζεται σαν απλός τοπικός proxy για http και ftp και μπορεί άμεσα να χρησιμοποιηθεί εάν στις ρυθμίσεις σύνδεσης του browser μας τοποθετήσουμε την διεύθυνση localhost και την θύρα 3128

Ρυθμίσεις

Cache Size

Βασικές ρυθμίσεις που πρέπει να γίνουν στο squid είναι ο ορισμός του μέγιστου αποθηκευτικού χώρου στο δίσκο. (π.χ. 10GB)

cache_dir ufs /var/spool/squid3 10240 16 256

και το μέγιστο μέγεθος αρχείου που θα κρατιέται στην cache (π.χ. 32ΜΒ).

maximum_object_size 32768 KB

Transparent Proxy

Το 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
Παράκαμψη proxy για τοπικό webserver

Πολλές φορές η ρύθμιση ενός 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

url blocking

Εάν θέλουμε να εμποδίσουμε την πρόσβαση σε κάποια 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  

Logs

Γενικά

Για να δούμε τις ενέργειες που κάνει το squid εκτελούμε

tail -f /var/log/squid3/access.log

Καθαρισμός cache

Για να διαγράψουμε την cache

/etc/init.d/squid3 stop
rm -rf /var/squid3/cache/*
/etc/init.d/squid3 start

squidview

Εναλλακτικά υπάρχει το 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

calamaris

Για εξαγωγή στατιστικών και αποστολή σε καθημερινό 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

Πηγές