¿Se puede hacer esto con iptables?

PiTaGoRaS

Tengo un circo montado con mi conexión que no podría explicaros en 10 páginas xD

A grandes rasgos, una parte del tráfico de mi máquina sale a Internet a través de un Linux, que lo NATea y lo enruta por una VPN. El caso es que quiero que algunas conexiones UDP que pasan por esta máquina tengan como puerto de origen el 53. Algunas aplicaciones permiten especificarlo, pero otras no, así que tengo que forzarlo en el iptables.

Lo lógico, creo yo, es cambiarlo en POSTROUTING (SNAT), con una regla como esta:

iptables -t nat -A POSTROUTING -p udp -o ppp0 -j SNAT --to-source ip_vpn:53-53

Y funciona, pero claro, cuando vuelve el paquete no se le restaura el puerto original y por tanto llega a mi máquina:53 y se pierde.

Puedo poner una regla para DNAT que cambie el puerto 53 por otro, pero nos vemos en las mismas, porque el original no es uno fijo, sino aleatorio.

En resumen, ¿se puede hacer lo que quiero?

Lordek

ehmm pitagoras si lo ke kieres es redireccionar todas las conexiones de un puerto a otro creo que con esto te valdrá ... ( ami me funciona)

iptables -t nat -A PREROUTING -i ethxtcp --dport 80 -j REDIRECT --to-port 8080

eso lo utilizo para tener un proxy transparente :D

PiTaGoRaS

No me vale porque eso cambia el puerto de destino, no el de origen, pero gracias de todas formas.

LoRTH

#2 perdona mi ignorancia pero: que ganas con eso?¿

Usuarios habituales

  • LoRTH
  • PiTaGoRaS
  • Lordek