servidor squid

Servidor Squid en Linux

Continuamos con la segunda parte de configuración de nuestro servidor Squid Proxy, a través de Webmin. Por fin entramos a la definición de Listas de Control de Acceso. Sépase que este es el componente más importante del servidor Squid Proxy.

servidor squid

Tabla del Control de Acceso

En primer lugar, la base de operación de las Listas de Control de Acceso, es la confrontación entre la ACL y las peticiones de los clientes, en este caso la URL. La autorización o restricción de la navegación, depende de la coincidencia de la ACL con una URL solicitada. Por lo tanto, las restricciones básicas de navegación se aplican en las tres partes de una URL; en nombre de dominio, puerto y página. Para cada una existe una ACL correspondiente:

protocolo://dominio:puerto/página

Las ACLs más usadas son las siguientes:

Expresión Regular de Servidor Web: controla la parte del «servidor», generalmente es un nombre de dominio o dirección IP pública. Cualquier criterio específico en esta ACL, será tomada en cuenta para permitir o bloquear ese nombre de dominio.

Expresión Regular de Ruta URL: controla la parte de “página”. Cualquier criterio específico en esta ACL será tomada en cuenta para permitir o bloquear esa URL.

Puerto URL: controla la parte del puerto de escucha de ese servidor. Cualquier puerto excluído de esta política, será bloqueado por Squid.

En segunda instancia, y a manera opcional, entran en la lógica las ACLs de direcciones IP y MAC de cliente, así como su nombre de host y autenticación por cuenta.

Configuración de restricciones


Paso 7 – Comenzamos con nuestra primer política que restrinje el acceso a algunos nombres de dominio. Hagamos que contenga palabras tales como “Juego”, “Game”, “justin”, además términos como “video”, “puritana” y archivos “exe”.

Llamemos a esta política «prohibido«. Aunque antes, debemos crear una ACL que declare al Proxy la existencia de nuestra red LAN. Para éste ejemplo es la 192.168.0.0/24. En el menú contextual del lado del botón “Crear nueva ACL” seleccionamos “Dirección de Cliente” e introducimos la dirección de red con su máscara.

servidor squid

servidor squid

Declarando la red

Si nuestras red de datos cuenta con la existencia de más subredes, o VLANs, también debe declararsen en la misma ACL «Dirección de Cliente«.

Seguidamente procedemos a crear la política

servidor squid

Adicionando una restricción

Creamos la ACL que contendrá los criterios que consideramos inapropiados en las páginas. La llamaremos “bloquea_archivos”, porque además de bloquear páginas, también podrá bloquear archivos por extensión como ejecutables (.exe), música (mp3), vídeos (mp4, avi, etc). Así evitaremos que los clientes estén descargando archivos que desestabilice su equipo de cómputo. Además evitamos que saturen el canal de Internet con descargas, según sea la política de la empresa (aunque para páginas SSL esta opción no funciona).

servidor squid

Adicionando una segunda restricción

Después, en la pestaña “Restricciones Proxy”, hacemos clic en “Añadir restricción proxy”, allí activamos el botón “Permitir”. Luego oprimiendo la tecla “Control”, seleccionamos la ACL “localnet” seguida de las ACLs “prohibido” y “bloquea_archivos”, después Guardamos.

servidor proxy

La política queda así:

servidor proxy

Definición de la política

Podemos confirmar la política recién creada en el archivo de configuración de Squid. Recuerde que Webmin es sólo una interfaz gráfica, y todo lo que mueva en su módulo de Squid se aplica directamente en el archivo de configuración /etc/squid/squid.conf:

Bloquea lo que esté después del nombre del dominio (página):

acl “nombre de la ACL” urlpath_regex \.exe \.wmv

 

Bloquea lo que esté dentro del nombre de dominio (servidor):

acl “nombre de la ACL” dstdom_regex mp3 fotos

 

Restricción con excepciones


Paso 8 – Vamos a crear una política que bloquee la navegación de un conjunto de clientes, exceptuando el acceso a algunas páginas. Las páginas que vamos a exceptuar son: biblioteca.univalle.edu.co y books.google.es, entre otras. Llamaremos a esta política “bloquea_Internet_para” y la creamos como “Dirección de cliente”. Debemos introducir las direcciones IP de los clientes sin la máscara de red.

