Port SSH do przodu, aby uzyskać dostęp do mojej maszyny domowej z dowolnego miejsca

24

Pochodzę z tego pytania: /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

Chcę zrozumieć cały ten proces port forwarding.

Czytam tak wiele rzeczy, ale nie rozumiem bardzo podstawowej koncepcji samego przekierowania portów.

Co ja mam:

serwer Freebsd siedzi w moim domu.
router sieciowy

Oto, co staram się osiągnąć:

aby mieć dostęp do serwera Freebsd z komputera z systemem Windows przez Internet, aby móc otworzyć przeglądarkę internetową i uzyskać dostęp do Internetu.

Chcę również uzyskać dostęp do tego pola Freebsd z komputera z Ubuntu, który mam.

Będzie wspaniale, jeśli ktoś może mi pomóc.

Oto konfiguracja routera netgear, którą zrobiłem dla przekierowania portów.

przekierowanie portów netgear

hari
źródło
Dokonaj migracji, jeśli jest to superuserpytanie.
hari
Potrzebujesz więcej wyjaśnień. Jeśli komputer z systemem Windows znajduje się gdzieś w Internecie i ma już dostęp do Internetu, dlaczego chcesz połączyć się z urządzeniem FreeBSD w domu, aby uzyskać dostęp do Internetu?
OldTimer
@OldTimer: Nie jestem pewien, jak istotne jest twoje pytanie / obawa.
hari
Używaj adresów IPv6, nie ma już NAT, nie ma już problemów ;-)
Stéphane Gimenez
1
Czekać! czy właśnie powiedziałem, że : - /
Stéphane Gimenez

Odpowiedzi:

47

Zacznę od surowych faktów:

  1. Masz: A- swoją skrzynkę FreeBSD, B- router i C- jakąś maszynę z dostępem do Internetu. Tak to wygląda:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    Zwróć uwagę, jak zwykle działa router : umożliwia połączenia z maszyn w sieci LAN do Internetu (po prostu). Więc jeśli A(lub jakakolwiek inna maszyna w sieci LAN) chce uzyskać dostęp do Internetu, będzie to dozwolone (ponownie, po prostu mówiąc o podstawowym zrozumieniu i konfiguracji):

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    Domyślnie następujące opcje nie są dozwolone:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    (Oznacza to, że router chroni maszyny w Twojej sieci LAN przed dostępem z Internetu.) Zauważ, że router jest jedyną częścią twojej sieci LAN widzianą z Internetu 1) .

  2. Przekierowanie portów jest tym, co pozwala na realizację trzeciego schematu. Polega to na poinformowaniu routera, które połączenie z C2) powinno przejść do której maszyny w sieci LAN. Odbywa się to na podstawie numerów portów - dlatego nazywa się to przekierowaniem portów . Skonfigurujesz to, instruując router, że wszystkie połączenia przychodzące na danym porcie z Internetu powinny być kierowane do określonego komputera w sieci LAN. Oto przykład portu 22 przekazanego do komputera A:

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. Takie połączenia przez Internet odbywają się na podstawie adresów IP. Tak więc nieco bardziej precyzyjna reprezentacja powyższego przykładu byłaby następująca:

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    Jeśli nie masz połączenia internetowego ze statycznym adresem IP, musisz jakoś dowiedzieć się, jaki adres IP jest obecnie przypisany do twojego routera przez dostawcę usług internetowych. W przeciwnym razie Cnie będzie wiedział, z jakim adresem IP musi się połączyć, aby uzyskać dostęp do routera (i dalej A). Aby rozwiązać ten problem w prosty sposób, możesz skorzystać z usługi o nazwie dynamiczny DNS . Sprawi to, że router będzie okresowo wysyłać informacje do specjalnego serwera DNS, który będzie śledził twój adres IP i zapewnił Ci nazwę domeny . Istnieje całkiem sporo bezpłatnych dynamicznych dostawców DNS. Wiele routerów jest wyposażonych w opcje konfiguracji umożliwiające łatwy kontakt z nimi.

1) To znowu jest uproszczenie - rzeczywiste urządzenie widoczne w Internecie to modem - które często można zintegrować z routerem, ale może to być również osobne urządzenie.
2) lub dowolne inne urządzenie z połączeniem internetowym.


