iptables : átirányítás két gép között

Fórumok

Sziasztok!

Ubuntun szeretnék olyat csinálni, hogy A gép (IP: 10.0.2.1) egyik portjáról (81) szeretnék átirányítani minden TCP/UDP forgalmat B gép (IP: 10.0.30.1) másik portjára (82). Mindkét gép megadott portján ugyanaz az alkalmazás hallgat, ugyanazzal a verzióval. Elképzelhető, hogy több socket -et használ ez az alkalmazás (mint pl. az ftp szerver), ezért rinetd -vel nem megoldható (vagy rosszul működik) az átirányítás.

Két kérdésem volna:
1) iptables segítségével megoldható a problémám?
2) hogyan? :)

Sajnos iptables -t még nem igazán használtam, így nem tudok nekikezdeni. :(

Köszönöm előre is a segítséget!

Hozzászólások

Nem iptables, de hátha segít:

socat TCP4-LISTEN:81,fork TCP4:10.0.30.1:82

szerintem valami hasonló kellhet neked:

iptables -t NAT -A PREROUTING -d 10.0.2.1 --dport 81 -j DNAT --to-destination 10.0.30.1:82
iptables -t NAT -A POSTROUTING -d 10.0.30.1 --dport 82 -j SNAT --to-source 10.0.2.1

kipróbálni most nem tudom. meg portokat engedélyezd persze.

itt van egy nagyon jó leírás és magyarázat: http://iptables.rlworkman.net/chunkyhtml/x4033.html

lényeg hogy kicsit bonyolultabb, és a fentihez még az OUTPUT-hoz is be kell állítani a DNAT-ot. egyébként a fenti dolog működik, ha egy harmadik hostról hívod meg az átirányítandó port-ot. csak ha ugyanarról a host-ról, amelyen az átirányítás történik, akkor kell az OUTPUT-ot is DNAT-olni.

teszteltem és így működik nálam:

iptables -t NAT -A OUTPUT -p tcp -d 10.0.2.1 --dport 81 -j DNAT --to-destination 10.0.30.1:82
iptables -t NAT -A PREROUTING -p tcp -d 10.0.2.1 --dport 81 -j DNAT --to-destination 10.0.30.1:82
iptables -t NAT -A POSTROUTING -p tcp -d 10.0.30.1 --dport 82 -j SNAT --to-source 10.0.2.1