servidor squid

Definición de los equipos a los que se le bloqueará el acceso a Internet

Luego creamos la ACL que contendrá los criterios de excepción a la política «bloquea_internet_para«. La llamaremos “excepto_estos_dominios”, y salvamos, así:

servidor proxy

En la pestaña “Restricciones Proxy” activamos el botón “Denegar”. De esta forma el servidor Squid deniega la navegación a las direcciones IP de clientes declaradas en la ACL «bloquea_internet_para«. Luego, oprimiendo la tecla Control seleccionamos la ACL “excepto_estos_dominios”, así:

servidor proxy

La política queda así:

servidor proxy

Política completa

ACL SSL_ports


En la ACL SSL_ports podemos adicionar puertos de navegación para que Squid pueda dar soporte a más servicios. Por ejemplo, para habilitar Google Hangouts adicionamos aquí el rango de puertos 19303:19308.

Podemos consultar más sobre la configuración avanzada de Squid aquí

Plantilla de Configuración de Squid Proxy


Podemos usar el siguiente archivo de configuración de Squid a modo de plantilla, para poner en marcha rápidamente lo que hemos visto hasta ahora.

https://espaciotecnologico.co/squid.conf

Nota: Este archivo tiene más configuraciones que no hemos visto aun, por lo que te recomiendo que continúes leyendo ésta y las siguientes entradas de este tutorial. También debes haber realizado completamente los pasos anteriores.

Configuración definición del proxy en los clientes


La configuración del proxy del lado del cliente, bien sea en Firefox, Chrome o Edge, se hace por medio de su página de ajustes:

servidor squid

La definición en el navegador Mozilla Firefox es muy fácil, pues es el mismo procedimiento en cualquier plataforma. En cambio, la definición del proxy en un navegador basado en Chromium sobre plataformas GNU/Linux si difiere un poco de lo sobrentendido. En GNU/Linux debemos crearle a Chrome un acceso directo, y en sus propiedades le ponemos el siguiente parámetro:

--proxy-server="http://ip_del_servidor_proxy:puerto"

Si dentro de nuestra red LAN tenemos algún servidor web, funcionando como intranet, u otro servicio web, podemos decirle al navegador que no pase las solicitudes hacía ese servidor web a través del Proxy, adicionando el siguiente parámetro así:

--no-proxy-server=192.168.0.205

O también podemos instalarle a Chrome la extensión Proxy SwicthyOmega para gestionar la conexión por proxy:

Habilitando otros Servicios de Internet


Tengamos en cuenta que Squid Proxy es una solución basada en tráfico web, sitios funcionando con protocolo http y https. Podemos estar tranquilos con la mayoría de servicios de Office 365, ellos pueden funcionar con un proxy.

Sin embargo, existen otros servicios que por su naturaleza no pueden ser procesados por un Proxy, tales como correos que funcionan con protocolos IMAP, SMTP, POP3, conexiones SSH, consultas DNS. Para esos servicios debemos habilitar el servidor Linux como router, y luego habilitar la conectividad de dichos servicios con reglas de firewall, que en Linux el módulo que gestiona reglas de firewall se llama IPTABLES.

Habilitar Linux como router es muy sencillo, se hace con estos dos comandos:

_$ sudo sysctl -w net.ipv4.ip_forward=1 
_$ sudo sysctl -p

Seguridad informática del servidor Proxy


Como estamos configurando este servidor Proxy como seguridad perimetral, debemos asegurar que el puerto 8080 (y otros que pueda tener abiertos), esté disponible para nuestros usuarios dentro de la red, pero No disponible para Internet. Es decir, el puerto 8080 debe estar bloqueado en la interfaz conectada a Internet, de lo contrario los hackers tomaran nuestro Proxy para navegar desde afuera. Con la siguiente regla de firewall bloqueamos el puerto 8080 en la interfaz de red eth4.

sudo iptables -A INPUT -i eth4 -p tcp --dport 8080 -j DROP

Y para IPTABLES podemos aprender acerca de este firewall con el siguiente artículo.

Comandos iptables

 

< Primera Parte – Tercera Parte >

Comparte esto en
Publicado en Servidor Proxy.