SSH Reverse Port Forwarding with PuTTy - jak określić adres powiązania

16

Korzystając z Putty, skonfigurowałem zwrotny serwer proxy, który pozwala mi łączyć się przez port 8080 serwera server.tldz portem 80 komputera, który zainicjował połączenie SSH.

Serwer pozwala mi się połączyć localhost:8080i zwraca wynik initiator:80połączenia z serwerem.

To pytanie mówi o włączeniu GatewayPorts i powiązaniu ze wszystkimi adresami.

Używając Putty, w jaki sposób mogę udostępnić port 8080 na serwerze, aby po przesłaniu żądania przez interfejs zewnętrzny (np. Żądanie sieciowe) port został przekierowany do initiator:80?

wprowadź opis zdjęcia tutaj

Darbio
źródło
Czy możesz szczegółowo opisać to, co umieszczasz w oknie dialogowym PuTTY, aby utworzyć tunel?
EightBitTony
Dodano zrzut ekranu - porty różnią się od tekstu przykładowego, jednak nie pozwala to na przesłanie przez interfejs zewnętrzny żądania przez tunel (np. 1.2.3.4:8080). Żądania wewnętrzne są kierowane (localhost: 8080).
Darbio
Co oznacza netstat -an | grep 8080 show? A kiedy mówisz, że nie pozwalasz, co masz na myśli? Czy masz zaporę blokującą połączenia z portem 8080?
EightBitTony

Odpowiedzi:

17

Istnieją dwa pola wyboru podczas konfigurowania tunelu PuTTY,

  • Lokalne porty akceptują połączenia z innych hostów
  • Porty zdalne robią to samo (tylko SSH-2)

drugi z nich robi to, czego potrzebujesz.

Właśnie to przetestowałem

Okno dialogowe tuneli PuTTY,

  • Zaznacz Porty zdalne ...
  • Umieść 8080 w porcie źródłowym
  • Umieść 127.0.0.1:80 w porcie docelowym
  • Wybierz przycisk radiowy „Zdalny”
  • Kliknij Dodaj
  • Połączyć

Działa dobrze, oto wynikowy netstat,

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Możesz także użyć pliku plink.exe dostarczanego z PuTTY, na przykład

plink -R *:8080:localhost:80 [email protected]

co również działa dobrze.

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Jeśli nadal otrzymujesz 127.0.0.1:8080 na hoście, to GatewayPorts jest nadal ustawiony na no w twojej konfiguracji sshd.

Nie zapomnij również zaktualizować zapory na serwerze docelowym, aby umożliwić połączenia zewnętrzne z portem 8080.

EightBitTony
źródło
Nie - wydaje się, że nie daje mi takiego samego zachowania, jak ssh -R *:8080:localhost:80powinien?
Darbio
GatewayPorts jest ustawiony na tak. Działa z ssh -R \*:8080:localhost:80poleceniem, po prostu nie mogłem; t rozgryźć w PuTTy
Darbio
@Darbio, czy kiedykolwiek wymyśliłeś to w kitach?
barlop
Często używam przekierowania portów, zwykle w sposób local2remote (vnc, proxy itp.), I tym razem nie działał port remote2local, bez względu na zaznaczoną opcję, port nie pojawia się jako otwarty na pilocie. Korzystanie plinkbezpośrednio działało bez problemu przy użyciu tych samych poleceń, co zwykłe ssh. Nie mogłem zrozumieć, co sprawiło, że kit nie zadziałał ...
m3nda