Jak utworzyć tunel SSH między serwerem Linux a klientem Windows

Idea zbudowania Tunel SSH polega na szyfrowaniu wszystkich połączeń (niezależnie od tego, na przykład, czy przechodzisz do strony https czy http) i łączeniu się z Internet przez bezpieczny kanał. Ten „bezpieczny” kanał to nic innego jak plik Serwer skonfigurowane do tego celu. Ten serwer może znajdować się na przykład w Twoim domu.


Wadą tej metody jest to, że zawsze musisz mieć włączoną i poprawnie skonfigurowaną maszynę, aby działała jako serwer SSH, ale pozwala ona znacznie poprawić bezpieczeństwo połączenia, a nawet ominąć ograniczenia narzucane przez administratorów sieci ( na przykład twoja praca).

Słyszę, jak pytasz: czy to naprawdę może mi pomóc? Cóż, załóżmy następujący scenariusz: jesteś w kafejce internetowej lub restauracji z bezpłatnym Wi-Fi i musisz wykonać przelew bankowy lub inną ważną operację. Oczywiście zawsze zaleca się przeprowadzanie tego typu transakcji w bezpiecznym środowisku. Jest jednak rozwiązanie: tunel SSH. W ten sposób możemy łączyć się z Internetem za pośrednictwem naszego „bezpiecznego” serwera.

Ta metoda jest również przydatna do obchodzenia ograniczeń nałożonych na połączenia w wielu środowiskach pracy. Nie możesz uzyskać dostępu do YouTube z pracy? Cóż, tunel SSH może być rozwiązaniem, ponieważ wszystkie żądania będą wysyłane przez twój „bezpieczny” serwer. Innymi słowy, ponieważ adres IP twojego bezpiecznego serwera nie jest zablokowany (tak, z drugiej strony YouTube), będziesz mógł „ominąć” to ograniczenie (brak dostępu do YouTube), ponieważ dla administratora sieci Twojej firmy Twój komputer rozmawiał tylko z Twoim „bezpiecznym” serwerem i nie ma pojęcia, że ​​faktycznie przeglądasz przez niego wiele stron.

W tym samouczku wyjaśnimy „typowy” przypadek: serwer Linux, klient Windows.

Skonfiguruj serwer Linux

1.- Zainstaluj serwer SSH. Aby to zrobić, otworzyłem terminal i uruchomiłem:

En Ubuntu:

sudo apt-get install openssh-server

En łuk:

pacman -S otwiera sh

En Fedora:

yum -y zainstaluj openssh-server

Gotowy. Będziesz mógł teraz uzyskać dostęp do Ubuntu (serwera SSH) za pomocą klienta SSH.

2.- Po zainstalowaniu warto przejrzeć plik konfiguracyjny:

sudo nano / etc / ssh / sshd_config

Z tego pliku będziesz mógł łatwo skonfigurować swój serwer SSH. Moim zaleceniem jest modyfikacja tylko 2 parametrów: port i allowusers.

Aby uniknąć ewentualnych ataków, zaleca się zmianę portu, z którego będzie korzystać SSH. Domyślnie ma wartość 22, możesz wybrać inną, która najbardziej Ci odpowiada (na potrzeby tego samouczka wybraliśmy 443, ale może to być dowolna inna).

Parametr Allowusers umożliwia ograniczenie dostępu według użytkownika i opcjonalnie hosta, z którego można się połączyć. Poniższy przykład ogranicza dostęp do serwera SSH, tak aby tylko tacy a tacy użytkownicy mogli to zrobić z hostów 10.1.1.1 i 10.2.2.1.

AllowUsers so and so@10.1.1.1 mengano@10.1.1.1 so and so@10.2.2.1 mengano@10.2.2.1

Skonfiguruj router

W przypadku, gdy serwer znajduje się za routerem, konieczne jest skonfigurowanie tego ostatniego, aby nie blokował połączeń przychodzących. Dokładniej, musisz skonfigurować.

Zanim przejdziemy do rzeczy i pokażemy niezbędną konfigurację, rozsądne wydaje się wyjaśnienie, na czym polega przekazywanie portów.

Załóżmy, że masz lokalną sieć 3 komputerów, wszystkie za routerem. W jaki sposób połączenie przychodzące (z SSH, jak w naszym przypadku) komunikuje się z maszyną 1 w naszej sieci lokalnej? Nie zapominaj, że „z zewnątrz” te 3 komputery, mimo że mają lokalne adresy IP, współdzielą jeden publiczny adres IP, za pośrednictwem którego łączą się z Internetem.

Rozwiązaniem powyższego problemu jest przekierowanie portów. W ten sposób, gdy połączenia przychodzące są odbierane na porcie X naszego publicznego adresu IP, router skieruje je do odpowiedniej maszyny. W ten sposób, ilekroć łączymy się przez ten port, wiemy, że router przekieruje nas (stąd przekierowanie portów) do odpowiedniej maszyny. Wszystko to oczywiście trzeba skonfigurować w routerze.

