portforward loopback-re

Fórumok

Hali,

Adott egy szerver loopback-en figyelő mysql 1 db publikus ip.
A feladatom az lenne, hogy egy bizonyos ip-ről a publikus ip-re címzett 3306-ot forwardoljam a lo-ra. ip_forward bekapcsolva, de az eth0-ról csak nem mennek semerre a csomagok. Egyelőre ennyit tudtam összehozni.

$PORT=3306

$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport $PORT -j DNAT --to-destination 127.0.0.1:$PORT
$IPT -A FORWARD -p tcp -i eth0 -o lo --dport $PORT -j ACCEPT
$IPT -A FORWARD -p tcp ! --syn -i lo -o eth0 --sport $PORT -j ACCEPT

Köszi előre is.

Hozzászólások

Helló!

Felejtsd el, dnat a loopback-re nem fog menni!
Biztosan van több megoldás is, nekem most ez jutott eszembe:
ssh -f -N -L $ETH0_IP:3306:localhost:3306 $ETH0_IP
és man ssh, ha ennyi nem elég :-)

Szabi

Ez nem megy.

xxxx:/etc/ssh# ssh -p 2222 -l xxxx -f -N -L 3306:localhost:3306 111.222.333.444
Password:
channel_setup_fwd_listener: cannot listen to port: 3306
Could not request local forwarding.

Ez igen.

xxxx:/etc/ssh# ssh -p 2222 -l xxxx -f -N -L 3307:localhost:3306 111.222.333.444

De nem hozza a kívánt eredményt :(. Mert a külső ip 3307-re connection refused. A telnet localhost 3307-re persze megy :(.

Sajnos nem tudom, hogy mi ez a hiba.
No, hogy ne beszéljek hülyeséget, kipróbáltam az alábbiak szerint és _nálam_ működik:
ssh -f -N -L 192.168.0.217:3306:localhost:3306 192.168.0.217
de jó ez is:
ssh -f -N -L 192.168.0.217:3306:localhost:3306 localhost

utána:
netstat -talpn |grep 3306
tcp 0 0 192.168.0.217:3306 0.0.0.0:* LISTEN 12201/ssh
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 11808/mysqld

OS: Ubuntu Edgy
sshd: OpenSSH_4.3p2 Debian-5ubuntu1, OpenSSL 0.9.8b

Azt írtad, hogy csak egy IP-ről kell elérned kívülről. A távoli gépről is megpróbálhatod és akkor az ottani loopback-re irányítja a portot:
ssh -f -N -L 3306:localhost:3306 user@$MYSQL_SZERVER_IP vagy windows esetén putty-val.
Így ráadásul csak az ssh-t kell átengedned a tűzfalon, ssh-n keresztül megy a forgalom és nem kell a helyi gépen az ssh forward.

Szabi

Nos a gép egy debian sarge, A ssh v2 engedélyezve, de mégsem megy az általad leírt formában :(

Akkor nem csodálkozom, hogy nem működik, a Sarge-ban 3.8-as openssh van, a "bind address" meg a 4.0-ban jelent meg ->
http://www.openssh.org/txt/release-4.0

Changes since OpenSSH 3.9:
============================

* ssh(1) now allows the optional specification of an address to bind to
in port forwarding connections (local, remote and dynamic). Please
refer to the documentation for the -L and -R options in the ssh(1)
manual page and the LocalForward and RemoteForward options in the
ssh_config(5) manpage. (Bugzilla #413)

De ettől még a távoli gépről kellene működnie úgy, ahogy már leírtam, meg amúgy is az a jobbik megoldás.

Szabi