Ejemplos de SNAT, DNAT con IPTABLES

shape
shape
shape
shape
shape
shape
shape
shape

Hay varias variaciones de NAT que se pueden configurar con IPTABLES. Este artículo pretende mostrar algunos ejemplos de SNAT, DNAT con iptables.

Enmascarar todos los paquetes salientes como IP WLAN0

iptables -t nat -A PREROUTING -s 192.168.1.2 -i eth0 -j MASQUERADE

Todos los paquetes que salgan de eth0 tendrán la dirección IP src eth0

iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 192.168.1.1

Regla de concordancia que especifica un puerto de origen

A continuación, asegúrese de que los paquetes de los dispositivos Eth tienen la dirección IP de origen correcta. Atención: cuando se especifica un puerto, también debe especificarse el protocolo.

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.2 -p udp –dport 16020 -j SNAT –to 10.1.1.7:51889

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.2 -p tcp –dport 21 -j SNAT –to 10.1.1.7:21

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.3 -j SNAT –to 10.1.1.9

Los paquetes destinados a IP 10.1.1.7 se reenviarán a 192.168.1.2 UDP,TCP

Los paquetes destinados a IP 10.1.1.9 se reenviarán a 192.168.1.3 UDP,TCP

Funciona correctamente con ping (ICMP)

iptables -t nat -A PREROUTING -i wlan0 -d 10.1.1.7 -j DNAT –a-destino 192.168.1.2 iptables -t nat -A PREROUTING -i wlan0 -d 10.1.1.9 -j DNAT –a-destino 192.168.1.3

Los paquetes destinados a IP 10.1.1.7 se reenviarán a 192.168.1.2 UDP,TCP

NO funciona correctamente con ping (ICMP), no soporta IP WLAN respuesta del protocolo ICMP en un ping sin

iptables -t nat -A PREROUTING -p tcp -i wlan0 -d 10.1.1.7 -j DNAT –to-destination 192.168.1.2 iptables -t nat -A PREROUTING -p udp -i wlan0 -d 10.1.1.7 -j DNAT –to-destination 192.168.1.2

Cambiar el puerto SNMP de los mensajes SNMP salientes

iptables -t nat -A OUTPUT -p udp –dport 162 -j DNAT –to-destination 192.168.1.33:1162

Añadir IP secundaria a WLAN0

ip addr add 10.1.1.7/24 dev wlan0 ip addr add 10.1.1.9/24 dev wlan0

Lista todas las direcciones IP asignadas a wlan0

ip add list dev wlan0

Todos los paquetes que salen de eth1 cambiarán su IP de origen a 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.20.1

Todos los paquetes TCP que salgan de eth1 por el puerto 443 cambiarán la IP de origen a 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p tcp –dport 443 -j SNAT –to 192.168.20.1:443

Todos los paquetes ICMP que salgan de eth1 cambiarán la IP de origen a 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p icmp -j SNAT –to 192.168.20.1

Todos los paquetes admitidos que salgan de eth1 y tengan una IP de origen 192.168.1.22 cambiarán su IP de origen a 192.168.20.1.

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p all -j SNAT –to 192.168.20.1

SNAT en la interfaz de asignación dinámica

uso con modo WIFI dual, donde WiFi puede ser AP y STA al mismo tiempo, añadido al script de inicialización

asumiendo que wlan1 es la interfaz STA ip=$(ip -o addr show up primary global scope wlan1 | while read -r num dev fam addr rest; do echo ${addr%/*}; done) echo $ip # todos los paquetes que salgan de wlan1 cambiarán la IP de origen a la IP de la interfaz STA iptables -t nat -A POSTROUTING -o wlan1 -j SNAT –to $ip

Bloquear el tráfico de ETH0 a Cell, excepto NTP

El orden es importante porque DROP terminará después de permitir la comunicación con el servidor NTP. Por eso hay que INSERTAR las normas. Si se utiliza APPEND, el orden de los comandos debe invertirse para garantizar que DROP es el último.

iptables -I FORWARD -i eth0 -o usb0 -j DROP iptables -I FORWARD -d pool.ntp.org -i eth0 -o usb0 -j ACCEPT

Bloquear el tráfico en ETH1 en función de los puertos

Útil cuando tienes un dispositivo detrás del router y quieres limitar su capacidad de usar/explotar recursos en el router.

Utilícelo con precaución, ya que puede bloquearse.

Bloquea el puerto 80 (http) sólo en la interfaz ETH1

iptables -t filter -A INPUT -i eth1 -p tcp –dport 80 -j DROP

Bloquea el puerto 443 (https) sólo en la interfaz ETH1

iptables -t filter -A INPUT -i eth1 -p tcp –dport 80 -j DROP

Bloquea el puerto 22 (ssh) sólo en la interfaz ETH1

iptables -t filter-A INPUT -i eth1 -p tcp –dport 22 -j DROP

Bloquea ping (icmp) en la unidad de interfaz. ETH1 no responde al ping

iptables -t filter -A INPUT -i eth1 -p icmp -j DROP

Comprobación de la tabla NAT

Se debe especificar la tabla iptables para el listado. POR EJEMPLO. nat, mangle.

iptables -t nat -L -n -v

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *