Salta el contingut

UD7 - Pràctica 00 - Configuració bàsica Proxy

Requisits

  1. Ubuntu Server amb connexió a una xarxa NAT
  2. Client amb connexió a la mateixa xarxa NAT

Actualització del server i instal·lació d'Squid

Bash
1
2
3
sudo apt update
sudo apt upgrade -y
sudo apt install squid -y

Verifiquem que Squid està en marxa:

Bash
sudo systemctl status squid

Ens assegurem que Squid arrancarà amb la màquina:

Bash
sudo systemctl enable squid

En qualsevol moment, podem accedir als logs per veure com està funcionant el Proxy:

Bash
sudo tail -f /var/log/squid/access.log

Configuració bàsica de Squid

Editar el fitxer de configuració

El fitxer de configuració de Squid es troba en /etc/squid/squid.conf. Abans de modificar-lo es recomana fer un copia d'aquest. Per altra banda, en ambients Ubuntu, aquest fitxer beu dels fitxers de configuració que estan en /etc/squid/conf.d/, per tant, crearem ací un fitxer amb la nostra configuració:

Bash
sudo nano /etc/squid/conf.d/miconfig.conf

i ací anirem afegint les nostres regles...

Permetre accés des de la xarxa local

miconfig.conf
acl localnet src 192.168.1.0/24
http_access allow localnet
Amb la primera linia definim la regla, i amb la segon la apliquem.

Configuració dels clients

Alguns clients poden configurar la connexió a través del Proxy des del sistema operatiu, des d'una aplicació...

Per exemple, per configurar el Firefox perquè es connecte a través del Proxy, haurem d'anar a Ajustes --> General --> Configuración de red --> Configuración... i a la finestra emergent que ix, triar Configuración manual del proxy, indicar la IP i el port del nostre Proxy, marcar Usar también este proxy para HTTPS i desmarcar l'última opció DNS proxy usando SOCKS v5.

Com podem veure, l'usuari és capaç d'esta forma de botar-se el Proxy al seu gust. Per tant, a nivell de seguretat i administració, convé fer aquestes configuracions a nivell de SO o inclús de xarxa...

Configuració avançada

Bloquejar llocs webs específics

Primer crearem un fitxer on guardarem els llocs que volem bloquejar:

Bash
sudo nano /etc/squid/bloqueig.txt

afigirem en este el llocs s abloquejar, per exemple:

bloqueig.txt
marca.com
youtube.com

finalment afegim les regles següents al fitxer de configuració:

miconfig.conf
acl blocked_sites dstdomain "/etc/squid/bloqueig.txt"
http_access deny blocked_sites

i com sempre que afegim i configurem regles noves, reiniciem:

Bash
sudo systemctl restart squid

Important mantindre l'ordre!

L'ordre de les regles http_access és important. Squid les revisa de dalt a baix i aplica la primera conincidència. Si la línia http_access deny all està abans de http_access allow localnet, ningú podrà accedir...

Assegura't que el fitxer tinga un ordre semblant a aquest:

miconfig.conf
1
2
3
4
5
6
acl localnet src 192.168.1.0/24
acl blocked_sites dstdomain "/etc/squid/bloqueig.txt"

http_access deny blocked_sites
http_access allow localnet
http_access deny all
  • http_access deny blocked_sites bloqueja els dominis especificats abans que es permeta l'accés general a la xarxa local localnet.
  • http_access allow localnet assegura que els clients de la xarxa 192.168.1.0/24 puguen accedir al proxy, exccepte als dominis bloquejats.
  • http_access deny all denega qualsevol altre accés que no estiga explícitament permès.

Una vegada configurat, reiniciem Squid i des d'algun client configurat per a passar per el Proxy, accedim a algun domini de la llista bloquejada...

...i per què no el bloqueja?

Segurament has pogut comprovar que el bloqueig no es produeix i és degut (si tot està ben configurat) a que Squid, amb la configuració actual, no intercepta correctament connexions HTTPS, això requereix configuració de SSL Bumping per poder inspeccionr tràfic HTTPS i implica temes de certificats, cosa que s'escapa del nostre abast.

Per poder provar que el bloqueig HTTP funciona correctament, sols hem de forçar la connexió a la web mitjançat la url, per exemple, http://www.marca.com