Estoy usando tablas de IP junto con la cola de filtro de red para modificar paquetes mediante programación.
Estoy usando reglas de iptables en ubuntu lab con 2 NIC eth0 para Internet y eth1 para la LAN. He usado las conocidas reglas de iptables para NATing con enmascaramiento en eth0 Sudo iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE sudo iptables -append ADELANTE -i eth1 -j ACEPTAR. sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 Sudo iptables -t mangle -A OUTPUT -j NFQUEUE. Estas 4 reglas se utilizan para ayudarme a capturar paquetes dentro de mi programa y modificar paquetes o eliminar lo que quiero usando nfq_set_verdict. De hecho, todo va como esperaba, es decir, los tres tipos de protocolo: los paquetes icmp, tcp y udp se modifican y reinyectan. En la cola, luego sale eth0 a Internet tomando la dirección IP de eth0 como dirección de origen (efecto de usar la regla NAT MASQUERADE ). Esto es cierto para todos los paquetes EXCEPTO: los paquetes de respuesta de ping icmp o de confirmación tcp. Salen a Internet tomando la IP privada del dispositivo LAN: 192.168.xx y llegan al otro lado con esta dirección IP de origen privada. Algunas ideas. Gracias.
Respuesta1
Estoy usando reglas de iptables en ubuntu lab con 2 NIC eth0 para Internet y eth1 para la LAN. He usado las conocidas reglas de iptables para NATing con enmascaramiento en eth0 Sudo iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE sudo iptables -append ADELANTE -i eth1 -j ACEPTAR. sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 Sudo iptables -t mangle -A OUTPUT -j NFQUEUE. Estas 4 reglas se utilizan para ayudarme a capturar paquetes dentro de mi programa y modificar paquetes o eliminar lo que quiero usando nfq_set_verdict. De hecho, todo va como esperaba, es decir, los tres tipos de protocolo: los paquetes icmp, tcp y udp se modifican y reinyectan. En la cola, luego sale eth0 a Internet tomando la dirección IP de eth0 como dirección de origen (efecto de usar la regla MASQUERADE NAT ). Esto es cierto para todos los paquetes EXCEPTO: los paquetes de respuesta de ping icmp o de confirmación tcp. Salen a Internet tomando la IP privada del dispositivo LAN: 192.168.xx y llegan al otro lado con esta dirección IP de origen privado. Algunas ideas. Gracias.