Squid, SquidGuard, Lightsquid y Clam-AV en pfSense Parte II

Continuamos

En esta segunda parte veremos SquidGuard y Lightsquid.

Empezamos por SquidGuard dirigiéndonos a Services / SquidGuard Proxy Filter, donde nos encontramos las siguientes secciones en General Settings

Donde nos indica que antes de activar configuremos por lo menos una Categoría y que despues cualquier cambio hay que hacer click en el botón Apply, por lo tanto lo dejaremos para el final.

Tenemos la opción de utilizar LDAP para crear filtros, en este laboratorio no lo vamos a utilizar.

Las siguientes opciones de esta pestaña general son

La parte de Service options dependerá de vuestro Hardware y usuarios, deberán ser ajustados. Los valores por defecto no suele dar problemas a priori, pero tener en cuenta en Rewrite process children si son muy bajos creará colas de solicitud por lo tanto la navegación será menos fluida y si pones un número elevado es posible que satures el sistema, por lo tanto hay que ir probando en cada escenario los valores adecuados.

El Rewrite process children startup es el número de procesos hijos que estarán disponibles en el arranque.

El Rewrite process children idle es el número que intentará mantener en todo momento.

Estos serán ajustados igualmente según escenarios.

En la sección Login options nos encontramos tres opciones:

Enable GUI log, la activamos para tener acceso a la GUI del Proxy Filter

Enable log, la activamos para poder ver que está pasando en nuestro Proxy Filter, quien está siendo bloqueado, etc...además de para comprobar que los filtros están funcionando.

Enable log rotation, lo activamos también para que los logs roten diariamente porque en caso contrario nos quedaremos sin espacio en disco en algún momento.

En la sección Miscellaneous nos encontramos con Clean Advertising que si la activamos los usuario en lugar de recibir la página predeterminada que utilicemos, recibirán una página en blanco.

Y por último la sección Blacklist options que no puede faltar.

La primera opción es activar la Blacklist que por supuesto activaremos ya que la advertencia de no activarla es solo en instalaciones que se hayan realizado con la herramienta nanoBSD, muy utilizada para crear imágenes de sistema.

Luego tenemos 2 opciones, utilizar un proxy de listas negras o bien especificar una URL de listas negras para cargarlas, esto último es lo que haremos. ACTUALIZADO en la imagen utilizamos shallalist en Blacklist pero sus creadores han dejado este servicio, pero no os preocupéis la Universidad de Francia se ha puesto manos a la obra en http://dsi.ut-capitole.fr/blacklists/download/blacklists_for_pfsense.tar.gz , salvamos y vamos al apartado Target categories

Esto es un poco como lo tenga pensado cada uno, en este laboratorio lo vamos hacer simple crearemos Bloqueadas y Permitidas dando a Add.

Ponemos el nombre, elegimos la posición la cual debería ser la última siempre "LAST", ya que si fuera la primera que comprobara y hay dentro de ella algo que  permitimos en una lista posterior seguirá estando bloqueada.

En Domain List podemos meter ips o dominios a bloquear separados por un espacio, en el ejemplo están puestas las ips de los nodos de Tor que han sido obtenidas de https://www.dan.me.uk/torlist/ . Aquí nos encontramos con el problema que viene una por línea y necesitamos que estén separadas por un espacio para que nos deje ponerla. ¿Cómo lo hacemos? Pues utilizando a un comando con el cual siempre hacemos maravillas "sed", nos copiamos y pegamos la ips en un documento por ejemplo tor.tx y por consola ejecutamos:

sed ':a;N;$!ba;s/\n/ /g' tor.txt > torespaciado.txt

Ahora abrimos el fichero torespaciado.txt y copiamos y pegamos ya que lo tendremos sin salto de lineas y con un espacio entra las IPs.

Si quieren bloquear la red Tor tengan en cuenta que tendrán que actualizar este campo cada cierto tiempo.

En URL list podemos meter las URL a Bloquear

En Regular Expression podemos poner palabras a bloquear como indica: casino|games|porno|xxx. Ojo en esta parte si dejan espacios no funcionará ninguna, es decir, siempre separadas por "|" pero que no haya ningún espacio delante ni detrás.

En Redirect mode, redirigimos al usuario a una web externa que hayamos hecho para indicarle que está prohibido o a una página de error. Si hemos seleccionado web externa la escribiremos en el campo Redirect.

