Iptables es una herramienta avanzada para filtrar paquetes en Linux. Es una herramienta muy establecida, ya que hay millones de sitios en todo el mundo que funcionan y utilizan iptables de forma continua. En el blog y los cursos vimos como usar algunas herramientas más simples como UFW o Firewalld, pero como hace tanto tiempo que no lo usaba, dejo este pequeño manual con ejemplos.
1- Listar reglas
iptables -L
2- Listar reglas INPUT
iptables -L INPUT -n --line-numbers
3- Listar reglas OUTPUT
iptables -L OUTPUT -n --line-numbers
4- Bloqueando accesos
4.1- Bloquear acceso puerto 80
iptables -A INPUT -p tcp --dport 80 -j DROP
4.2- No permitir ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
5- Permitir accesos
5.1- Permitir acceso al puerto 22 o ssh
iptables -A INPUT -i ens33 -m tcp -p tcp --dport 22 -j ACCEPT
Permitir el tráfico de Sendmail o Postfix
iptables -A INPUT -i ens33 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ens33 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
Permitir todos los SSH entrantes
iptables -A INPUT -i ens33 -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -o ens33 -p tcp --sport 22 -j ACCEPT
5.2- Permitir multiples puertos
iptables -A INPUT -i ens33 -p tcp -m multiport --dports 22,80,443 -j ACCEPT
6- Eliminar todas las reglas
iptables -F o iptables --flush
6.1- Eliminar relas de a 1 por su número
Listar
iptables -L INPUT -n --line-numbers
Eliminar
iptables -D INPUT 1
7- Guardar la configuración de iptables
iptables-save
7.1- Si queremos guardar las reglas a un archivo para tener un backup:
iptables-save > /root/my.active.firewall.rules
7.2- En distros como RHEL usamos
service iptables save
7.3- Para restaurar reglas hacemos:
iptables-restore < /root/my.active.firewall.rules
8- Bloquear una url
Vamos a bloquear Facebook por ejemplo.
iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
9- Prevenir ataques DoS
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
-m limit: este limite que usará iptables
-limit 25 / minute: solo se pueden conectar 25 paquetes de solicitud por minuto.
-limit-burst 100: este valor indica que el límite / minuto se implementará solo después de que el número total de conexiones alcance el límite
10- Consultar los paquetes rechazados por iptables
Para saber los paquetes que iptables ha rechazado debemos teclear:
iptables -N LOGGING