Frage

Ist es möglich, den Ziel-Port eines UDP-Paket unter Verwendung von iptables zu ändern?

Ich versuche, einen SNMP-Agenten zu erhalten Fallen auf 1620 auszusenden statt 162. Leider bisher habe ich es geschafft, nur den Quell-Port zu ändern:

  

iptables -t nat -A POSTROUTING- -p udp   --dport 162 -j SNAT --to: 1620

War es hilfreich?

Lösung

Diese Nutzung wird offenbar nicht unterstützt. Genommen von http://www.netfilter.org/documentation/HOWTO/NAT- howto.txt :

  

6.3.7. Das Ändern des Ziel von lokal-generierten Verbindungen

     

Der NAT-Code können Sie einfügen   DNAT-Regeln in der Wertschöpfungskette, aber
  dies ist nicht vollständig in 2.4 (es unterstützt   sein kann, aber es erfordert eine neue
  Konfigurationsoption, einige Tests,   und ein gutes Stück von Codierung, so es sei denn,   jemand Verträge Rusty es, ich zu schreiben   würde es bald nicht erwarten).

     

Die Strombegrenzung ist, dass Sie   kann nur das Ziel ändern, um
  die lokale Maschine (z `j DNAT --to   127.0.0.1' ), nicht auf einer anderen Maschine, sonst werden die Antworten nicht   werden korrekt übersetzt.

Andere Tipps

Angenommen, Sie wissen, welche Maschine Sie senden an:

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620

könnten Sie umleiten 162-1620

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620

@PiedPiper war richtig. Mit DNAT müssen Sie eine IP-Adresse angeben, aber wir wollen nur Port-Umleitung zu tun, so -j REDIRECT in diesem Fall arbeiten kann.

Siehe http: //www.netfilter .org / Dokumentation / Howto // NAT-HOWTO-6.html # ss6.2

Statt SNAT zu machen, versuchen, mit DNAT. Der Quell-Port wird geändert, weil SNAT bedeutet SourceNAT, so DNAT wird für Sie arbeiten.

Sie können eine Umleitungsregel einrichten und dann das Paket mit dem modifizierten Port wieder injizieren.

Ich habe diese ein getan Weile zurück auf Mac OS X, aber es ist das gleiche Prinzip auf Linux: http: //blog.dv8. ro / 2006/08 / mit-divert-Steckdosen-on-mac-os-x.html

Sie müssen im Grunde eine sehr einfache transparente Proxy erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top