Y por último muy importante activar el log para luego poder ver que se está ejecutando correctamente y ver los bloqueos que realiza.

Hacemos lo mismo para crear permitidas con la única diferencia que en Redirect mode lo dejamos en none y seleccionamos que sea la primera posición "--", teniendo las mismas opciones que en bloqueadas con la diferencia que lo que pongamos en cada apartado será permitido.

Ahora pasaremos a descargarnos la lista que pusimos en general, iendo a la pestaña Blacklist y haciendo click en Download.

Como podemos observar nos ha encontrado 74 categorías.

Ahora, si quisiéramos utilizar franjas horarias para las reglas porque por ejemplo al turno nocturno le damos más cancha porque están de guardia y así que puedan disfrutar mientras no haya ningún aviso, lo primero sería crear esas franjas en la pestaña Times dando a Add, aunque esto es un poco al gusto del consumidor y el escenario, puesto que en el ejemplo al hacerlo por turnos, si son el mismo rango de ips porque utilizan los mismo equipos lo suyo sería hacerlo por departamentos, veremos más adelante el porque.

Esta parte no tiene mayor complejidad como pueden ver, pero siempre hay un pero. Para el turno Nocturno tendrán que crear dos intervalos ya que empieza a contar desde las 00:00 y nos daría un error, quedando así

Hecho esto, podemos hacer ya ACL comunes( Common ACL) y ACL por grupos(Groups ACL), donde nos aparecerá en ambos casos en Target Rule List primero las Target categories en el orden elegido, seguido de las 74 categorías descargadas donde debemos elegir entre whitelist(siempre permitida aunque la encuentre en otra categoría bloqueada), allow(permitido siempre y cuando no este en otra categoría) o deny(no permitido) en el desplegable. En nuestro caso las permitidas las pondremos en whitelist o allow puesto que nos hemos curado en salud poniendo dicha lista la primera a comprobar, por lo tanto ambas opciones nos vale, aunque elegiremos whitelist también y así ya no hay duda jeje

Para no extender mucho vamos a explicar Groups ACL ya que la Common ACL es prácticamente lo mismo pero común a todos los usuarios, tengan en cuenta que las Common ACL tienen prioridad sobre las de Grupo, es decir, si en las ACL comunes hay una categoría por ejemplo bloqueada por mucho que en grupos la permitamos seguirá estando bloqueada. En la mayoría de escenarios tendrás que utilizar solo ACL por grupos. 

En esta primera parte podemos deshabilitar la regla marcando la casilla de Disabled, le ponemos un nombre, el orden, a que clientes les afecta en función de todas las opciones que nos da, en este caso al rango de ips 192.168.1.10-192.168.1.20 que pertenece a Servicio Técnico en el horario Diurno previamente creado.

En la segunda parte nos encontramos las Target rules List donde entenderéis el porque comentamos anteriormente que los horarios dependerá de tu escenario, ya que aquí si utilizaran los mismo equipos harías dos reglas cuando podrías tener una sola, ya que a la izquierda están las categorías dentro del horario y a la derecha fuera del horario. No vamos hacer todas pero si las que hemos creado nosotros y las categorías, en este caso hemos seleccionado el turno diurno por lo tanto vamos ha denegar categorías en horario de hobby y fuera de horario permitirlo, por lo que si comparten equipos no nos haría falta crear una regla para diferentes horarios, ni tendríamos la necesidad de crear el horario nocturno.

Ahora en esta parte hay una cosa importante la última categoría Default access [all]

Esto definirá nuestra política, podemos bloquear todo por defecto he ir añadiendo lo permitido o permitir todo e ir denegando. en la mayoría de los casos si no te quieres complicar la vida será permitir todo e ir denegando, en otros casos te podrán pedir deniega todo menos estas 4 webs, pues ya sabéis como hacerlo.

Por último en esta pestaña

Do not allow IP-Addresses in URL si utilizáramos FQDN, activando dicha opción evitaríamos un bypass utilizando la IP en lugar del FQDN.

Redirect Mode y Redirect, lo mismo que vimos anteriormente.

Use SafeSearch engine si la activamos solo permitimos motores de búsqueda seguros donde nos indica cuales soporta, activando esta casilla las 2 siguientes quedan anuladas, ya que es lo mismo pero para diferenciar en horario, de fuera de horario.

