Jak zabezpieczyć serwer SSH

Zabezpieczanie połączeń SSH pomaga chronić system Linux i dane. Administratorzy systemów i użytkownicy domowi również muszą zabezpieczyć komputery podłączone do Internetu. Oto 10 prostych sposobów, które pomogą Ci zabezpieczyć serwer SSH .

Kilka podstawowych informacji o bezpieczeństwie SSH

SSH oznacza Secure Shell. Protokół SSH lub narzędzie programowe umożliwia administratorom systemu i użytkownikom nawiązywanie bezpiecznych połączeń z komputerami zdalnymi przy użyciu tego protokołu.

Protokół SSH to szyfrowany protokół zaprojektowany w celu zapewnienia bezpiecznego połączenia w niezabezpieczonej sieci, takiej jak Internet. SSH w Linuksie jest zbudowany na przenośnej wersji projektu OpenSSH. Jest realizowany w klasycznym modelu klient-serwer z serwerem SSH przyjmującym połączenia od klientów SSH. Klient służy do łączenia się z serwerem i udostępniania sesji użytkownikom zdalnym. Serwer akceptuje połączenie i inicjuje sesję.

W swojej domyślnej konfiguracji serwer SSH będzie „nasłuchiwał” połączeń przychodzących na porcie 22 protokołu kontroli transmisji (TCP). Ponieważ jest to standardowy i popularny port, staje się celem zagrożeń aktorów i złośliwych botów.

Złośliwi aktorzy uruchamiają boty, które skanują zakresy adresów IP w poszukiwaniu otwartych portów. Następnie sprawdza te porty pod kątem luk, które można wykorzystać. Myślenie: jestem bezpieczny, jest wiele większych i lepszych celów ode mnie, na które złoczyńcy mogą sobie pozwolić, jest całkowicie błędne. Boty te nie wybierają swoich celów na podstawie żadnych kryteriów, po prostu szukają sposobu na przedostanie się do systemu.

Będziesz ofiarą, jeśli nie zabezpieczysz swojego systemu.

Tarcie bezpieczeństwa

Punktem krytycznym dla bezpieczeństwa jest każda sytuacja, w której główne zadanie zostaje uniemożliwione lub opóźnione ze względu na wymogi bezpieczeństwa.

Problemy z bezpieczeństwem powodują dyskomfort (na każdym poziomie) dla użytkowników i innych osób podczas wdrażania środków bezpieczeństwa. Osoby nowe w systemach komputerowych mogą martwić się, czy rzeczywiście będą musiały wprowadzać hasło za każdym razem, gdy logują się do komputera mainframe. Dla nich jest to również forma tarć o bezpieczeństwo.

Wprowadzenie środków bezpieczeństwa często będzie wiązać się z pewnymi formami tarć u niektórych osób. Właściciele firm muszą zapłacić za te działania. Użytkownicy komputerów mogą być zmuszeni do zmiany nawyków lub zapamiętania innych informacji uwierzytelniających i dodania kroków zapewniających pomyślne połączenie. Administratorzy systemu będą mieli dodatkową pracę do wykonania, aby wdrożyć i utrzymać nowe środki bezpieczeństwa.

Dokręcanie i blokowanie systemu operacyjnego typu Linux lub Unix może być szybkie. Przedstawione tutaj środki bezpieczeństwa to zestaw łatwych do wykonania kroków, które poprawią bezpieczeństwo komputera bez konieczności stosowania aplikacji innych firm i głębokiej interwencji zapory ogniowej .

Użyj protokołu SSH w wersji 2

W 2006 roku protokół SSH został zaktualizowany z wersji 1 do wersji 2. Jest to znacząca aktualizacja. Wprowadzono wiele zmian i ulepszeń, zwłaszcza w zakresie szyfrowania i zabezpieczeń, a wersja 2 nie jest wstecznie kompatybilna z wersją 1. Aby uniemożliwić połączenia z klientami w wersji 1, możesz określić komputery, aby akceptowały tylko połączenia z wersji 2.

Aby to zrobić, edytuj plik /etc/ssh/sshd_config za pomocą następującego polecenia:

sudo gedit /etc/ssh/sshd_config

Jak zabezpieczyć serwer SSH

Dodaj następujący wiersz:

Protocol 2

Jak zabezpieczyć serwer SSH

Zapisz plik, a następnie uruchom ponownie proces demona SSH za pomocą następującego polecenia:

sudo systemctl restart sshd

Jak zabezpieczyć serwer SSH

Przetestuj nową konfigurację w działaniu, przełączając się na inną maszynę i próbując połączyć się przez SSH z maszyną testową. Użyjemy opcji -1 (protokół 1), aby wymusić na poleceniu ssh użycie protokołu w wersji 1.

