Squid - Trasparent Proxy

Squid come trasparent Proxy

Pacchetti necessari:
1 - Squid
2 - iptables

################################################################################
Procedimento
Configurazione Squid Web Cash Proxy
################################################################################
Per prima cosa procuriamoci l'ultima versione stabile dal sito
http://www.squid-cache.org.
Lo scarichiamo e lo compiliamo a seconda che sia un rpm o un
sorgente. Dopo questo andiamo nella directory “/etc/squid”, e
modifichiamo il file “squid.conf”, nelle seguenti righe:

http_port
di default sta in listening su tutti gli ip della macchina sulla
porta 3128, conviene cambiarlo:
esempio: http_port 192.168.1.1:31336

cache_mem
di default 8 MB, dovete settare questo paramentro ad ¼
della ram totale.
esempio: cache_mem 128 MB

cache_dir ufs

è la directory in cui risiederà la cache, dovrete
specificare la dimensione massima allocabile.
esempio: cache_dir ufs /var/spool/squid 10000 16 256
|
MB Allocabili sull'HD

acl
Le access list servono a dire a squid, quali sono le porte sicure
su cui può accedere, quali indirizzi ip accettare ed i metodi
di connessione. Prendiamo una configurazione minimale che ci fornisce
squid stesso:
acl all src 0.0.0.0/0.0.0.0 (da qualsiasi ip accetta le
connessioni)
acl manager proto cache_object (gestisce la cache)
acl localhost src 127.0.0.1/255.255.255.255 (specifica l'indirizzo
di locahost come sorgente)
acl to_localhost dst 127.0.0.0/8 (specifica l'indirizzo di
localhost come destinazione)
acl SSL_ports port 443 563 (porta sicura su cui può
accedere)
acl Safe_ports port 80 # http (porta sicura su cui può
accedere)
acl Safe_ports port 21 # ftp (porta sicura su cui può
accedere)
acl Safe_ports port 443 563 # https, snews (porta sicura su
cui può accedere)
acl Safe_ports port 70 # gopher (porta sicura su cui può
accedere)
acl Safe_ports port 210 # wais (porta sicura su cui può
accedere)
acl Safe_ports port 1025-65535 # unregistered ports (porta sicura
su cui può accedere)
acl Safe_ports port 280 # http-mgmt (porta sicura su cui
può accedere)
acl Safe_ports port 488 # gss-http (porta sicura su cui
può accedere)
acl Safe_ports port 591 # filemaker (porta sicura su cui
può accedere)
acl Safe_ports port 777 # multiling http (porta sicura su
cui può accedere)
acl CONNECT method CONNECT (metodo di connessione)

http_access
Serve ad impostare la politica delle access list (deny, all).
esempio:
http_access allow manager localhost
http_access deny manager

Modificando queste righe di squid e lasciando invariate (di
default) le altre abbiamo una configurazione minimale di squid, ben
lontana da una configurazione applicabile ad una lan aziendale e
simili, per una lan casalinga può andar anche bene se non
volete perdere troppo tempo dietro a squid.

Bene adesso non ci resta che lanciarlo, con questi due comandi:
[root@main alessio]# squid -z
così crea la cache e si imposta le directory.
[root@main alessio]# /etc/init.d/squid start
Se non ci sono errori abbiamo squid avviato, e quindi abbiamo
fatto la metà del lavoro :)

################################################################################
Procedimento
Configurazione iptables per Trasparent Proxy
################################################################################
Adesso abbiamo due possibilità:
1 – Specifichiamo al browser manualmente l'indirizzi ip del
proxy e lo facciamo navigare attraverso
essso.
2 – Configuriamo iptables in modo da avere un Trasparent Proxy
che forwarda i pacchetti destinati alla porta 80, alla porta del
nostro proxy server.

Iniziamo:
Per prima cosa dobbiamo assicurarci di avere iptables installato.
Utilizziamo il modulo NAT.

iptables -t nat -A POSTROUTING -i -p tcp -s
--sport 1024:65535 –dport 80 -j REDIRECT
--to-port 3128
iptables -A INPUT -i -p tcp -s

iptables -A OUTPUT -o <public_interface> -p tcp -s
<public_address> --sport 1024:65535 --dport 80 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i <public_interface> -p tcp --sport 80 -d
<public_address> --dport 1024:65535 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o <lan_interface> -p tcp -s
<lan_address> --sport 80 --dport 1024:65535 -m state --state
ESTABLISHED,RELATED -j ACCEPT

Così avrete un Trasparent Proxy vero e proprio. Le rules di
iptables dovranno essere sulla macchina che ha squid ovviamente e
dovrà essere la macchina gateway per tutta la rete.

Per chiarimenti, dubbi, domande, mi trovate su irc.grolug.org
#grolug.

Saluti
blackms

________________

""