miércoles, 30 de marzo de 2011

Como transformar tu PC en un Firewall con Iptables.

En ciertas ocasiones, alguien, dispone de un PC antiguo y no sabemos que hacer con el. Con Linux podemos transformarlo en un firewall bastante potente para tu Pc.
El mapa sería el siguiente:
Para este procedimiento debemos disponer de dos tarjetas de red, un cable de red cruzado y un PC.

Ahora vamos a configurar ambas interfaces, según el gráfico anterior, con la siguiente información.
La configuración de la interface ETH1:

ip: 192.168.2.5 (Yo he elegido este rango IP al azar, pon el que quieras) 
mascara: 255.255.255.0
gateway: 192.168.1.1

El gateway será la ip del Router que nos da acceso a internet, en todos los casos.
La configuración de la interface ETH0:

ip: 192.168.1.5 (Yo he elegido este rango IP al azar, pon el que quieras) 
mascara: 255.255.255.0
gateway: 192.168.1.1

Una vez que tengamos ambas interface configuradas y todos los cables conectados correctamente (el cable de red Cruzado debe conectar un PC con el OTRO PC) editamos el fichero /etc/sysctl.conf y descomentamos la siguiente linea:

net.ipv4.ip_forward=1

Con esto estamos permitiendo el reenvío de paquetes. Ahora vamos a configurar el firewall iptables para que reenvíe el trafico de la interface ETH1 a ETH0 y viceversa.

/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

La red 192.168.2.0/24 debe ser la red que hay configurada en ETH1.
La opcion -o indica la interface de destino, en este caso eth0, esta interface debe ser siempre la interface que está conectada directamente al router ADSL de nuestra casa.
Llegados a este punto solo nos queda configurar el resto de IPTABLES para permitir o denegar el trafico. Un ejemplo sería:

/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A FORWARD -p tcp -m tcp --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --sport 80 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --dport 8080 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --sport 8080 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --sport 53 -j ACCEPT

Como vemos en este caso no permitimos ningún tipo de trafico ni entrante ni saliente desde el propio PC que tenemos como Firewall pero si dejamos pasar trafico a internet desde tu Lan hacia internet y viceversa.

RECOMENDACIONES

Es muy recomendable deshabilitar cualquier firewall que dispongamos en ambos PC antes de empezar con esta guía, de esta forma si nos da algún problema podemos descartar que sea de iptables.

Las reglas iptables, introducelas de una en una. De esta forma te aseguras que dicha regla funciona correctamente y hace lo que pretendes que haga, un usuario no está acostumbrado a configurar iptables y mucho menos a configurar iptables FORWARD por tanto es muy fácil cometer errores.

Comandos Básicos:

Estos son dos comandos que podemos usar para verificar si las reglas iptables hacen lo que queremos que haga.

/sbin/iptables -t nat -L -n -v
/sbin/iptables -L -n -v

No hay comentarios:

Publicar un comentario