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!
- 1706 megtekintés
Hozzászólások
Nem iptables, de hátha segít:
socat TCP4-LISTEN:81,fork TCP4:10.0.30.1:82
- A hozzászóláshoz be kell jelentkezni
Elsőre ez szimpatikus megoldásnak látszik, de sajnos a socat amikor kap egy kérést 81 -es portra, akkor "acces denied" üzenettel szemeteli tele a konzolt és nem továbbítja a kérést a másik szerver 82 -es portjára. :(
- A hozzászóláshoz be kell jelentkezni
A 81-es porton hallgatáshoz megfelelő jogosultság kell (1024 alatti port), nem lehet, hogy ez a gond? 1024 feletti porttal működik?
- A hozzászóláshoz be kell jelentkezni
Sajnos nem működik 1024 fölött sem. Egyébként root -ként próbáltam a 81 -est (amit más program nem használ egyébként a szerveren) és a root -nak lenne rá joga afaik.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Sajnos ez a megoldás nem működik, legalábbis a két virtuális gépemen nem. :(
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Köszi, ezt megnézem holnap! :)
- A hozzászóláshoz be kell jelentkezni