viernes, 29 de enero de 2016

IPTABLES

 CONFIGURACIÓN de un Cortafuegos de red básico


  • La política por defecto para el reenvío de paquetes es la de descartarlos. Sin embargo: 
    • Se permite el reenvío para el tráfico TCP por el puerto 80 desde la red interna. 
    • Se permite el reenvío para poder acceder al servicio DNS desde la red interna.
    • Se permite el reenvío para el tráfico por el puerto 443 solamente para una IP concreta desde la red interna.



La configuración de IPTABLES se basa en la aplicación de las reglas que declaremos en un script.

Lo primero que debe incluir nuestro script SIEMPRE es la eliminación de las reglas anteriores para evitar conflictos :

iptables -F
iptables -X
iptables -Z
iptables -t nat -F


Lo siguiente que debemos incluir en nuestro script, es la política por defecto de nuestro cortafuegos.
En este caso, será restrictiva, es decir, se denegará todo el tráfico, exceptuando el que definamos claramente.

iptables -p INPUT DROP
iptables -P OUTPUT DROP
iptables -p FORWARD DROP


Permitimos el tráfico en la red local, para evitar errores y no denegarnos a nosotros mismos el tráfico a nuestros servicios locales.

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

*Con '' -i lo '' indicamos input lo, es decir, entrada por local, y con '' -o lo '' salida por la red local


Permitir el tráfico por el puerto 80.
iptables -A FORWARD -i eth1 -s 192.168.100.0/24 -p tcp –dport 80 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.100.0/24 -p tcp –dport 80 j ACCEPT

*Permitiendo el tráfico por el puerto 80, permitimos navegar por http, si además queremos permitir navegar por https, habilitamos el puerto 443:

iptables -A FORWARD -i eth1 -s 192.168.100.0/24 -p tcp –dport 443 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.100.0/24 -p tcp –dport 443 j ACCEPT


Permitir puerto 53, consultas DNS:
Como sabemos, el servicio DNS opera con el protocolo UPD y TCP, por lo que es necesario habilitar el tráfico para los dos protocolos

iptables -A FORWARD -i eth1 -s 192.168.100.0/24 -p udp –dport 53 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.100.0/24 -p udp –dport 53 j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.100.0/24 -p tcp –dport 53 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.100.0/24 -p tcp –dport 53 j ACCEPT


Habilitar el servicio ssh, para toa la red.

El servicio SSH opera por ell puerto 22, si queremos habilitar las conexines ssh tanto para la red interna como la pública, no definimos la interfaz en la declaración:

iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT


Por último, habilitamos el enmascaramiento, permitiendo la salida al exterior de nuestros clientes a través de nuestra red pública:

echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

Guardamos nuestro script, le damos permiso de ejecución, y lo ejecutamos.

Para comprobar que las reglas son aplicadas, ejecutamos:
iptables -L -n

No hay comentarios:

Publicar un comentario