Squid 3.5.15 y squidGuard CentOS 7 (https y ACL)

4
2038

Buenas buenas. Aquí les traigo Squid 3.5 (stable) en CentOS, ah caray!!!, si me dijeron que tenia que hablar de CentOS y me dijeron mis lectores que squid 3.5 ya no filtraba https y alguien me escribió un correo solicitando filtrar por grupos y contenido. Así que les traigo una review para que vean como hice y lo hagan ustedes.

ok lo primero es lo primero, como sabrán squid en CentOS esta en version que? 3.3.8, bueeeh un poco desfasado, pero funciona. Sin embargo para aquellos que les gusta vivir en lo actual, lo primero es agregar el repositorio de squid (si, podrías descargar el tar.gz y compilarlo, pero bueno no vamos a re-inventar la rueda aquí, ya alguien lo compilo en un paquete rpm, jajaja). En Debian tiene una serie de bugs, entre ellos filtrado y deben usar repositorios Stretch

Como siempre, yo no les estoy mandando instalar malware, esto es de la wiki oficial de squid, chequea AQUI

vi /etc/yum.repo.d/squid.repo

[squid]
name=Squid repo for CentOS Linux – $basearch
#IL mirror
baseurl=http://www1.ngtech.co.il/repo/centos/$releasever/$basearch/
#baseurl=http://www1.ngtech.co.il/repo/centos/7/$basearch/
failovermethod=priority
enabled=1
gpgcheck=0

yum update

yum install squid3

Ahora, si han leído mis otros post configurar squid no les sera problema. Así que resumen AQUI y para hacer cache AQUI. ¿Cambian algunas cosas?, bueno, como todos los linux, algunos archivos están aquí y no allá, pero las configuraciones son las mismas. Pero para que no digas que soy un villano, esto es lo mínimo que debes colocar

acl localnet src 172.16.0.0/21 # RFC1918 possible internal network

http_access allow localnet

http_port 172.16.5.110:3128

corre el siguiente comando para crear tu espacio en cache

squid -z

Luego el siguiente para verificar que el archivo de configuración esta correcto

squid -k parse

por ultimo reiniciamos el servicio

systemctl squid restart

Ahora como filtramos http y https, y creamos acl sencillas, la respuesta es —-> SquidGuard, este señor es un filtro de contenido y redireccionador de trafico, para este momento hay una gran cantidad de personas que prefieren dansguardian, no es mi caso. si bien, squidguard ya no es desarrollado por nadie en especifico, es mantenido por las mismas distribuciones y no tengo ni la mas mínima idea si alguna organización en especifico esta dedicada a este paquete, sin embargo, el hecho es que funciona y aun se mantiene en constante actualización.

yum install squidGuard

Como dije, con squidguard podrás filtrar trafico mediante listas negras (blacklist) o permitir mediante listas blancas (whitelist)

Debes añadir las siguientes lineas a squid.conf:

Esta indica que programa se encargara de filtrar el trafico, donde se encuentra el binario y el archivo de configuración.

url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

Este indica cuantos redirectors máximo existirán (150) para atender las peticiones, cuantos mínimos arrancan con el squid (120), cuantos se mantendrán en reserva (1), si estos pueden atender mas de 1 petición simultáneamente (0)

url_rewrite_children 150 startup=120 idle=1 concurrency=0

Si no existe ni un redirector disponible, la persona no podra navegar, lo cual es lo ideal, no queremos que nadie navegue libre. En el log dira un error cuando esto ocurra y debes evaluar elevar la cantidad de redirectors.

url_rewrite_bypass off

Como hacer Acl y filtrado?

Lo primero es descargar alguna blacklist completa para comenzar de AQUI, tu también puedes crear y ya te voy a explicar como, descomprimir en /var/squidGuard/ esto es por defecto en centos, pero en otros es /var/lib/squidguard/

tar -xvzf bigblacklist.tar.gz /var/squidGuard/

chown -R  squid. /var/squidGuard/

Debes entrar en squidguard.conf:

Declara donde están la listas y donde se guardaran los logs.

dbhome /var/squidGuard/blacklists

logdir /var/log/squidGuard/

Ahora squid guard se maneja con 3 etiquetas src, dest, acl.

Supongamos que quiero crear un grupo “limitados” en src, declaro el grupo en si y todas las ip’s que pertenecen a ese grupo

src limitados {
ip 172.168.128.10 # pepito perez informatica
ip 172.168.128.13 # andrea perez informatica
ip 172.168.128.20 # carolina perez informatica
}

Ahora para crear y declarar listas, es con la etiqueta dest. Importante!, tienes que entender como puedes bloquear una pagina

  • -Por dominio ejemplo: facebook.com, todo el dominio completo estará bloqueado
  • -Por urllist ejemplo: facebook.com/juegos esto quiere decir que solamente esa url esta bloqueada de resto puedo navegar todo facebook
  • -Por ultimo expressionlist ejemplo facebook, entonces cualquier pagina que tenga facebook escrito así sea una pagina de noticia que hace referencia a un articulo y menciona facebook en su cuerpo estará bloqueada.

dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
}

Ahora declaramos que vas o no a bloquear y que acción realizaras cuando suceda. Todo comienza con la etiqueta ACL, dentro hay ‘n’ cantidad de grupos. Continuando con el ejemplo “limitados”, la etiqueta pass para hacer referencias a las listas y trafico, si la palabra clave tiene un símbolo de exclamación (!) al principio hace referencia a que no esta permitido, de lo contrario si, aunque este en alguna lista previamente denegado.

En este ejemplo, tenemos el grupo limitado, en el cual existe una whitelist o lista blanca para permitir cierto trafico que a lo mejor esta bloqueado en las demás listas negras (!), Luego culmina la sentencia con “any” para indicar que si no hizo match con ninguna lista entonces permite ese trafico. Si terminara con la etiqueta “none” no permitiría ese trafico. Por ultimo la etiqueta redirect, para indicar que acción tomar cuando bloquee una pagina en este caso lo enviamos a google.

Aqui un ejemplo yo coloque muchas mas listas bloqueadas, pero recuerda que deben estar declaradas en dest, ademas no todas las listas tienen urllist, expressionlist o domainlist así que debes revisar bien.

acl {
limitados {
pass whitelist !porn !adult !sexuality !proxy !spyware !malware !hacking !mixed_adult !naturism !sect !marketingware !virusinfected !warez !weapons !hunting !updatesites !gambling !filehosting !filesharing !humor !ads !shopping !games !clothing !desktopsillies !sexualityeducation !violence !remote-control !jobsearch !cellphones !kidstimewasting !ecommerce !beerliquorsale !radio !socialnetworking !social_networks !instantmessaging !chat !audio-video !verisign !sports !sportnews !news !press !entertainment !mobile-phone !lingerie !magazines !manga !arjel !tobacco !frencheducation !celebrity !bitcoin !blog any
redirect http://google.com?
} #fin limitados
} #fin acl

Recargamos todas las listas

squidGuard -b -C ALL

Si en el log, sale squidguard ready for request, entonces estamos listo para arrancar con

systemctl squid restart

Gracias por todo, espero sigan escribiendo en comentarios, y atentos a todos mis post.

 

4 COMENTARIOS

Dejar una respuesta