ssh -1 dave@howtogeek.local

Jak zabezpieczyć serwer SSH

Żądanie połączenia zostało odrzucone. Upewnij się, że nadal możesz połączyć się z protokołem 2. Do testu użyjemy -2 (protokół 2).

ssh -2 dave@howtogeek.local

Jak zabezpieczyć serwer SSH

Fakt, że serwer SSH pyta o hasło, jest pozytywnym znakiem, że połączenie zostało nawiązane i wchodzisz w interakcję z serwerem. Współcześni klienci SSH domyślnie korzystają z protokołu 2. Nie musimy określać protokołu 2, pod warunkiem, że klient jest aktualny.

ssh dave@howtogeek.local

Jak zabezpieczyć serwer SSH

Połączenie zostało zaakceptowane.

Unikaj bramki 22

Port 22 jest standardowym portem dla połączeń SSH. Jeśli używany jest inny port, dodaje to trochę funkcji Security Through Obscurity (STO) do twojego systemu. Bezpieczeństwo poprzez niejednoznaczność nigdy nie powinno być uważane za prawdziwy środek bezpieczeństwa. W rzeczywistości niektóre mądrzejsze boty atakujące sondują wszystkie otwarte porty i decydują, jaką usługę wykonują, zamiast polegać na prostej liście wyszukiwania portów i zakładać, że normalnie świadczą one usługę. Jednak użycie niestandardowego portu może pomóc w ograniczeniu złego ruchu na porcie 22.

Aby skonfigurować niestandardowy port, edytuj plik konfiguracyjny SSH jak powyżej.

Jak zabezpieczyć serwer SSH

Usuń # na początku wiersza Port i zastąp 22 wybranym numerem. Zapisz plik konfiguracyjny i zrestartuj demona SSH.

Na innym komputerze użyjemy polecenia ssh, aby połączyć się z serwerem. Domyślne polecenie ssh używa portu 22:

ssh dave@howtogeek.local

Jak zabezpieczyć serwer SSH

Połączenie odrzucone. Spróbuj ponownie i określ port 470, używając opcji –p (port):

ssh -p 479 dave@howtogeek.local

Jak zabezpieczyć serwer SSH

Połączenie potwierdzone.

Podłącz filtr za pomocą opakowań TCP

Opakowania TCP to łatwe do zrozumienia listy kontroli dostępu. Umożliwia odrzucanie i zezwalanie na połączenia w oparciu o charakterystykę żądania połączenia, taką jak adres IP lub nazwa hosta. Opakowania TCP powinny być używane z prawidłowo skonfigurowaną zaporą ogniową, a nie zamiast niej.

Opakowania TCP są preinstalowane na komputerach z systemem Ubuntu 18.04 LTS . Musi być zainstalowany na Manjaro 18.10 i Fedorze 30.

Aby zainstalować w Fedorze, użyj następującego polecenia:

sudo yum install tcp_wrappers

Jak zabezpieczyć serwer SSH

Aby zainstalować na Manjaro, użyj tego polecenia:

sudo pacman -Syu tcp-wrappers

Jak zabezpieczyć serwer SSH

Dołączone są dwa pliki, jeden zawiera listę dozwolonych, a drugi zawiera listę zabronionych. Edytuj listę odrzuconych za pomocą następującego polecenia:

sudo gedit /etc/hosts.deny

Jak zabezpieczyć serwer SSH

Powyższe polecenie otworzy edytor gedit z plikiem, który nie chce się załadować.

Jak zabezpieczyć serwer SSH

Musisz dodać linię:

ALL : ALL

I zapisz plik. Linia ta zablokuje wszelki nieautoryzowany dostęp. Teraz musimy przyznać uprawnienia do połączeń, które chcesz zaakceptować. W tym celu należy edytować plik uprawnień:

sudo gedit /etc/hosts.allow

Jak zabezpieczyć serwer SSH

Powyższe polecenie otworzy edytor gedit z plikiem do pobrania.

Jak zabezpieczyć serwer SSH

Dodaliśmy nazwę demona SSH, SSHD oraz adres IP komputera, który umożliwia nawiązanie połączenia. Zapisz plik i sprawdź, czy obowiązują ograniczenia i uprawnienia.

Najpierw spróbujesz połączyć się z komputera, którego nie ma w pliku hosts.allow:

Jak zabezpieczyć serwer SSH

Połączenie odrzucone. Spróbujemy połączyć się z komputera o adresie IP 192.168.4.23:

Jak zabezpieczyć serwer SSH

Połączenie zaakceptowane.

