Mengapa saya tidak dapat terhubung ke port terowongan SSH terbalik dari jarak jauh, bahkan dengan GatewayPort diaktifkan?

20

Saya memerlukan akses SSH konstan ke host di departemen kami, yang alamat IP-nya dialokasikan secara dinamis. Saya telah menyiapkan terowongan SSH jarak jauh dari host target ke salah satu host kami yang memiliki alamat ip statis:

ssh -f -N -g -R :22223:localhost:22 tunnelhost

Ketika saya menunjukkan SSH di port lokal 22223pada host terowongan, terowongan berfungsi dengan baik. Masalah saya adalah bahwa saya tampaknya tidak bisa membuat terowongan terikat ke apa pun selain localhost, meskipun - yaitu ketika saya mencoba untuk SSH dari jarak jauh tunnelhost:12323, tidak ada port terbuka untuk menerimanya. Saya juga sudah mencoba:

ssh -f -N -R :22223:localhost:22 tunnelhost -o GatewayPorts=yes

Tapi tetap tidak berhasil. Netstat menunjukkan kepada saya:

[me@tunnel_host ~]$ netstat -an | grep 22223
tcp        0      0 127.0.0.1:22223         0.0.0.0:*               LISTEN
tcp6       0      0 ::1:22223               :::*                    LISTEN

Mengkonfirmasi bahwa terowongan hanya terikat pada localhost. Saya telah menambahkan pengecualian port pada host tunnel, dengan firewalld-cmd, dan memastikan tidak ada perangkat keras jaringan yang mengganggu koneksi. Adakah gagasan tentang apa itu?

Cheers, James.

James Paul Turner
sumber

Jawaban:

29

Anda harus mengaktifkan GatewayPorts=yesdalam konfigurasi untuk SSHd ( /etc/ssh/sshd_config), bukan klien untuk mengaktifkan pengikatan ke antarmuka selain loopback pada port jarak jauh.

-o GatewayPorts=yes

Hanya berfungsi untuk port lokal ketika diteruskan ke sshperintah.

Darth Android
sumber
Darth Android, Terima kasih atas balasan Anda. Tampaknya Anda benar tentang -g dan -o GatewayPorts hanya berfungsi untuk (-L) terowongan ocal. Demi kelengkapan, berikut ini sedikit informasi tentang masalah ini, kalau-kalau ada orang lain yang menanganinya di masa depan. bugs.debian.org/cgi-bin/bugreport.cgi?bug=228064
James Paul Turner
3
GatewayPorts=clientspecifiedadalah pengaturan yang agak lebih aman, lihat askubuntu.com/questions/50064/reverse-port-tunnelling . Dalam hal ini, diperlukan binding address yang kosong (trailing colon in :22223:localhost:2).
Michael Goerz
1
Saya berpendapat bahwa GatewayPorts=clientspecifiedpengaturan itu sendiri tidak lebih aman, melainkan memungkinkan untuk lebih banyak kontrol atas koneksi yang akan terikat ke wildcard, dibandingkan hanya memiliki mereka semua terikat ke wildcard.
Nick
Juga, restart sshd setelah modding sshd_config (jika Anda lupa)
Nick
⚠️ Sadarilah bahwa GatewayPorts=yesakan membuka port yang diteruskan ke dunia.
ccpizza