Dlaczego nie mogę połączyć się zdalnie z odwrotnym portem tunelowym SSH, nawet przy włączonych portach GatewayPorts?


20

Potrzebuję stałego dostępu SSH do hosta w naszym dziale, którego adres IP jest dynamicznie przydzielany. Skonfigurowałem zdalny tunel SSH od hosta docelowego do jednego z naszych hostów, który ma statyczny adres IP:

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

Kiedy wskazuję SSH na port lokalny 22223na hoście tunelu, tunel działa dobrze. Mój problem polega na tym, że nie wydaje mi się, aby tunel był związany z czymkolwiek innym niż localhost - tzn. Kiedy próbuję SSH zdalnie tunnelhost:12323, nie ma otwartego portu do jego odbioru. Próbowałem też:

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

Ale wciąż nie ma szczęścia. Netstat pokazuje mi:

[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

Potwierdzenie, że tunel jest powiązany tylko z hostem lokalnym. Dodałem wyjątek portu na hoście tunelu, z firewalld-cmd, i upewniłem się, że żaden sprzęt sieciowy nie zakłóca połączenia. Jakieś pomysły na to, co to może być?

Pozdrawiam, James.

Odpowiedzi:


29

Musisz włączyć GatewayPorts=yesw konfiguracji SSHd ( /etc/ssh/sshd_config), a nie klienta, aby umożliwić powiązanie z interfejsami innymi niż sprzężenie zwrotne na zdalnych portach.

-o GatewayPorts=yes

Działa tylko w przypadku portów lokalnych po przekazaniu do sshpolecenia.


Darth Android, dziękuję za odpowiedź. Wygląda na to, że masz rację co do -g i -o GatewayPorts działającego tylko dla (-L) tuneli ocal. Dla kompletności, oto trochę więcej informacji na temat tego problemu, na wypadek, gdyby w przyszłości ktoś go spotkał. bugs.debian.org/cgi-bin/bugreport.cgi?bug=228064
— James Paul Turner

3
GatewayPorts=clientspecifiedjest nieco bezpieczniejszym ustawieniem, patrz askubuntu.com/questions/50064/reverse-port-tunnelling . W takim przypadku :22223:localhost:2wymagany jest pusty adres powiązania (dwukropek końcowy ).
— Michael Goerz

1
Twierdziłbym, że GatewayPorts=clientspecifiedsamo ustawienie nie jest bezpieczniejsze, ale raczej pozwala na większą kontrolę nad tym, które połączenia będą przypisane do znaku wieloznacznego, zamiast po prostu przypisywać je wszystkie do znaku wieloznacznego.
— Nick

Ponadto zrestartuj sshd po zmodyfikowaniu sshd_config (na wypadek gdybyś zapomniał)
— Nick

⚠️ Należy pamiętać, że GatewayPorts=yesotworzy to przekierowane porty na świat.
— ccpizza
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.