Iptables, configuración de firewall a medida
¿Qué es? #
Si queremos tener control de los paquetes que llegan, entran y salen de nuestro servidor, iptables es nuestro mejor aliado.
Este framework/aplicación está disponible en cualquiera de las distribuciones Linux.
Su principal función es filtrar paquetes, gracias a la creación de reglas.
El comando con el que vamos a trabajar es iptables
Listar reglas #
Entonces si escibimos en nuestra terminal: iptables --list
Nos listará todas las reglas de filtracion (si tenemos) en este caso no pero a continuacion vamos a crearlas y saber interpretarlas.
Con el comando: iptables -nvL
Nos mostrará todas las reglas creadas pero con información más detallada.
Ambos comandos nos mostrará tres “tipos” de reglas que debemos de saber bien que significa cada una:
- Input: paquetes que llegan a la máquina
- Output: paquetes que salen de nuestra máquina
- Forward: paquetes que pasan por nuestra máquina
Borrar reglas #
BOORAR LAS LISTAS DE REGLAS
iptables --flush
iptables --flush OUTPUT
(solo borra las reglas de los paquetes que salen de nuestra máquina)
Creando reglas #
Antes de ponernos a crear reglas de firewall debemos de tener claro las siguientes opciones que complementan
al comando iptables cuando estamos creándolas.
- Interfaz por la que entran (eth0, eth1, wlan0, pp0, lo …)
-i (input): i eth0
-o output: o wlan0
- IP origen de los paquetes (ip concreta, ej: 10.0.1.3 - rango de red 10.0.1.0/8)
-s source
-s 192.168.0.0/24
- IP destino de los paquetes (ip concreta, ej: 10.0.1.3 - rango de red 10.0.1.0/8)
-d destination
-d 192.168.45.12
- Puerto
–deport: –deport 80
- Protocolo de los paquetes (tcp, udp, icmp, …)
-p protocol
-p tcp
Ejemplos #
iptables -A INPUT -p udp -j DROP
Todos los paquetes que entren a nuestra máquina que sean del protocolo UPD los prohibes
Para borrar esta regla:
iptables -D INPUT -p udp -j DROP
iptables -R INPUT 4 -p icmp -j DROP
Reemplaza la regla 4ª a que los paquetes que entren a nuestra máquina que sean del protocolo
ICMP los prohibes.
iptables -D FORWARD 4
Elimina la 4ª regla de los paquetes FORWARD
iptables -L OUTPUT
iptables -L FORWARD
iptables -L INPUT
Lista las reglas segun los paquetes
iptables -F
Tira todas las entradas de reglas
iptables -A INPUT -p tcp --dport 25 -j DROP
Agregamos un regla de paquetes de entrada
Del protocolo tcp
Y prohibimos el puerto 25 (smtp)
Para comprobar los puertos conocidos por la maquina, este comando hace un escaneo y nos dice si están open o filtered:
nmap -sT [IP]
Aceptar el tráfico de una sesión nueva:
iptables -A INPUT -i eth0 -d 192.168.0.1 -s 192.168.0.18 -p tcp --dport 22 --sport 1024:65535 -m state --state NEW -j ACCEPT
Agrega a los paquetes de entrada
De la interfaz eth0
Cuya dirección de destino es 192.168.0.1
Cuyo dirección de origen es 192.168.0.18
Protocolo tcp
Puerto 22