Teraz, co chcesz:

  1. Po prostu zezwolenie na dostęp ssh do komputera przez Internet to zły pomysł. Istnieją tysiące botów skonfigurowanych przez crackerów, którzy przeszukują Internet w poszukiwaniu maszyn z otwartym portem SSH. Zazwyczaj „pukają” do domyślnego portu SSH z jak największą liczbą adresów IP, a kiedy tylko znajdą gdzieś działającego demona SSH, próbują uzyskać brutalny dostęp do maszyny. Jest to nie tylko ryzyko potencjalnego włamania, ale także spowolnienia sieci podczas brutalnej siły komputera.

  2. Jeśli naprawdę potrzebujesz takiego dostępu, powinieneś przynajmniej

    • upewnij się, że masz silne hasła do wszystkich kont użytkowników,

    • uniemożliwić dostęp korzeń przez SSH (zawsze można zalogować się jako zwykły użytkownik i suczy sudowtedy),

    • zmień domyślny port, na którym działałby twój serwer SSH,

    • wprowadzić mechanizm blokowania licznych prób logowania SSH (ze skróconym czasem oczekiwania na kolejne próby - nie pamiętam, jak to się dokładnie nazywa - włączyłem go jakiś czas temu we FreeBSD i pamiętam, że było to dość łatwe - spróbuj przeszukując niektóre fora FreeBSD itp. na temat zabezpieczenia SSH, a znajdziesz go.)

    • Jeśli to możliwe, spróbuj uruchomić demona ssh tylko wtedy, gdy będziesz wiedział, że będziesz uzyskiwać dostęp do maszyny w najbliższej przyszłości, a następnie wyłącz ją

  3. Przyzwyczaj się do przeglądania dzienników systemu. Jeśli zaczniesz zauważać coś podejrzanego, wprowadź dodatkowe mechanizmy bezpieczeństwa, takie jak tabele IP lub pukanie portów .

rozcietrzewiacz
źródło
10
Wybrany za ascii dobroć ...
jasonwryan
Dziękuję za szczegółowe wyjaśnienie. Przeczytam to trochę i skomentuję.
hari
Całkowicie zrozumiałem twój punkt widzenia. Moje pytanie brzmi: skonfigurowałem (dobrze lub źle - nie jestem pewien) mój router netgear. Co dalej muszę zrobić?
hari
2
Zobacz moją edycję (u dołu) dotyczącą zewnętrznego dostępu SSH.
rozcietrzewiacz
Dzięki za informację. Mam to, co próbujesz przekazać. Moje pytanie brzmi: co muszę zrobić, aby każdy (kto ma dostęp) w Internecie mógł na przykład uruchomić przeglądarkę na Freebsd Box. Jak to skonfigurować?
hari
3

Istnieje kilka sposobów na osiągnięcie tego. Najłatwiej jest prawdopodobnie skonfigurować tak zwaną strefę DMZ. Jednak bezpieczniejszym sposobem jest skonfigurowanie trasy routera na porcie 22 do adresu IP serwera na routerze.

Zasoby:

Mark D.
źródło
Dzięki. Zrobiłem część na routerze netgear: skonfigurowałem przekierowanie portów w ten sposób: usługa: port HTTP: 80 serwer ip: 192.168.1.16 - tutaj ten ip jest ip mojego freebsd boxa. Co mam teraz zrobić?
hari
Przygotuj test spoza Twojej lokalizacji, osobiście po prostu podłącz mój telefon do laptopa i spróbuj ssh'ing na mój adres IP. Zakładam, że znasz swój zewnętrzny adres IP. Lub alternatywnie możesz spróbować odwiedzić swój serwer WWW.
Mark D
SSH nie działa na moim zewnętrznym adresie IP. Czy muszę coś zrobić na moim serwerze FreeBSD?
hari
Czy możesz SSH ze swojej sieci wewnętrznej?
Mark D
Tak. Mogę to zrobić
hari
1

Można to zrobić za pomocą routera. Na niektórych routerach ta funkcja jest nazywanaVirtual Server

W poniższej części obrazu znajdują się dwa przykłady przekierowania portów. Jeden jest z sieci, a drugi z SSH. W pierwszym przypadku każde żądanie dotyczące adresu IP sieci WAN, tj. Adres IP routera z portem, 80zostanie przesłane do adresu IP sieci LAN ( 192.168.2.4w tym przypadku).
Dzięki tej funkcji można uzyskać dostęp do usług działających na komputerze / serwerze w sieci LAN z dowolnego miejsca na świecie tzn. usługi te nie są ograniczone do sieci LAN
Przekierowanie portów lub serwer wirtualny na routerze

Edward Torvalds
źródło