Konfiguracja przekierowania portów różni się nieco w zależności od używanego routera. Najbardziej praktyczna jest wizyta portforward.com, wybierz model routera, którego używasz i postępuj zgodnie z instrukcjami tam opisanymi.

Skonfiguruj klienta Windows

Aby połączyć się z systemu Windows, praktyczne jest użycie narzędzia PuTTY jako klienta SSH.

1.- Pierwszym krokiem jest pobranie PuTTY

Jak widać na stronie pobierania PuTTY, dostępnych jest kilka wersji. Polecam pobranie przenośnej wersji programu: putty.exe. Zaletą wyboru wersji przenośnej jest to, że zawsze możesz ją nosić ze sobą na pendrive i uruchomić program z dowolnego komputera, gdziekolwiek jesteś.

2.- Otwórz PuTTY i określ adres IP (publiczny) i port serwera, z którym powinien się połączyć klient SSH. Jak znaleźć publiczny adres IP swojego serwera? Po prostu wyszukaj w Google „jaki jest mój publiczny adres IP”, aby znaleźć tysiące stron oferujących tę usługę.

3.- W przypadku, gdy „klient” znajduje się za proxy, nie zapomnij o prawidłowej konfiguracji. Jeśli nie jesteś pewien, jakie dane wprowadzić, otwórz Internet Explorer i przejdź do Narzędzia> Połączenia> Ustawienia sieci LAN> Zaawansowane. Skopiuj i wklej dane, które pojawiają się tam w PuTTY, jak widać na poniższym obrazku. W niektórych przypadkach może być konieczne wprowadzenie nazwy użytkownika i hasła.

4.- Do zbudowania tunelu SSH konieczne jest wprowadzenie danych „lokalnego” przekierowania portów. Przejdź do opcji Połączenie> SSH> Tunele. Pomysł jest następujący: musimy powiedzieć PuTTY, które połączenia „przekierować” do naszego bezpiecznego serwera. Aby to zrobić, musimy wybrać port.

Moją rekomendacją, zwłaszcza jeśli maszyna jest za proxy, jest wybranie portu 443, ponieważ jest on używany przez SSL do nawiązywania bezpiecznych połączeń, co utrudni administratorowi odkrycie tego, co robisz. Z drugiej strony port 8080 jest używany przez protokół HTTP (który nie jest połączeniem „bezpiecznym”), więc doświadczony administrator sieci może być podejrzliwy, a nawet zablokować port dla innych typów połączeń.

W polu Miejsce docelowe ponownie wprowadź adres IP bezpiecznego serwera, a po nim dwukropek i port otwarty w kropce zatytułowanej „Skonfiguruj router” oraz w pliku ~ / .ssh / config. Na przykład 192.243.231.553:443.

Wybierz Dynamiczne (co utworzy połączenie SOCKS, którego użyjemy w następnym punkcie) i kliknij Dodaj.

5.- Wróciłem do głównego ekranu PuTTY, kliknąłem Zapisz, a następnie Otwórz. Przy pierwszym połączeniu z serwerem pojawi się komunikat ostrzegawczy podobny do poniższego:

6.- Następnie zapyta o twoją nazwę użytkownika i hasło dostępu do serwera.

Jeśli wszystko poszło dobrze, po zalogowaniu się powinieneś zobaczyć coś podobnego do tego, co widzisz poniżej ...

7.- Na koniec, bez zamykania PuTTY, otwórz i skonfiguruj Firefox (lub twoją ulubioną przeglądarkę), aby połączyć się z Internetem przez PuTTY.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Jose daniel rodriguez powiedział

    pytanie w kroku 6, jaką nazwę użytkownika i jakie hasło powinienem podać

  2.   jose powiedział

    świetnie, spróbuję to skonfigurować z moim domem

  3.   Al powiedział

    aby uzyskać dostęp do internetu z domu:
    połączenie dial-up przez modem 56k,
    Uruchamiam plik .bat, który ma taką konfigurację:
    @Echo Off
    C:
    CD C: \ Windows
    kit -N -C -D 1080 -P 443 -ssh użytkownik@00.00.000.000 -pw przepustka
    Wyjście
    i co jest związane z kitem, który jest w tym skonfigurowany
    postać: w opcjach kontrolujących użycie proxy umieszczam to w http, w proxy
    nazwa hosta Podałem swoje proxy i port 3128 oraz nazwę użytkownika i hasło
    Umieściłem moje dane, pozostawiając wszystko inne nietknięte i zapisując to
    konfigurację po raz pierwszy jako ustawienia domyślne
    i aby używać Mozilli, komunikatora yahoo itp., muszę się proxify
    aplikacje z proxifier w wersji 3 skonfigurowane w ten sposób:
    w serwerze proxy o adresie 127.0.0.1 port 1080 sock w wersji 5,
    w regułach proksyfikacji dodaję aplikację szpachlówki oraz w akcjach, które stawiam
    bezpośrednio, więc wszystkie programy wychodzą przez to.
    Muszę wiedzieć, jak mogę to osiągnąć na moim telefonie z Androidem
    Łączę się z moim komputerem przez connectify i udostępnia moje połączenie z
    dostęp telefoniczny. Potrzebuję samouczka i apek, aby rozwiązać ten problem
    dylemat. Pozdrawiam iz góry dziękuję

  4.   Clint Eastwood powiedział

    Trzeba było wyjaśnić, w jaki sposób serwer SSH w magiczny sposób zajmie się żądaniami HTTP, które klient wysyła ... słaby samouczek ...

    1.    Errol Flynn powiedział

      Niewłaściwy Clint Eastwood.

      Z tym, co wyjaśniono w samouczku, „magicznie”, to działa!

      Wcale nie słabo, powiedziałbym raczej uczciwie i konkretnie.

      Bardzo dobrze wyjaśnione dla niedoświadczonych.

      pozdrowienia

      1.    użyjmy Linuksa powiedział

        Jak dobrze, że ci to służyło! Uścisk! Paweł.

  5.   DumasLinux powiedział

    Działa bardzo dobrze.

    Jak poniżej, tunel SSH z WinSCP:

    http://www.sysadmit.com/2014/05/linux-tuneles-ssh-con-winscp.html

  6.   JEAMPIERRE ZAMBRANO-JASKINIA powiedział

    świetnie, bardzo dobrze wyjaśnione 5 * dzięki

  7.   Rodrigo powiedział

    Pytanie…
    A jeśli to, czego chcę, to tunel między dwoma komputerami z systemem Linux? Mam następującą sytuację: W mojej pracy majstrujemy przy komputerze, chcemy przetestować oprogramowanie do wideokonferencji, więc musieliśmy zainstalować serwer na komputerze avandonado. Problem w tym, że podczas instalacji oprogramowania (bigbluebutton) instalacja kończy się niepowodzeniem ... odkryliśmy, że problem polega na tym, że pobieranie komponentu instalacji jest blokowane (nie jestem informatykiem, jestem nauczycielem w ciągłej nauce) ...
    Ponieważ firma jest świetna, możliwości pomocy z sieci są mniejsze niż zero ...
    Tak więc myślałem o połączeniu serwera (serwer ubuntu) przez tunel ssh z moim domowym komputerem (na którym jest ubuntu), a następnie zainstalowaniu oprogramowania ...
    To jest możliwe? Oni pomogli mi?

  8.   Suana powiedział

    Witam dobrze, mam zapytanie, chcę połączyć się z aplikacją, którą mam na moim serwerze Debiana, która jest na maszynie wirtualnej, którą zamontowałem w systemie Windows i chcę uzyskać dostęp do tej aplikacji z innej sieci, ktoś mnie poprowadzi.

  9.   anony powiedział

    Jak zainstalować i skonfigurować serwer SSH
    https://www.youtube.com/watch?v=iY536vDtNdQ

  10.   Tosko powiedział

    Witam dobrze, mam pytanie, które bardzo mnie niepokoi i postanowiłem skonsultować się ze społecznością .. cóż, jestem tutaj, aby zobaczyć, czy możesz mi pomóc .. Jestem „nowy” w świecie wirtualizacji, linux.

    Przypadek jest następujący: Zainstalowałem maszynę wirtualną z serwerem linux 14.04.5 LTS, skonfigurowałem sieć w Vbox jako „adapter mostkowy”, wybierając moją kartę sieciową. Będąc już na serwerze, zainstalowałem kilka rzeczy, to znaczy mam dostęp do internetu ... między innymi zainstalowałem usługę SSH, domyślnie opuszczając port 22 i usługę ftp "vsftpd".

    Podczas sprawdzania polecenia «ifconfig» odpowiada mi:
    Kodowanie łącza: adres Ethernet HW 08: 00: 27: d5: 2c: 88
    Adres inet: 192.168.0.13 Diffus .: 192.168.0.255 Masc: 255.255.255.0
    ......

    Teraz, aby połączyć się z mojego komputera (Windows 10) z Putty do mojego serwera wirtualnego przez ssh (port 22), używam adresu IP „192.168.0.13” i to samo z FTP, ale jeśli chcę, aby znajomy z domu się połączył na mój serwer przez SSH lub FTP nie możemy używać adresu IP, którego używam na moim komputerze.

    Chciałbym wiedzieć, dlaczego tak jest, ponieważ adres IP „192.168.0.13”, jak sądzę, działa lokalnie, to znaczy, czy powinienem skonfigurować coś innego, zmodyfikować / etc / network / interfaces, zmodyfikować coś w iptables?
    Cóż, chcę, aby mój serwer działał jako publiczny adres IP, do którego każdy może się połączyć i mieć dostęp.

    Dzięki z góry!