Squid proxy per GNU/Linux
Squid és un programa de Proxy de codi obert. Per tant, hi ha versions per GNU/Linux i també per Windows i altres SOs.
Contingut
Configuració bàsica
Ho podem instal·lar amb:
$ sudo apt-get install squid
- Després instal·larem el WEBMIN ja que els arxius de configuració son complicats. Us recomano el servidor zeus.ova ja que ja té els paquets preparats pel Webmin.
- Configureu la xarxa per tal que el Proxy (Ubuntu Server) tingui 2 targetes de xarxa, una interna i una externa (és igual si la externa la fem en NAT o en xarxa pont, però si fas servir aquesta darrera recorda reinicialitzar l'adreça MAC).
- Comprova que el servidor té accés a fora i a dins i que funciona el DNS correctament (fent pings a dominis).
- Configura un client per xarxa interna i que utilitzi el Proxy que acabem d'instal·lar (hauràs de configurar el navegador pel port 3128).
Comprova que pots navegar amb el browser. Si et prohibeix l'accés, configura el Squid tal i com segueix:
- Accedeix a la interfície de configuració del Webmin amb
https://<ip_del_proxy>:10000
- Vés a Access Control i Proxy restrictions.
- Edita la regla "Deny all" i canvia-la per "Allow all".
Configuració de les ACLs (Access Control Lists)
Una de les utilitats més importants del Proxy és prohibir l'accés a la web. Es pot restringir per IP o, més típicament, per URLs.
Per prohibir una determinada URL:
- Ves a la interfície d'administració del Squid a través del Webmin
- Crea una ACL de tipus URL_regexp anomenada "bad_URLs". Posa-hi algun domini a prohibir, com per exemple www.youtube.com
- Vés al menú "Proxy restrictions" i crea una restricció Deny a la ACL que hem creat (bad_URLs).
- Mou la restricció per sobre del Allow all que hem configurat abans.
- Aplica els canvis.
- Comprova que no et deixa accedir a la llista.
Configuració del Proxy en mode transparent
La idea de posar el proxy en mode transparent és que no calgui configurar els browsers dels clients amb el port particular del Squid. Hauriem de poder configurar la xarxa utilitzant el servidor com a gateway, a l'igual que vam fer amb el servidor NAT. No obstant, volem les funcionalitats actives del proxy, com el filtratge i la caché.
La idea bàsica és muntar un servidor NAT amb el Squid i redirigir el trànsit del port 80 (port web per defecte) al port 3128, que és el del Squid.
Així que els passos seran bàsicament:
- Configurar un servidor NAT Linux.
- Instal·lar el Squid.
- Configurar el Squid:
- Permetre l'accés a tots els usuaris del Squid (veure apartats anteriors).
- Activar restriccions (típicament per URL).
- Posar el port 3128 en mode "transparent". Anem a Webmin -> Ports and Networking i al port 3128 afegim a "Port Options" la directiva "transparent" (sense cometes).
- Gravem i reiniciem el servei.
- Configurar la redirecció del port 80 al 3128:
- Afegir la següent comanda al /etc/rc.local:
iptables -t nat -A PREROUTING -i eth1 -p tcp -dport 80 -j REDIRECT --to-port 3128
- També podem executar l'anterior comanda amb sudo directament sobre la shell per provar si va. Si ens funciona, la podem incorporar al rc.local.
- Afegir la següent comanda al /etc/rc.local:
- Configurem els clients per utilitzar el nostre servidor com a "gateway" (treiem la configuració de proxy dels browsers.
- Comprovem que podem navegar i que les restriccions del Squid funcionen.
Links
Aquí s'explica tot des de l'arxiu de configuració:
http://www.freesoftwaremagazine.com/articles/web_blocking_squid