Restriccion a sitios web con iptables

Algunas veces, los administradores de red usan filtros de contenidos en un proxy-cache como squid para impedir que los ususarios ingresen a ciertos sitios web, Cuando existe un listado de sitios prohibidos, aveces ni siquiera es necesario usar algo tan avanzado como Squid para hacer eso, ya que solo basta crear simples reglas con iptables para evitar dicho trafico ¿Como?
Simple, Agregamos lo siguiente a nuestro script de iptables

Importante: Estas reglas son aplicables para la maquina linux que se encuentra filtrando toda la red, es decir, debe estar ubicada entre el enlace del ISP y el Switch que da servicio a la LAN, si lo que se desea es filtrar la salida en una maquina que no es proveedora de servicio, osea es solamente un PC terminal, se debe cambiar FORWARD por OUTPUT

#!/bin/sh
#Limpiando el Filtro, Esto debe ir siempre al inicio del script
iptables -F

#Aplicando Reglas
iptables -A FORWARD -d www.google.cl -j DROP
iptables -A FORWARD -d www.sexogratis.com -j DROP
iptables -A FORWARD -d www.e-messenger.net -j DROP

Hemos establecido cuales son los sitios a los que no queremos que los usuarios. Para cargar estas reglas, simplemente guardamos el script con extension .sh y lo ejecutamos, de la forma

sh script.sh

¿Como Modifico o Elimino reglas?

Simplemente las borras del script o las comentas con un #, despues vuelves a ejecutar el script, esto es debido a que el script lo primero que hace es limpiar todas las reglas de filtrado y cargarlas denuevo.

Paso Final, Actualizar los dominios

Iptables no filtra direcciones web, sino hace filtrados en base a direcciones IP, por lo que cada vez que se ejecuta un script de este tipo, el sistema consulta a un DNS la equivalencia de los dominios a direcciones ip, es decir, lo que iptables en realidad ve es algo como esto:


iptables -F
iptables -A FORWARD -d 64.233.179.99/32 -j DROP
iptables -A FORWARD -d 64.157.11.70/32 -j DROP
iptables -A FORWARD -d 193.238.160.62/32 -j DROP

Los dominios no cambian de IP a cada minuto, por lo que perfectamente se puede configurar al CROND para que ejecute este script en forma periodica, quizas una vez al dia, a las 3 AM, cuando no hay nadie en la RED

Este es un tipo de filtro basico pero aveces es suficiente cuando lo que se quiere no es restringir la red ni contenidos, sino evitar que ususarios abusen con cosas como el chateo o visitas de sitios especificos.

Ingeniero, enfocado en la familia y el cliente, emprendiendo y capitalizando lo aprendido por años.

1 Comment

Leave Comment

Your email address will not be published. Required fields are marked *

%d bloggers like this: