logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak skonfigurować SSH tunel z PuTTY dla przekierowania portów?

stanislaw999 25 Sie 2011 11:03 3135 12
REKLAMA
  • #1 9860807
    stanislaw999
    Poziom 9  
    Posty: 29
    Witam serdecznie.
    Na początek przedstawię swój zamiar:
    komp lokalny xp- (przekierowany port 100 + domena dns) - lokal.dns.pl
    server vps debian - vps.dns.pl

    Zamierzenie moje jest takie aby można połączyć się z vps.dns.pl na porcie 1000, a docelowo ma być przekierowane na lokal.dns.pl port 100

    ktoś mi podpowiedział, że można to zrobić za pomocą putty

    Uruchamiam putty na lokal.dns.pl:
    - w zakładce session wpisuję vps.dns.pl, port zostawiam 22
    - zakładka ssh/tunnels jako source port 1000 a destination lokal.dns.pl:100
    zaznaczone local i auto
    - daję open wpisuję login i hasło do vps i lipa ...

    tunel/przekierowanie nie działa

    Mam nadzieję, że w miarę logicznie wyjaśniłem mój zamiar,
    proszę o wskazówki mogące rozwiązać mój problem.
  • REKLAMA
  • #2 9878473
    stanislaw999
    Poziom 9  
    Posty: 29
    Czy nikt nie pomoże mi z tym problemem?
    Może przyczyną braku połączenia jest server vps?
    Trzeba coś na nim uruchomić, stoi na nim czysty debian.
  • #3 9879104
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    Musisz wybrać remote zamiast local - bo chcesz przekierowania 'do siebie'.
    O ile to przekierowanie ma dotyczyć ruchu z zewnątrz musisz też zaznaczyć, że port remote akceptuje połączenia z innych komputerów. Wymaga to, zdaje się, zaznaczenia dwóch check boxów u góry strony - najpierw, że port lokalny akceptuje takie połaczenia, a potem że zdalny to samo.

    Skoro serwer akceptuje połaczenie ssh to potrzebne programy ma uruchomione. Problem może być z konfiguracją tego serwerowego ssh (sshd) - przekierowania portów mogą być ograniczone poprzez konfigurację.

    Po zalogowaniu się do serwera wpisz w konsoli polecenie
    netstat -ntuap. Będzie widać, czy port został otwarty.

    Jeśli port już jest otwarty przez jakiś inny program na serwerze, przekierowanie się nie uda.

    I chyba ostatni problem - nasłuch portów < 1024 wymaga uprawnień roota.


    Nie mam putty, pod linuxem to niepotrzebne. Wzorowałem się na screenach na
    tej stronie.
  • REKLAMA
  • #4 9881166
    stanislaw999
    Poziom 9  
    Posty: 29
    Witam, dzięki za zainteresowanie moim problemem.
    Po wpisaniu wszystkiego wg tego co podałeś, w local 10000, a destination localhost:100

    wynik po komendzie netstat -ntuap:

    Cytat:
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 127.0.0.1:10000 0.0.0.0:* LISTEN 3209/sshd: root@tty
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1045/apache2
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1110/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1097/sendmail: MTA:
    tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1097/sendmail: MTA:
    tcp 0 300 176........:22 79.....:1415 ESTABLISHED 3209/sshd: root@tty
    tcp6 0 0 ::1:10000 :::* LISTEN 3209/sshd: root@tty
    tcp6 0 0 :::22 :::* LISTEN 1110/sshd


    I połączenia brak...

    Próbowałem też z destination 192.168.1.113:100 i ten sam wynik

    Loguję się jako root, rozmawiałem też z firmą od której mam vps i poinformowali mnie że żadne porty nie są blokowane.

    Jakieś pomysły?

    P.S. wszystkiemu winny ten cholerny brak wiedzy na temat linuxa :-)
  • #5 9882187
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    stanislaw999 napisał:

    Po wpisaniu wszystkiego wg tego co podałeś, w local 10000, a destination localhost:100
    wynik po komendzie netstat -ntuap:

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:10000         0.0.0.0:*               LISTEN      3209/sshd: root@tty
    




    Wynik tcpdump pokazuje że jest uruchomione przekierowanie portu 10000, tyle że port ten nasłuchuje tylko na interfejsie lokalnym. Czyli nie można się tam podłączyć z innego komputera. Jeśli w sesji ssh, którą właśnie uruchomiłeś napiszesz
    telnet localhost 10000
    powinna nastąpić próba podłączenia się do twojego lokalnego komputera na port 100.

    Czy zaznaczyłeś te dwa checkboxy na górze okienka pokazanego na stronie, którą wskazałem w poprzednim poście? Znalazłem obrazek bardziej pasujący do opisywanej sytuacji. Zaznaczyłem na nim te dwa checkboxy.
    Jak skonfigurować SSH tunel z PuTTY dla przekierowania portów?


    Jeśli tak zrobiłeś, a mimo to nie działa, być może publiczne przekierowane jest zablokowane w konfiguracji.
  • #6 9882295
    stanislaw999
    Poziom 9  
    Posty: 29
    Zaznaczyłem te dwa checkboxy na górze okienka.

    Po wpisaniu komendy telnet localhost 10000

    root@grizzly:~# telnet localhost 10000
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    |Np7F@¨@¨@¨@¨@Connection closed by foreign host.
    root@grizzly:~#

    W takim razie może być zablokowane publiczne przekierowanie w konfiguracji.
    Co mam zrobić? Dzwonić do firmy i prosić o zmianę konfiguracji, czy jest to w mojej gestii i szukać w plikach konfiguracyjnych?

    Może podałbym Ci kolego namiary (na priv) na vps i spróbował byś sam zaglądnąć, jeżeli nie sprawiłoby Ci to problemu?

    Jestem już zdołowany cholernie...

    Pozdrawiam
  • REKLAMA
  • #7 9882481
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    A masz u siebie (na komputerze local) uruchomione coś na porcie 100? Bo telnet sugeruje że nie, ale że przekierowanie działa. Nie było to jednak sprawdzenie, czy przekierowanie jest globalne. To można sprawdzić netstatem - tak jak było wcześniej. Jeśli w zacytowanej przeze mnie linii będzie 127.0.0.1:10000 - przekierowanie jest lokalne, jesli będzie 0.0.0.0:10000 - globalne.

    Konfiguracje sshd możesz sprawdzić poleceniem
    grep GatewayPorts /etc/ssh/sshd_config


    Na razie sprawdź jeszcze raz - czy po zaznaczeniu tych checkboxów coś się zmieniło.
  • #8 9882988
    stanislaw999
    Poziom 9  
    Posty: 29
    Polecenie grep GatewayPorts /etc/ssh/sshd_config
    nic nie zwraca, ale zawartość powyższego pliku jest następująca:


    Cytat:
    # Package generated configuration file
    # See the sshd_config(5) manpage for details

    # What ports, IPs and protocols we listen for
    Port 22
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 2
    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    #Privilege Separation is turned on for security
    UsePrivilegeSeparation yes

    # Lifetime and size of ephemeral version 1 server key
    KeyRegenerationInterval 3600
    ServerKeyBits 768

    # Logging
    SyslogFacility AUTH
    LogLevel INFO

    # Authentication:
    LoginGraceTime 120
    PermitRootLogin yes
    StrictModes yes

    RSAAuthentication yes
    PubkeyAuthentication yes
    #AuthorizedKeysFile %h/.ssh/authorized_keys

    # Don't read the user's ~/.rhosts and ~/.shosts files
    IgnoreRhosts yes
    # For this to work you will also need host keys in /etc/ssh_known_hosts
    RhostsRSAAuthentication no
    # similar for protocol version 2
    HostbasedAuthentication no
    # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
    #IgnoreUserKnownHosts yes

    # To enable empty passwords, change to yes (NOT RECOMMENDED)
    PermitEmptyPasswords no

    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no

    # Change to no to disable tunnelled clear text passwords
    #PasswordAuthentication yes

    # Kerberos options
    #KerberosAuthentication no
    #KerberosGetAFSToken no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes

    # GSSAPI options
    #GSSAPIAuthentication no
    #GSSAPICleanupCredentials yes

    X11Forwarding yes
    X11DisplayOffset 10
    PrintMotd no
    PrintLastLog yes
    TCPKeepAlive yes
    #UseLogin no

    #MaxStartups 10:30:60
    #Banner /etc/issue.net

    # Allow client to pass locale environment variables
    AcceptEnv LANG LC_*

    Subsystem sftp /usr/lib/openssh/sftp-server

    # Set this to 'yes' to enable PAM authentication, account processing,
    # and session processing. If this is enabled, PAM authentication will
    # be allowed through the ChallengeResponseAuthentication and
    # PasswordAuthentication. Depending on your PAM configuration,
    # PAM authentication via ChallengeResponseAuthentication may bypass
    # the setting of "PermitRootLogin without-password".
    # If you just want the PAM account and session checks to run without
    # PAM authentication, then enable this but set PasswordAuthentication
    # and ChallengeResponseAuthentication to 'no'.
    UsePAM yes


    Na kompie lokalnym mam uruchomiony program który działa na porcie 100 , 200 , 300. W sieci lan łączą się do niego inne kompy, oraz jeden komp z wan po domenie ddns.

    wynik po poleceniu netstat -ntpa

    Cytat:
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 127.0.0.1:10000 0.0.0.0:* LISTEN 4072/sshd: root@tty
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1045/apache2
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1110/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1097/sendmail: MTA:
    tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1097/sendmail: MTA:
    tcp 0 0 176.0.000.211:22 79.186.00.000:49508 ESTABLISHED 5140/sshd: root@not
    tcp 0 300 176.0.000.211:22 79.186.00.000:1495 ESTABLISHED 4072/sshd: root@tty
    tcp6 0 0 ::1:10000 :::* LISTEN 4072/sshd: root@tty
    tcp6 0 0 :::22 :::* LISTEN 1110/sshd



    Cytat:
    - czy po zaznaczeniu tych checkboxów coś się zmieniło.

    zaznaczone było cały czas

    Czy coś Ci pomogła zawartość pliku sshd_config?
  • REKLAMA
  • #9 9883222
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    Wygląda, że globalne przekierowanie jest zablokowane. Domyślna wartość GatewayPorts to no.
    Trzeba dopisać do pliku sshd_config linijkę
    GatewayPorts yes

    W sumie w dowolnym miejscu, u mnie, świeżo zainstalowane sshd ma tą linijkę przed X11Forwarding.

    Następnie trzeba przerestartować sshd. Najprościej zrestartować cały komputer.
    Jeśli nie możesz zrestartować komputera, trzeba wydać polecenie (uwaga na odwrotne apostrofy - te na klawiszu z ~, obok '1')
    kill -SIGHUP `cat /var/run/sshd.pid`


    Potem zaloguj się ponownie z przekierowaniem portów i sprawdź netstat -ntpa.
  • #10 9883410
    stanislaw999
    Poziom 9  
    Posty: 29
    Wpisałem linijkę, zrobiłem reboot i teraz po netstat -ntpa :

    Cytat:
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1474/sshd: root@tty
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1368/apache2
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1453/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1438/sendmail: MTA:
    tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1438/sendmail: MTA:
    tcp 0 300 176.9.000.000:22 79.186.00.000:52364 ESTABLISHED 1474/sshd: root@tty
    tcp6 0 0 :::10000 :::* LISTEN 1474/sshd: root@tty
    tcp6 0 0 :::22 :::* LISTEN 1453/sshd
  • Pomocny post
    #11 9883418
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    stanislaw999 napisał:
    Wpisałem linijkę, zrobiłem reboot i teraz po netstat -ntpa :

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      1474/sshd: root@tty
    


    Wygląda że jest OK, masz przekierowanie globalne.
  • #12 9883453
    stanislaw999
    Poziom 9  
    Posty: 29
    Za chwilę sprawdzę dam znać.

    edit:
    Komp występuje na kompie lokalnym jako 127.0.0.1 :D
    Działa połączenie, osiągnąłem dzięki Tobie to co chciałem :D
    Jesteś moim Guru :!:

    Dziękuję Ci bardzo, nie wiesz ile siwych włosów mi oszczędziłeś ...
    Jeszcze raz dzięki.

    P.S. Jak już Cię tak wykorzystałem, to może napiszesz mi jeszcze proszę jak
    zrobić taki sam myk ale między dwoma linuxami?
    Może coś blisko polecenia ssh ?
  • #13 9883692
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    Chyba wystarczy
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

Podsumowanie tematu

✨ Użytkownik starał się skonfigurować tunel SSH z użyciem PuTTY, aby przekierować porty z serwera VPS (Debian) na lokalny komputer (Windows XP). Po kilku próbach i wskazówkach od innych uczestników forum, okazało się, że problemem było zablokowane globalne przekierowanie portów w konfiguracji SSHD. Użytkownik musiał dodać linię `GatewayPorts yes` do pliku konfiguracyjnego `/etc/ssh/sshd_config` i zrestartować serwer. Po dokonaniu tych zmian, tunel działał poprawnie, umożliwiając połączenie z lokalnym portem 100 przez port 10000 na VPS. Użytkownik uzyskał również wskazówki dotyczące podobnej konfiguracji między dwoma systemami Linux.
Wygenerowane przez model językowy.
REKLAMA