NAT selectiva de los paquetes con iptables

NAT selectiva de los paquetes con iptables

¿Cómo puedo hacer que iptables sea NAT para todos los paquetes, excepto aquellos que tienen una dirección de destino de la subred 192.168.254.0/24?

Respuesta1

Si te entiendo bien, esto debería ser bastante fácil usando la opción -dcon negación. Por ejemplo, una regla como esta:

$ iptables -A POSTROUTING ! -d 192.168.254.0/24 -j SNAT --to-source new_source_ip

Por supuesto, puedes cambiar la regla según tus necesidades. Esto cambia la IP de origen de todos los paquetes destinados a cualquier destino excepto la subred indicada.

Respuesta2

En mi opinión, el siguiente orden de comandos de iptables funcionaría:

1. iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j RETURN
2. iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth0 -j MASQUERADE

la regla 1 coincidirá con su red y no la ENMASCARARÁ. La regla 2 la enmascarará todo, pero en general no es una buena idea dar el comodín 0.0.0.0 (ni siquiera estoy seguro de si funcionará). Debes agregar selectivamente todas las redes que quieras enmascarar y el resto simplemente no se enmascararán.

información relacionada