Y por último descripción y Log, donde claro está lo activamos.

Por último comentaremos simplemente la pestaña Rewrite donde la utilizaremos para hacer redirecciones de URL, es decir, cuando el usuario escriba una dirección en concreta será redireccionado a donde nosotros queramos.

Y la pestaña logs donde veremos configuraciones y lo que va sucediendo en nuestro Proxy Filter.

Hecho todo esto podemos activar SquidGuard en General settings asegurando de que le damos al botón de Apply y si todo esta correcto podremos salvar, si hubiera algo mal configurado nos indicaría que hay mal.

Como todo estaba correcto hemos podido, aplicar, salvar y ya vemos el servicio iniciado.

Ahora podemos empezar hacer pruebas de navegación y ver que los filtros están funcionando quedando reflejados en la pestaña Logs, acuérdense que si no están utilizando proxy transparente deberán configurar los equipos con la dirección del proxy y puerto para todos los servicios.

Con la configuración actual el cliente recibirá el siguiente error cuando intente acceder alguna página donde la url incluya porno o casino, ya que lo hemos metido como Regular expresion, si queremos bloquear mejor estas categorías además de las palabras en la URL bloquearemos las categorías correspondientes, ya que solo así como está se podrá acceder a todas aquellas que no contengan en la URL las palabras.

Si en lugar de elegir int error page en la regla que nos está bloqueando en Redirect mode, hubiéramos elegido por ejemplo una url externa nos mostrara dicha url. 

Si miramos los logs veremos todo lo que está bloqueando que incluya dichas palabras en la url.

Ya tenemos SquidGuard funcionando recordar que cada vez que cambieis algo hay que hacer un apply en la pestaña General y reiniciar el servicio en la pestaña logs en la flecha circular. como recomendación si y tenéis muchos usuarios, categorías, etc... hacerlo en horario que no afecte a los usuarios ya que puede demorar el arranque y dejar a los usuarios sin conexión.

Ahora pasamos a ver Lightsquid el cual nos permite sacar estadísticas de  nuestro proxy. Nos dirigimos a Status/Squid Proxy Reports y nos encontraremos con los siguientes apartados.

Las instrucciones que si hemos seguido todo correctamente lo único que nos queda es completar los demás apartados, salvar y dar a refresh all.

La primera parte es el puerto donde levantaremos el Lightsquid, que esté con SSL usuario y password.

La segunda parte la plantilla que más nos guste.

La tercera parte el método de resolución donde tenemos varias opciones, por defecto viene DNS donde nos mostrará el nombre de la máquina.

Si queremos excluir alguna url de las estadísticas separadas por "|"

Cada cuanto queremos que se refresquen y el refresco manual.

Una vez configurado todo esto el servicio empezará a funcionar y podemos abrirlo desde el botón azul Open Lightsquid en el apartado Web Service Setting mostrando la siguiente pantalla donde podremos elegir que día queremos ver

Como es un laboratorio está lo poco que hemos hecho para comprobar reglas, pero si pinchamos podremos ver que desde la máquina que estaba utilizando el proxy obtenemos sus datos de navegación

El otro botón azul Open sqstat, es para ver las estadísticas en tiempo real

Como última parte de este post aprovechando que tenemos la máquina de laboratorio encendida para navegar usando el proxy veremos algo que sería de la parte I de estos dos post y es como corta los virus Clam-AV. Para ello vamos abrir una web con virus desde la máquina que está utilizando el proxy, dicha web sera Wicar, una web muy buena que nos ofrece probar virus,exploits y otras amenazas todas ellas inofensivas. Por lo tanto abrimos https://www.wicar.org/test-malware.html desde el navegador. El propio Google nos avisará y bloqueara el acceso, le damos a que reconocemos el riesgo y obtendremos la siguiente ventanas de los diferentes testclamav

Y así con todos ellos, tambien podremos observar lo en nuestro Pfsense en varios logs como en Service/Squid Proxy Server/Real Time en la sección siguiente

Como siempre ir a Services/Watchdog y añadir los servicios para que en caso de parada por cualquier fallo los vuelva a levantar.

Que lo disfruten, buen fin de semana.

TL.

Gracias por leer nuestros posts.

No hay comentarios

Comenta la entrada