lunes, 21 de marzo de 2011

iptables, Crear cadenas

Con la opción "-N" de iptables un usuario puede definir una cadena propia a la cual asociarle posteriormente un conjunto de reglas de la misma forma que se hace con las cadenas predefinidas.

En este caso voy a crear dos cadenas, una con reglas para el trafico entrante con por la tarjeta ethernet del PC y otra para el trafico entrante por el wifi (wlan0 en este caso). Vosotros podéis crear cadenas para lo que queráis, cadena por origen , por destino, por tipo de trafico, son muchas las opciones.

Lo primero creamos la cadena, para ello le damos el nombre que queramos, yo he escogido input_wlan0  e input_eth0.

/sbin/iptables -N input_wlan0
/sbin/iptables -N input_eth0

Ahora debemos introducir las reglas que queramos, dentro de esta cadena, por ejemplo, vamos a permitir el puerto 80 para el wifi y el 8080 para el ethernet.

/sbin/iptables -A input_wlan0 -p tcp -m tcp --sport 80 -j ACCEPT
/sbin/iptables -A input_eth0 -p tcp -m tcp --sport 8080 -j ACCEPT

Ahora para aplicar estas reglas, debemos introducir la cadena en INPUT:

/sbin/iptables -A INPUT -i wlan0 -j input_wlan0
/sbin/iptables -A INPUT -i eth0 -j input_eth0

Ahora verificamos que pase trafico por esta cadena con iptables -nvL.

CONSEJO: Cuidado con donde y como introducimos estas reglas, el orden en iptables es importante, recordar que iptables "lee" las cadenas de arriba a abajo por tanto si ponemos algo como esto:

/sbin/iptables -A INPUT -j DROP
/sbin/iptables -A input_wlan0 -p tcp -m tcp --sport 80 -j ACCEPT

El tráfico con origen 80 será descargado  en lugar de ser aceptado como indica la cadena input_wlan0. Lo correcto sería:

/sbin/iptables -A input_wlan0 -p tcp -m tcp --sport 80 -j ACCEPT
/sbin/iptables -A INPUT -j DROP

De esta forma, el trafico con origen puerto 80 será aceptado y el resto descartado.

No hay comentarios:

Publicar un comentario