Jak ryzykowne jest uruchamianie serwera domowego zabezpieczonego za SSH?
Kiedy trzeba otworzyć coś w sieci domowej na większy internet, 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, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.
Pytanie
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 bardzo zaskoczony szybkością ataków brutalnych sił 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, by stać się ekspertem i być prawie pewnym, że podjąłem właściwe środki zapobiegawcze.
Aby zdecydować, czy będę nadal grał w ten zabawkowy projekt, chciałbym 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ę bać kilku dużych złych wilków, czy też przede wszystkim chodzi o to, żeby odejść od scenariuszy dziecięcych zabawek??
Czy Alfred powinien trzymać się rozwiązań innych firm, czy też jego rozwiązanie dla majsterkowiczów jest bezpieczne?
Odpowiedź
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.
ja mieć 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 jest brudny), że nie używanie go powinno być przestępstwem publicznym.
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 również 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 maszyna lokalna
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.