Poniższy przykład pozwala na połączenie tylko jednego komputera. Opakowania TCP są dość elastyczne, obsługują nazwy hostów, symbole wieloznaczne i maski podsieci, aby akceptować połączenia z zakresów adresów IP.

Odrzucaj prośby o połączenie bez hasła

Chociaż nie jest to dobre, administratorzy systemu Linux mogą tworzyć konta użytkowników bez haseł. Oznacza to, że do zdalnych połączeń z tego konta nie jest wymagane hasło. Połączenia te zostaną zaakceptowane, ale nie zostaną uwierzytelnione.

Domyślne ustawienie protokołu SSH akceptuje żądania połączeń bez hasła. Możemy to łatwo zmienić i upewnić się, że wszystkie te połączenia są uwierzytelnione.

Musisz edytować plik konfiguracyjny SSH.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz wiersz #PermitEmptyPasswords no . Usuń # na początku linii i zapisz plik. Uruchom ponownie demona SSH.

Używaj kluczy SSH zamiast haseł

Klucze SSH zapewniają bezpieczny sposób logowania się do serwera SSH. Hasła można złamać, odgadnąć lub wymusić metodą brute-force . Klucze SSH nie są podatne na tego typu ataki.

Generując klucz SSH, tworzysz parę kluczy. Jeden to klucz publiczny, drugi to klucz prywatny. Klucz publiczny jest zainstalowany na serwerach, z którymi chcesz się połączyć. Klucz prywatny jest bezpiecznie przechowywany na Twoim komputerze.

Klucze SSH umożliwiają nawiązywanie połączeń bez hasła, co jest bezpieczniejsze niż połączenia wykorzystujące uwierzytelnianie hasłem.

Wysyłając żądanie połączenia, komputer zdalny wykorzystuje kopię klucza publicznego do utworzenia zaszyfrowanej wiadomości wysyłanej z powrotem do komputera. Ponieważ jest szyfrowany kluczem publicznym, komputer może go odszyfrować kluczem prywatnym.

Następnie komputer wyodrębnia pewne informacje z wiadomości, szyfruje je i wysyła z powrotem na serwer. Jeśli serwer może go odszyfrować za pomocą kopii klucza publicznego. Jeżeli informacje zawarte w wiadomości odpowiadają tym, które wysłał Ci serwer, połączenie zostanie potwierdzone.

Tutaj połączenie z serwerem pod adresem 192.168.4.11 jest nawiązywane przez użytkownika za pomocą klucza SSH. Pamiętaj, że nie jest wyświetlany monit o wprowadzenie hasła.

ssh dave@192.168.4.11

Jak zabezpieczyć serwer SSH

Całkowicie wyłącz uwierzytelnianie hasłem

Możesz całkowicie wyłączyć uwierzytelnianie hasłem, jeśli używasz kluczy SSH. Musimy edytować plik konfiguracyjny SSH.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz wiersz zaczynający się od #PasswordAuthentication tak . Usuń # na początku linii, zmień tak na nie i zapisz plik. Uruchom ponownie demona SSH.

Wyłącz przekazywanie X11

Przekazywanie X11 umożliwia zdalnym użytkownikom uruchamianie aplikacji graficznych z serwera za pośrednictwem sesji SSH, ale jest łatwo wykorzystywane przez złych aktorów. Lepiej to wyłączyć edytując plik konfiguracyjny SSH.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz wiersz #X11Przekazywanie nr , usuń # na początku wiersza i zapisz plik. Uruchom ponownie demona SSH.

Ustaw wartość limitu czasu bezczynności

Jeśli z komputerem zostanie nawiązane połączenie SSH i przez pewien czas nie będzie na nim żadnej aktywności, może to stanowić zagrożenie dla bezpieczeństwa.

Dlatego należy ustawić limit czasu. Jeśli w określonym czasie nie będzie żadnej aktywności, połączenie SSH zostanie rozłączone. Po raz kolejny musimy edytować plik konfiguracyjny SSH.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz linię zaczynającą się od #ClientAliveInterval 0 . Usuń # na początku linii, zmień cyfrę 0 na żądaną wartość. Zwykle ludzie ustawiają go na 300 sekund, czyli 5 minut. Zapisz plik i zrestartuj demona SSH.

Ustaw limit liczby wpisów haseł

Zdefiniowanie limitu liczby potwierdzeń może pomóc w zapobieganiu zgadywaniu haseł i atakom typu brute-force. Po określonej liczbie żądań uwierzytelnienia użytkownik zostanie rozłączony z serwerem SSH. Domyślnie nie ma ograniczenia liczby prób wprowadzenia hasła, ale możesz to edytować w pliku konfiguracyjnym SSH.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz linię zaczynającą się od #MaxAuthTries 0 . Usunięcie # na początku linii powoduje zmianę liczby na żądaną wartość. Możesz ustawić go na 3. Zapisz plik podczas wprowadzania zmian i zrestartuj demona SSH.

