Kiedy musisz otworzyć coś w domowej sieci na większy internet, czy tunel SSH jest wystarczająco bezpieczny, aby to zrobić?
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
Czytnik SuperUser Alfred M. chce wiedzieć, czy jest na dobrej drodze z bezpieczeństwem połączenia:
Niedawno założyłem mały serwer z komputerem o niskim końcu, z uruchomionym debianem, którego celem jest wykorzystanie go jako osobistego repozytorium git. Uaktywniłem ssh i byłem zaskoczony szybkością ataków typu brute force i tym podobnych. Potem przeczytałem, że jest to dość powszechne i dowiedziałem się o podstawowych środkach bezpieczeństwa, aby odeprzeć te ataki (wiele pytań i duplikatów na serwerze servera, patrz na przykład ten lub ten).
Ale teraz zastanawiam się, czy to wszystko warte wysiłku. Zdecydowałem się założyć własny serwer głównie dla zabawy: mogłem po prostu polegać na rozwiązaniach stron trzecich, takich jak oferowane przez gitbucket.org, bettercodes.org itp. Podczas gdy część zabawy polega na poznawaniu bezpieczeństwa w Internecie, nie wystarczająco dużo czasu, aby poświęcić się temu, aby stać się ekspertem i być prawie pewnym, że podjąłem właściwe środki zapobiegawcze.
Aby zdecydować, czy będę nadal grać z tym zabawkowym projektem, chciałabym wiedzieć, co tak naprawdę ryzykuję. Na przykład, w jakim stopniu zagrożone są także inne komputery podłączone do mojej sieci? Niektóre z tych komputerów są używane przez osoby o mniejszej wiedzy niż moje z systemem Windows.
Jakie jest prawdopodobieństwo, że wpadnę w poważne kłopoty, jeśli zastosuję się do podstawowych wytycznych, takich jak silne hasło, wyłączony dostęp root'a dla ssh, niestandardowy port dla ssh i ewentualnie wyłączenie logowania do hasła i użycie jednej z reguł fail2ban, denyhosts lub iptables?
Innymi słowy, czy powinienem się obawiać niektórych dużych, złych wilków, czy też chodzi przede wszystkim o wyrzucanie dzieciaków ze skryptów?
Czy Alfred powinien trzymać się rozwiązań innych firm, czy też jego rozwiązanie dla majsterkowiczów jest bezpieczne?
Pomocnik SuperUser TheFiddlerWins zapewnia Alfreda, że jest całkiem bezpieczny:
IMO SSH to jedna z najbezpieczniejszych rzeczy do słuchania w otwartym Internecie. Jeśli naprawdę zależy Ci na słuchaniu na niestandardowym porcie high-end. Nadal miałbym zaporę ogniową (na poziomie urządzenia) pomiędzy twoim pudełkiem a rzeczywistym Internetem i po prostu używałbym przekierowania portów dla SSH, ale jest to zabezpieczenie przed innymi usługami. Sam SSH jest całkiem cholernie solidny.
jamieć ludzie czasami uderzali w mój domowy serwer SSH (otwarty na Time Warner Cable). Nigdy nie miałem rzeczywistego wpływu.
Inny uczestnik, Stephane, podkreśla, jak łatwo jest dalej zabezpieczyć SSH:
Konfigurowanie systemu uwierzytelniania klucza publicznego za pomocą SSH jest naprawdę trywialne i wymaga około 5 minut na skonfigurowanie.
Jeśli zmusisz wszystkie połączenia SSH do korzystania z niego, to sprawi, że twój system będzie tak odporny, jak możesz mieć nadzieję, bez inwestowania LOTU w infrastrukturę bezpieczeństwa. Szczerze mówiąc, jest to tak proste i skuteczne (o ile nie masz 200 kont - wtedy robi się brudny), że nie używanie go powinno być publicznym wykroczeniem.
Wreszcie Craig Watson oferuje kolejną wskazówkę, aby zminimalizować próby włamania:
Prowadzę również osobisty serwer git, który jest otwarty na świat w SSH, i mam też te same problemy z brutalną siłą, więc mogę współczuć z twoją sytuacją.
TheFiddlerWins już rozwiązuje główne problemy związane z bezpieczeństwem otwierania SSH na publicznie dostępnym IP, ale najlepszym narzędziem IMO w odpowiedzi na próby brute-force jest Fail2Ban - oprogramowanie, które monitoruje pliki dziennika uwierzytelniania, wykrywa próby włamań i dodaje reguły zapory do lokalny komputer
iptables
zapora ogniowa. Możesz skonfigurować zarówno liczbę prób przed banem, jak i długość bana (domyślnie 10 dni).
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.