Post

Squid proxy en Alma Linux

En esta ocasión estaremos revisando la instalación de Squid proxy, una herramienta para el bloqueo de sitios web en la red local dentro de un sistema basado en RHEL.

En esta ocasión estaremos revisando la instalación de Squid proxy, una herramienta para el bloqueo de sitios web en la red local dentro de un sistema basado en RHEL, en este caso AlmaLinux, aunque el funcionamiento es válido para cualquier distribución.

Las capacidades que tiene este proxy son muchísimas. Se enfoca en la navegación de los usuarios impidiendo que puedan acceder a sitios que pueden tener contenido malicioso para las organizaciones. Por medio de caché, permite bloquear de forma más eficiente sitios que pueden ser visitados frecuentemente.

El proyecto funciona conforme a la GNU GPL.

Pueden encontrar más información sobre el proxy squid en: http://www.squid-cache.org Primero vamos con la instalación del servicio:

1
yum install squid

¡Regla de oro! Creamos una copia de seguridad de la configuración de fábrica, por cualquier cosa:

1
cp /etc/squid/squid.conf /etc/squid/squid.conf.ori

Crearemos una carpeta para nuestras ACLS (Access Control Lists), así como los archivos para bloqueo, patrones de sitios:

1
2
3
mkdir /etc/squid/acls
touch /etc/squid/acls/blocked_sites
touch /etc/squid/acls/site_patterns

En el archivo “blocked_sites” agregaremos una lista de sitios a bloquear. Puede ser por medio de wildcards como en este caso:

.yahoo.com .xvideos.com

En el “sites_patters” agregaremos sitios cuyo dominio completo será restringido. La ventaja es que Squid agregará todo lo que contenga esta palabra y lo bloqueará:

softonic taringa

Ahora que tenemos el archivo, pasamos a configurar el squid.conf:

1
vim /etc/squid/squid.conf

Dentro de la configuración agregaremos la ACL que creamos. Comentamos las primeras líneas que hacen referencia a posibles redes locales. Es importante escribir correctamente los nombres de los archivos.

Luego agregamos lo siguiente:

1
2
3
acl CONNECT method CONNECT
acl blocked_sites dstdomain "/etc/squid/acls/blocked_sites"
acl site_patterns url_regex "/etc/squid/acls/site_patterns"

En el lugar de las peticiones, lo que haremos es lo siguiente:

1
2
3
4
5
#http_access allow localnet
#http_access allow localhost
http_access allow   site_patterns
http_access deny    blocked_sites
http_access allow   all

Casi al final del archivo de configuración, modificaremos el parámetro de puerto de escucha:

http_port 172.16.1.1:3128 -> especificamos la IP del Centos

Recordemos que necesitamos aplicar las reglas del firewall para que nuestro proxy sea permitido en el firewall. En este caso utilizamos IPTables:

1
2
3
4
5
6
7
# Enable NAT from LAN and while redirecting trafic to our squid proxy (nat table)
-A PREROUTING -s 172.16.1.0/24 -p tcp --dport 80 -j REDIRECT  --to-port 3128
-A PREROUTING -s 172.16.1.0/24  -p tcp --dport 443 -j REDIRECT --to-port 3128
-A POSTROUTING -s 172.16.1.0/24  -o enp0s3 -j MASQUERADE

# Allow squid proxy connections (filter table)
-A INPUT -p tcp -i enp0s3 -d 172.16.1.1 --dport 3128 -j ACCEP

Ahora podemos habilitar el proxy para cuando el servidor inicie:

1
2
systemctl enable squid
systemctl start squid

Es momento de configurar las opciones de proxy dentro de nuestros equipos cliente:

server: 172.16.1.1 port: 3128

También existe la posibilidad de crear un proxy transparente, pero eso ya le queda de tarea.

Video Referencia en el curso de servidores (Debian Server): https://www.youtube.com/watch?v=mbrxEKCvtsU&list=PLHZHedbtfQEOsUzXIlliX9rLG_3NsxjBH&index=8&ab_channel=EtherGroup

¡Happy Hacking!

This post is licensed under CC BY 4.0 by the author.