Możesz to sprawdzić, próbując się połączyć i wprowadzając nieprawidłowe hasło.

Jak zabezpieczyć serwer SSH

Uwaga: liczba MaxAuthTries jest większa niż liczba prób dozwolonych przez użytkownika. Po dwóch nieudanych próbach następuje rozłączenie, co oznacza, że ​​MaxAuthTries jest ustawione na 3.

Wyłącz logowanie roota

Zaleca się, aby nie logować się jako root, po prostu używać go jako zwykłego użytkownika w systemie Linux i używać sudo do wykonywania czynności wymagających uprawnień roota. Nie powinieneś także pozwalać rootowi na logowanie się do serwera SSH. Tylko zwykli użytkownicy mogą się łączyć. Jeśli muszą wykonać zadanie na poziomie administracyjnym, mogą również użyć sudo. Jeśli musisz pozwolić użytkownikowi root na zalogowanie się, możesz zmusić go do użycia klucza SSH.

Edytuj plik konfiguracyjny, aby wyłączyć logowanie roota.

Jak zabezpieczyć serwer SSH

Przewiń plik w dół, aż zobaczysz linię zaczynającą się od #PermitRootLogin zakaz-hasło , usuń # na początku linii.

  • Jeśli chcesz uniemożliwić rootowi logowanie, zamień hasło zakazu na nr.
  • Jeśli zezwolisz rootowi na logowanie, ale wymusisz użycie klucza SSH, pozostaw hasło zakazujące nienaruszone.

Zapisz zmiany i zrestartuj demona SSH.

Ostatni krok

Oczywiście, jeśli nie potrzebujesz SSH działającego na swoim komputerze, wyłącz go za pomocą następującego polecenia:

sudo systemctl stop sshd
sudo systemctl disable sshd

Życzę powodzenia!

Zostaw komentarz

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Czy widzisz powiadomienie o aktywacji systemu Windows 10 w prawym rogu ekranu? W tym artykule dowiesz się, jak usunąć powiadomienie o żądaniu dotyczącym praw autorskich w systemie Windows 10.

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Niedawno firma Microsoft wydała najnowszą aktualizację zbiorczą dla użytkowników komputerów PC z systemem Windows 10 o nazwie Build 14393.222. Ta aktualizacja wydana dla systemu Windows 10 naprawia głównie błędy na podstawie opinii użytkowników i poprawia wydajność systemu operacyjnego.

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Czy masz komputery w sieci lokalnej, które wymagają dostępu zewnętrznego? Dobrym rozwiązaniem może być użycie hosta bastionowego jako strażnika sieci.

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

Czasami może być konieczne jednoczesne usunięcie wszystkich starych dzienników zdarzeń. W tym przewodniku Quantrimang.com pokaże Ci 3 sposoby szybkiego usunięcia wszystkich dzienników zdarzeń w Podglądzie zdarzeń systemu Windows 10.

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jeśli wolisz używać starej, klasycznej klawiatury, takiej jak IBM Model M, która nie zawiera fizycznego klawisza Windows, istnieje prosty sposób, aby dodać więcej, pożyczając klawisz, którego nie używasz często.

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

WindowTop to narzędzie, które ma możliwość przyciemnienia wszystkich okien aplikacji i programów działających na komputerach z systemem Windows 10. Możesz także użyć interfejsu z ciemnym tłem w systemie Windows.

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

W wielu poprzednich artykułach wspominaliśmy, że zachowanie anonimowości w Internecie jest niezwykle ważne. Co roku dochodzi do wycieku prywatnych informacji, co sprawia, że ​​bezpieczeństwo w Internecie staje się coraz bardziej konieczne. Z tego też powodu powinniśmy używać wirtualnych adresów IP. Poniżej dowiemy się o metodach tworzenia fałszywych adresów IP!

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Pasek języka w systemie Windows 8 to miniaturowy pasek narzędzi języka, zaprojektowany tak, aby automatycznie wyświetlał się na ekranie komputera stacjonarnego. Jednak wiele osób chce ukryć ten pasek języka na pasku zadań.

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Maksymalizacja szybkości Internetu jest niezbędna do optymalizacji połączenia sieciowego. Możesz cieszyć się optymalną rozrywką i pracą, korzystając z komputerów, telewizorów z dostępem do Internetu, konsol do gier itp.

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Łączność bezprzewodowa jest dziś koniecznością i dlatego bezpieczeństwo sieci bezprzewodowej jest niezbędne do zapewnienia bezpieczeństwa w sieci wewnętrznej.