Puncte:1

Cum să traduceți numerele portului sursă UDP folosind Iptables

drapel jp

Am o aplicație UDP care trimite pachete cu numere de porturi sursă de intrare egale cu numerele de porturi de destinație de pe ambele părți ale comunicației. Documentația mai precizează că această aplicație nu va funcționa în cazul în care este implicată Network Address Port Translation (NAPT). Am verificat că acesta este într-adevăr cazul și, de asemenea, că un NAT, care păstrează numerele de porturi de destinație ȘI SURSA, funcționează corect, uneori denumit „mod static NAT”. Cu toate acestea, încerc să fac această aplicație să funcționeze folosind NAPT, denumit uneori și „modul ascunde NAT”. M-am gândit că acest lucru ar fi posibil folosind iptables după cum urmează, pe partea serverului Ubuntu, primind numerele de piesă sursă UDP modificate:

hercules@pjjs12:~$ sudo iptables -t nat -I POSTRUTING 1 -p udp --dport 12000 -j SNAT --to-source :12000
hercules@pjjs12:~$ sudo iptables -t nat -I POSTROUTING 2 -p udp --dport 12001 -j SNAT --to-source :12001
hercules@pjjs12:~$ sudo iptables -t nat -I POSTROUTING 3 -p udp --dport 12002 -j SNAT --to-source :12002
hercules@pjjs12:~$ sudo iptables -t nat -I POSTROUTING 4 -p udp --dport 12003 -j SNAT --to-source :12003
hercules@pjjs12:~$ sudo iptables -t nat -I POSTRUTING 5 -p udp --dport 12004 -j SNAT --to-source :12004

Când rulez aplicația, tcpdump arată că aceasta nu funcționează. De asemenea iptables -L comenzile arată că regulile aparent nu sunt folosite:

hercules@pjjs12:~$ sudo iptables -vxnL -t nat --line-numbers
PRERUTARE în lanț (politica ACCEPT 0 pachete, 0 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         

INTRARE în lanț (politica ACCEPT 0 pachete, 0 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         

Ieșire în lanț (politica ACCEPT 0 pachete, 0 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         

POSTROUTING în lanț (politica ACCEPT 0 pachete, 0 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         
1 0 0 SNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12000 la::12000
2 0 0 SNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12001 la::12001
3 0 0 SNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12002 la::12002
4 0 0 SNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12003 to::12003
5 0 0 SNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12004 to::12004
hercules@pjjs12:~$ sudo iptables -vxnL --line-numbers
INTRARE în lanț (politica ACCEPTĂ 542660 pachete, 30600115 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         

Lanț FORWARD (politica ACCEPT 1838 pachete, 100767 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         

IEȘIRE în lanț (politica ACCEPTĂ 562972 pachete, 888057717 octeți)
num pkts octeți target prot opt ​​in out sursă destinație         
hercules@pjjs12:~$ 

Trebuie să recunosc că aceasta este prima mea încercare de a folosi iptables deci nu sunt deloc sigur dacă acest lucru este posibil sau dacă trec cu vederea lucruri de bază. Un ajutor în acest sens va fi foarte apreciat.

Mulțumiri,

Petru

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.