El desarrollo de las reglas para Firewall

Para el desarrollo de las diferentes reglas de filtrado que contendrá el Firewall, se consultaron diferentes páginas de internet, cuyo contenido era rankings de sitios web más visitados en los ultimos años \cite{SitiosWeb}, así mismo se consulto un archivo sobre sitios web, los cuales se recopilaron de diferentes máquinas de algunos departamentos de Presidencia Municipal de Santa Cruz de Juventino Rosas, esta información fue proporcionada por el Coordinador del departamento de Sistemas Informáticos. En total se lograrón recopilar un total de doscientos cincuenta y siete dominios a los cuales se les prohibirá el acceso por parte de los usuarios. Se clasificó toda la información de la siguiente manera:
Sitios Web a Bloquear

  • Adultos.

  • Música y Radio.

  • Deportes, Series y Películas.

  • Otros.

Antes de comenzar a diseñar las reglas cabe mencionar que dentro de este segmento de red se encuentra un departamento el cual se encarga de la administración de redes sociales, este departamento es Comunicación Social, por tanto será la excepción a aplicar el bloqueo de Facebook y YouTube. Para ello se consultó una bitácora con todas las direcciones IP asignadas a cada departamento que se encuentra en el segmento de red. Para con esto determinar las direcciones de red que tienen asignadas los equipos de dicho departamento.
Aclarados todo los puntos anteriores se procede a diseñar las reglas de filtrado que contendrá el Firewall, las cuales por motivos de fácil consulta y modificación serán guardadas en un archivo cuya extensión será .sh (terminación para un ejecutable en Linux).
Para la creación de las reglas se usaron los nombres de dominio, ya que muchas de las labores realizadas en el segmento de la red utilizan como salida los siguientes puertos 443 (HTTPS), 80 (HTTP), 22 (), 109 (POP2) y 110(POP3), por tanto el bloqueo por puertos quedó descartado de primera instancia.
Posteriormente se optó por colocar una sentencia a la cual se le coloco dentro de ella el dominio o sitio web a bloquear quedando de la siguiente manera:
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.redtube.com” –algo kmp -j DROP
El comando anterior indica que se agregará una sentencias a la opción FORWARD de la tabla Filter desde la fuente 192.168.4.0/24 usando el protocolo tcp en la cual cualquier string que contenga www.redtube.com será descartado.
Este fue el comando que se utilizó para para prohibir el acceso a todos los sitios web de la lista, o bien aceptar el acceso si así se considera, lo único que cambia es la dirección que se coloca dentro de las comillas.

Script con las reglas que tendra en Firewall

A continuación se muestra un aspecto general sobre el script que se creó con las reglas de filtrado web especificando cada una de sus partes. Mostrando simplemente un comando por clasificación que se creó. Además se incluyen las reglas que se utilizan para propiciar la salida a internet por parte de los usuarios de LAN, así como el borrado de reglas que en su caso existieran y las políticas que se colocaron por defecto.
#!/bin/sh
#
# SCRIPT Firewall creado en Fedora 9.
echo -n Aplicando Reglas de Firewall...
#
##########################################################################
## FLUSH de reglas utilizado para borrar todo el contenido que
## exista acerca de las iptables
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
#
##########################################################################
#
#Configuración de las reglas.
#
##########################################################################
#
# Establecimiento de políticas por defecto.
#
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
#
########################################################################
## Nota: eth5 es el interfaz conectado al router y eth0 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
/sbin/iptables -A INPUT -i lo -j ACCEPT
# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.4.0/24 -i eth0 -j ACCEPT
# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth5 -j MASQUERADE
# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
#
echo 1 > /proc/sys/net/ipv4/ip_forward
#
#########################################################################
#REGLAS APLICADAS PARA TODOS LOS USUARIOS DE LA RED 192.168.4.0/24
#Sitios a los cuales nadie tendra acceso
#Páginas para adultos
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.redtube.com” –algo kmp -j DROP
#MUSICA Y RADIO
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “s10.viastreaming.net” –algo kmp -j DROP
#DEPORTES SERIES Y PELICULAS
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.espn.com.mx” –algo kmp -j DROP
#OTROS
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.etejupilco.com” –algo kmp -j DROP
#DETERMINAR IPS LAS CUALES TENDRAN ACCESO A FACEBOOK,YOUTUBE.
#TESORERA
iptables -A FORWARD -s 192.168.4.140 -p tcp -m string –string “www.youtube.com” –algo kmp -j ACCEPT
iptables -A FORWARD -s 192.168.4.140 -p tcp -m string –string “www.facebook.com” –algo kmp -j ACCEPT
#Coordinador Comunicacion Social
iptables -A FORWARD -s 192.168.4.155 -p tcp -m string –string “www.youtube.com” –algo kmp -j ACCEPT
iptables -A FORWARD -s 192.168.4.155 -p tcp -m string –string “www.facebook.com” –algo kmp -j ACCEPT
#Auxiliar de Comunicacion Social
iptables -A FORWARD -s 192.168.4.158 -p tcp -m string –string “www.youtube.com” –algo kmp -j ACCEPT
iptables -A FORWARD -s 192.168.4.158 -p tcp -m string –string “www.facebook.com” –algo kmp -j ACCEPT
#Auxiliar de Comunicacion Social
iptables -A FORWARD -s 192.168.4.156 -p tcp -m string –string “www.youtube.com” –algo kmp -j ACCEPT
iptables -A FORWARD -s 192.168.4.156 -p tcp -m string –string “www.facebook.com” –algo kmp -j ACCEPT
#BLOQUEO DE YOUTUBE Y FACEBOOK AL RESTO DE LA RED
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.facebook.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.youtube.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.instagram.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.twitter.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.pinterest.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.tumblr.com” –algo kmp -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p tcp -m string –string “www.linkedin.com” –algo kmp -j DROP
echo “ OK . Verifique que lo que se aplica con: iptables -L -n”
#FIN DEL SCRIPT

Todas las lineas que contienen un “#” son comentarios colocados para mayor entendimiento.