ssh tunel port forward külső IP-re iptables-ben

Fórumok

Sziasztok,
a következőt szeretném megoldani:

Olyan hálózaton vagyok ahol csak az ssh port van nyitva. Ennél fogva nem működik a levelezésem.
Be ssh-ztam egy linux gépre, létrehoztam két tunnel-t a kimenő(465, ssl) és bejövő(993, ssl) leveleknek. Eddig működik is a dolog, a linux gépig eljut a kapcsolat. Innen szeretném a két portra érkező forgalmat a mailserver felé forwardolni.
Eddig a következővel próbálkoztam:


*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth+ -p tcp --dport 993 -j DNAT --to 80.95.85.67:993
-A PREROUTING -i eth+ -p tcp --dport 465 -j DNAT --to 80.95.85.67:465
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth+ -p tcp -m state --state NEW --dport 993 -j ACCEPT
-A FORWARD -i eth+ -p tcp -m state --state NEW --dport 465 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Hálás lennék minden nemű segítségért.

Hozzászólások

Megkérdezed, hogy mi a hálózaton az smtp-szerver, és azt használod. Pont. Vagy ha tényleg se@@be akarod magad rúgatni, akkor a saját gépeden felraksz egy exim/postfix/akármi MTA-t, bekonfigurálod hogy 127.128.129.130-on látszódjon, és oda forgatod be az SMTP-forgalmat.

Szerintem eleg volna a bejovo forgalomhoz tartozo prerouting szabalyt meghagyni, es nem mellesleg egy rakat folosleges dolog van az input es forward lancon, mivel a policyd accept mindezekhez. ;)
Egyebkent ennyivel menni kene.
A linux amelyikre be ssh-ztal biztosan a firewall/router a cegnel?

Köszi,
közben rájöttem.
a prerouting valóban elég lenne ha nem tunnel-ről lenne szó. Merthogy ilyen esetben a localhost-ra esnek be a csomagok, ami meg kimarad a preroute-ból.
A megoldás a preroute sor helyett ez:

-A OUTPUT -p tcp --dport 993 -j DNAT --to 80.95.85.67:993
-A OUTPUT -p tcp --dport 465 -j DNAT --to 80.95.85.67:465

Ezzel működik mindkét irány.

A linux box amire be ssh-zok egy belső hálózaton van egy router mögött. A routeren nem kell semmit állítani.

Köszi