Comandos frecuentes IPTables
Comandos frecuentes iptables
-- Ver las reglas actuales
iptables -L
-- Archivo de scripts para iptables
/etc/sysconfig/iptables
--reiniciar iptables
service iptables restart
--Bloquear un host específico iptables
iptables -I INPUT -s 192.168.16.8 -j DROP
--Permitir acceso a un puerto específico e IPs específicas, bloquear el resto
iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.16.100 -j ACCEPT
-- Permitir acceso a un puerto en especifico
iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.16.100 -j ACCEPT
-- Permitir acceso a puerto 80 abrir puerto 80
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEP
Despues de agregar la politica reiniciar el servicio "service iptables restart" y probar
--src-range puede ser representado como 192.168.16.100-192.168.16.200
-- Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)
Permitir momentáneamente una IP para que acceda al servidor FTP
/sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp --dport 21 -j ACCEPT
-- listar reglas por número
iptables -L --line-numbers
--Para borrarla después de las pruebas
/sbin/iptables -t filter -D INPUT 1 /sbin/iptables -D INPUT 1
-- Bloquear una IP
iptables -A INPUT -s 61.216.2.15 -j DROP iptables -A OUTPUT -d 61.216.2.15 -j DROP
-- guardar permanentemente las reglas iptables para ubuntu
apt-get install iptables-persistent
Después de instalarlo es posible guardar y recargar las reglas con:
sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload
Para guardarlas de forma más manual
1. sudo su 2. iptables-save > /etc/iptables.rules
Restaurar tablas
#!/bin/sh iptables-restore < /etc/iptables.rules exit 0
4. Después en /etc/network/if-post-down.d/iptables, pon:
#!/bin/sh iptables-save -c > /etc/iptables.rules if [ -f /etc/iptables.rules ]; then iptables-restore < /etc/iptables.rules fi exit 0
5. Dale permisos a los scripts:
sudo chmod +x /etc/network/if-post-down.d/iptables sudo chmod +x /etc/network/if-pre-up.d/iptables
-- Bloquear todo y solo permitir acceso a ciertas IPs conservando el estado de la sesión
iptables -P FORWARD DROP iptables -A INPUT -m state --state INVALID -j DROP iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s 201.141.52.125 -j ACCEPT iptables -A INPUT -s 101.217.218.235 -j ACCEPT iptables -A INPUT -s 101.190.20.202 -j ACCEPT iptables -A INPUT -s 192.168.1.1 -j ACCEPT iptables -A INPUT -s 192.168.1.2 -j ACCEPT iptables -A INPUT -s 201.68.186.58 -j ACCEPT iptables -P INPUT DROP
-- Si solo se quiere permitir sin importar el estado
iptables -A INPUT -s 192.168.1.1 -j ACCEPT iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
-- Limpiar todas las reglas
sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X