Iptables sirve para crear un firewall ,es muy importante a la hora de unir redes entre si ya que podemos elegir que conexion se dejapa pasar y cual se denegara , se puede establecer que protocolo , puerto , interfaz , tipo de conexion , ip va a ser filtrada osea es muy configurable y potente.
Hay dos tipos de reglas:
denegar todo : es la mas segura , pero a la vez mas dificil de implementar en redes grandes ya que tenemos que saber exactamente que tipo de conexiones se van a permitir , para habilitarlas una por una
Habilitar todo :es la mas facil , ya que se acepta todo y se va denegando lo que no se quiere , pero tenemos que tener cuidado de no olvidarnos de denegar algo que pueda comprometer la red.
Conceptos generales:
Iptables consta de 3 tablas :
- Filter : filtra los paquetes en general
- Nat : modifica direcciones en los paquetes para permitir el enmascaramiento de una red
- Mangle : realiza operaciones especiales en los paquetes
- INPUT : todo lo que entra al firewall
- OUTPUT : todo lo que sale de el
- FORWARD : todo lo que atravieza el firewall
- POSTROUTING : todo lo que va a realizar despues de enviar el paquete
- PREROUTING : todo lo que va a realizar antes de enviar el paquete
- Filter : tiene como cadenas posibles , INPUT ,OUTPUT , FORWARD
- Nat : tiene como cadenas , POSTROUTING ,PREROUTING y OUTPUT
- Mangle : tiene como cadena INPUT ,OUTPUT , PREROUTING , POSTROUTING y FORWARD
TABLA CADENA ORDEN tarjets
Tarjets (objetivos) : todos los paquetes tratados por el firewall tendran como resultado final un objetivo , pueden ser 3.
- ACCEPT , el paquete es aceptado
- DROP , el paquete es dropeado , descartado.
- REJECT ,el paquete es descartado y se le avisa a quien lo envio.
- -t :tabla a utilizar
- -j : se coloca al final e indica el objetivo
- -p : establece el protocolo
- -s : ip origen
- -d : ip destino
- --dport : puerto destino
- --sport : puerto origen
- iptables -A , añade
- iptables -D , borra
- iptables -R , reemplaza
iptables -A INPUT -p icmp -j ACCEPT
este ejemplo añade la regla en la tabla FILTER que toda entrada con el protocolo icmp sea aceptada
la tabla FILTER es la tabla por defecto si quisieras cambiar de tabla tendrias que usar la opcion -t
iptables -t NAT
iptables -t MANGLE
iptables -D INPUT -p icmp -j ACCEPT
borra la regla anteriormente introducida
este ejemplo añade la regla en la tabla FILTER que toda entrada con el protocolo icmp sea aceptada
la tabla FILTER es la tabla por defecto si quisieras cambiar de tabla tendrias que usar la opcion -t
iptables -t NAT
iptables -t MANGLE
iptables -D INPUT -p icmp -j ACCEPT
borra la regla anteriormente introducida
Listar reglas , borrar reglas y resetear contadores :
- iptables -L , lista las reglas de la tabla FILTER , para listar las reglas de la tabla NAT y MANGLE hay que usar la opcion -t
- iptables -F , borra todas las reglas de la tabla FILTER
- iptables -Z ,resetea los contadores de la tabla FILTER
- Por protocolo , (UDP , TCP , ICMP )
- Por puerto
- Por direccion ip
- Por interfaz (eth0 , eth1 ,etc)
- Por estado en la conexion (conexion establecida , relacionadas y nuevas )
- iptables -A INPUT -p icmp -j DROP , dropea el protocolo icmp en la entrada
- iptables -A INPUT -p tcp --dport 22 -j DROP , dropea el puerto 22
- iptables -A FORWARD -d www.google.com -j DROP , dropea el acceso a google
- iptables -A INPUT -i eth0 -p icmp -j DROP , dropea el protocolo icmp en la interfaz eth0
- iptables -A FORWARD -m state --state NEW -s 192.168.1.1 -p tcp --dport 20 -j DROP , se deniega el acceso al puerto 20 a las conexiones nuevas de la red 192.168.1.1