Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Προηγούμενο  Περιεχόμενα

3. Εγκατάσταση Squid Proxy with Delay Pools Enabled

Σε κονσόλα πάντα προσθέτουμε τον χρήστη squid (αν δεν υπάρχει, αν υπάρχει τον αφαιρούμε με userdel) αφού έχουμε φτιάξει ένα directory με όνομα cache:


# useradd -d /cache/ -r -s /dev/null squid >/dev/null 2>&1

Κανένας δεν μπορεί να κάνει login σαν χρήστης squid εννοείται και ο root. Αυτό είναι ένα βήμα βέλτιστης ασφάλειας που μπορεί βεβαίως να παραλειφθεί αν δεν υπάρχει άμεσος κίνδυνος. (πάντα υπάρχει !)

Αφού έχουμε κατεβάσει το squid source το αποσυμπιέζουμε πχ. στο /tmp:


# cd/tmp
# tar xzfv squid-2.5.STABLE4-src.tar.gz
# cd squid-2.5.STABLE4

Είμαστε έτοιμοι για το compile.


#./configure --prefix=/opt/squid --exec-prefix=/opt/squid --enable-delay-pools --enable-cache-digests \
        --enable-poll --disable-ident-lookups --enable-truncate --enable-removal-policies
# make all
# make install

Αφού ολοκληρώσουμε επιτυχώς o squid έχει εγκατασταθεί στο /opt/squid. Και για να είμαστε σίγουροι ότι τα πάντα κάτω από το /opt/squid και /cache ανήκει στον χρήστη squid γράφουμε:


# chown -R squid:squid /opt/squid
# chown -R squid:squid /cache

ή

# chown -R squid.squid /opt/squid
# chown -R squid.squid /cache.

Υποθέτουμε ότι το δίκτυο μας είναι το 192.168.0.0/24. Μετά πάμε στο /opt/squid/etc/squid.conf που είναι το σημαντικότερο βήμα. Ένα τυπικό squid.conf είναι το παρακάτω:


# SQUID CONFIGURATION FILE
# by Αντώνιος Χάψας © 2003.
visible_hostname Dias #Your name pc
http_port 8080
icp_port 3130
acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY
cache_mem 64 MB

cache_dir ufs /cache 250 16 256
redirect_rewrites_host_header off
cache_replacement_policy GDSF
emulate_httpd_log on

acl localnet src 192.168.0.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl Safe_ports port 80 443 210 119 70 21 1025-65535
acl CONNECT method CONNECT
acl all src 0.0.0.0/0.0.0.0
http_access allow localnet
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT
http_access deny all

maximum_object_size 3000 KB
store_avg_object_size 50 KB

#Αυτό το κομμάτι το γουστάρω πολύ, 
#για τους έξω χρήστες χρησιμοποιείται τον παρακάτω browser !
anonymize_headers deny User-Agent
fake_user_agent Shit/1.0 (FuckWindows; U; WindowsShit 1.0 i8088)

cache_mgr root
cache_effective_user squid
cache_effective_group squid
log_icp_queries off
buffered_logs on

# Εδώ είναι το κρίσιμο κομμάτι που μας ενδιαφέρει
#DELAY POOLS
#Δεν θέλουμε να περιορίσουμε το κατέβασμα στο τοπικό μας δίκτυο
acl magic_words1 url_regex -i 192.168
#Θέλουμε να περιορίσουμε το κατέβασμα των παρακάτω αρχείων
#Όλα σε μια σειρά
acl magic_words2 url_regex -i ftp .zip .exe .mp3 .rpm .zip .avi .mpeg
# Δεν βάζουμε .htm .html .jpg .gif γιατί συνήθως δεν καταναλώνουν μεγάλο bandwith.
#Εχουμε 2 διαφορετικά delay_pools
delay_pools 2
#1st Delay pool
delay_class 1 2 
#-1/-1 σημαίνει ότι δεν έχουμε όρια
delay parameters 1 -1/-1 -1/-1
delay_access 1 allow magic_words1

#2nd Delay pool
delay_class 2 2 
#Τα παρακάτω νούμερα είναι σε bytes 
# 6000/15000 είναι τα νούμερα για όλο το δίκτυο 
# 5000/15000 είναι για μια απλή ΙΡ 
#για κατέβασμα αρχείων μεγαλύτερο από 150000 bytes
#οι χρήστες συνεχίζουν το κατέβασμα με 5000 bytes/s
delay_parameteres 2 6000/150000 5000/150000
delay_access 2 alllow magic_words2
#Τέλος Αρχείου.

Αφού είμαστε σίγουροι ότι το παραπάνω αρχείο είναι σωστό γράφουμε για να δημιουργηθούν τα cache του directories:


# /opt/squid/sbin/squid -z

Λογικά πρέπει να είμαστε εντάξει, κάνουμε ένα έλεγχο με τους browser μας βάζοντας την ip του server στο 8080. Γράφουμε ένα ps -A | grep squid για να δούμε αν τρέχει. Για να τρέχει κάθε φορά που ξεκινάει ο server μας βάζουμε την παρακάτω γραμμή στο τέλος του /etc/rc.d/rc.local


/opt/squid/sbin/squid -D

Aλλες χρήσιμες εντολές θα μπορούσε να είναι η


# /opt/squid/sbin/squid -κ reconfigure (κάνει reconfigure αν κάναμε αλλαγές στο squid.conf)

όπως και η
# /opt/squid/sbin/squid -help.

3.1 Παράδειγμα 1

Περιορισμός μιας γραμμής ολικού bandwith ας πούμε στα 512 Kbs.


acl all src 0.0.0.0/0.0.0.0 #μπορεί να έχει επαναληφθεί πιο πάνω.
delay pools 1
delay_class 1 1
delay_access 1 allow alll
delay_parameteres 1 64000/64000 #512 kbits = 64 kbytes pes sec

3.2 Παράδειγμα 2

Περιορισμός μια γραμμής στα 128 Kbps.


acl 128Kusers src 192.168.0.1/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
delay_pools 1
delay_class 1 3
delay_access 1 allow 128kusers
delay_access 1 deny all
delay_parameters 1 64000/64000 -1/-1 16000/64000

Το παραπάνω παράδειγμα δίνει μια λύση σε ένα δίκτυο από ένα σύνολο 512Kbits, και κάθε ΙΡ παίρνει μόνο 128Kbits από αυτό το pool.

Περισσότερα παραδείγματα στο http://www.squid-cache.org/Doc/FAQ/FAQ-19.html.

Επόμενο  Προηγούμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!