Jak zabezpieczyć i harden openSsh Server

Jak zabezpieczyć i harden openSsh Server

Jeśli chodzi o dostęp do zdalnych urządzeń, takich jak serwery, routery i przełączniki, SSH Protocol jest wysoce zalecany, biorąc pod uwagę jego zdolność do szyfrowania ruchu i odepchnięcia każdego, kto może spróbować podsłuchiwać Twoje połączenia.

Tak czy inaczej, domyślne ustawienia Ssh nie są nieomylne i potrzebne są dodatkowe poprawki, aby protokół był bardziej bezpieczny. W tym przewodniku badamy różne sposoby, w jakie możesz użyć do zabezpieczenia i stwardnienia instalacji OpenSSH na serwerze.

1. Uwierzytelnianie SSH bez hasła SSH

Domyślnie, Ssh wymaga od użytkowników podania haseł podczas logowania. Ale o to chodzi: hakerzy mogą odgadnąć hasła, a nawet wykonywać atak brutalnej siły za pomocą specjalnych narzędzi hakerskich i uzyskać dostęp do systemu. Aby być po bezpiecznej stronie, zachęca się do uwierzytelniania SSH bez hasła.

Pierwszym krokiem jest wygenerowanie pary kluczowej SSH, który składa się z klucz publiczny i a prywatny klucz. prywatny klucz mieszka w systemie hosta, podczas gdy klucz publiczny jest następnie kopiowany do zdalnego serwera.

Kiedyś klucz publiczny jest pomyślnie skopiowany, możesz teraz bezproblemowo ssh do serwera zdalnego bez konieczności podawania hasła.

Następnym krokiem jest wyłączenie uwierzytelniania hasła, aby to osiągnąć, musisz zmodyfikować plik konfiguracyjny SSH.

$ sudo vim/etc/ssh/sshd_config 

Wewnątrz pliku konfiguracyjnego, przewiń i zlokalizuj następującą dyrektywę. Ukształcenie i zmień opcję 'Tak' Do 'NIE'

Hasło Automatyka nr 
Wyłącz uwierzytelnianie hasła SSH

Następnie uruchom ponownie demon ssh.

# sudo systemctl restart sshd 

W tym momencie będziesz mieć dostęp do zdalnego serwera za pomocą uwierzytelniania klucza SSH.

2. Wyłącz żądania połączenia bez hasła użytkownika SSH

Innym zalecanym sposobem na wzmocnienie bezpieczeństwa serwera jest wyłączenie login SSH od użytkowników bez haseł. To brzmi trochę dziwnie, ale czasami administratorzy systemu mogą tworzyć konta użytkowników i zapomnieć o przypisaniu haseł - co jest bardzo złym pomysłem.

Aby odrzucić żądania od użytkowników bez hasła, ponownie przejdź do pliku konfiguracyjnego pod adresem /etc/ssh/sshd_config i upewnij się, że masz poniższą dyrektywę:

Zezwolenie na słowa nr 
Wyłącz loginy użytkownika SSH bez hasła

Następnie ponownie uruchom usługę SSH, aby zmiana została wykonana.

$ sudo systemctl restart sshd 

3. Wyłącz loginy root SSH

To nie jest żaden braher, co może się stać, jeśli hakerowi uda się brutalnie wymusić hasło root. Umożliwienie zdalnego logowania do korzenia jest niezmiennym złym pomysłem, który może zagrozić bezpieczeństwu systemu.

Z tego powodu zawsze zaleca się wyłączenie zdalnego login. Jeszcze raz przejdź do pliku konfiguracyjnego i zmodyfikuj ten wiersz, jak pokazano.

Pertrootlogin nr 
Wyłącz loginy root SSH

Po zakończeniu uruchom usługi SSH, aby zmiana została wykonana.

$ sudo systemctl restart sshd 

Odtąd zdalne logowanie korzeni będzie dezaktywowane.

4. Użyj protokołu SSH 2

SSH występuje w dwóch wersjach: SSH Protokół 1 I Protokół 2. Ssh Protokół 2 został wprowadzony w 2006 roku i jest bezpieczniejszy niż Protokół 1 Dzięki silnym kontroli kryptograficznej, szyfrowaniu masowym i solidnym algorytmom.

Domyślnie SSH używa Protokół 1. Aby to zmienić na bezpieczniejsze Protokół 2, Dodaj linię poniżej do pliku konfiguracyjnego:

Protokół 2 
Użyj protokołu SSH 2

Jak zawsze ponownie uruchom SSH, aby zmiany w życie wejdały.

$ sudo systemctl restart sshd 

Idąc naprzód, SSH użyje Protokół 2 domyślnie.

Aby sprawdzić, czy ssh Protokół 1 jest już obsługiwany, uruchom polecenie:

$ ssh -1 [chroniony e -mail] 

Otrzymasz błąd, który odczytuje „SSH Protocol v.1 nie jest już obsługiwane".

W takim przypadku poleceniem było:

$ ssh -1 [chroniony e -mail] 
Sprawdź protokół SSH

Dodatkowo możesz po prostu określić -2 tag, aby upewnić się Protokół 2 to domyślny protokół używany.

$ ssh -2 [chroniony e -mail] 
Użyj protokołu SSH 2

5. Ustaw czas bezczynności czasu ssh

Pozostawienie komputera bez opieki przez dłuższy czas z bezczynnym połączeniem SSH może stanowić ryzyko bezpieczeństwa. Ktoś może po prostu przejść i przejąć sesję SSH i zrobić wszystko. Aby rozwiązać ten problem, rozważne jest zatem ustawienie limitu czasu bezczynności, który po przekroczeniu sesja SSH zostanie zamknięta.

Jeszcze raz otwórz plik konfiguracyjny SSH i zlokalizuj dyrektywę „ClientAliveInterval”. Przypisz na przykład rozsądną wartość, ustawiłem limit 180 sekundy.

ClientAliveInterval 180 

Oznacza to, że sesja SSH zostanie porzucona, jeśli nie zostanie zarejestrowana żadna aktywność po 3 minutach, co stanowi odpowiednik 180 sekund.

Ustaw wartość limitu czasu połączenia SSH

Następnie uruchom ponownie demona SSH, aby wprowadzić wprowadzone zmiany.

$ sudo systemctl restart sshd 

6. Ogranicz dostęp SSH do niektórych użytkowników

Aby uzyskać dodaną warstwę bezpieczeństwa, możesz zdefiniować użytkowników, którzy potrzebują protokołu SSH do logowania się i wykonywania zdalnych zadań w systemie. To utrzymuje inne użytkowników, którzy mogą próbować uzyskać wejście do twojego systemu bez zgody.

Jak zawsze otwórz plik konfiguracyjny i dołącz do dyrektywy „Niezdłożyciele„Następnie nazwiska użytkowników, których chcesz przyznać. W poniższym przykładzie pozwoliłem użytkownikomTecmint' I 'James„mieć zdalny dostęp do systemu za pośrednictwem SSH. Każdy inny użytkownik, który próbuje uzyskać dostęp zdalny, zostanie zablokowany.

Lodersusers Tecmint James 
Ogranicz loginy użytkowników SSH

Następnie uruchom ponownie SSH, aby zmiany utrzymywały się.

$ sudo systemctl restart sshd 

7. Skonfiguruj limit prób haseł

Innym sposobem dodania warstwy bezpieczeństwa jest ograniczenie liczby prób logowania SSH, tak że po wielu nieudanych próbach spada połączenie. Więc ponownie przejdź do pliku konfiguracyjnego i zlokalizuj „Maxauthtries”Wyróżnienie i zdefiniuj wartość dla maksymalnej liczby prób.

W tym przykładzie ustawiono limit 3 Próby, jak pokazano.

Maxauthtries 3 
Ogranicz próby haseł SSH

I wreszcie ponownie uruchom usług SSH, jak w poprzednich scenariuszach.

Może się również wydawać, że te następujące artykuły związane z SSH przydatne:

  • Jak zainstalować OpenSsh 8.0 serwer ze źródła w Linux
  • Jak zainstalować Fail2ban, aby chronić SSH na Centos/Rhel 8
  • Jak zmienić port SSH w Linux
  • Jak utworzyć tunelowanie SSH lub przekazywanie portów w Linux
  • 4 sposoby przyspieszenia połączeń SSH w Linux
  • Jak znaleźć wszystkie nieudane próby logowania SSH w Linux
  • Jak odłączyć nieaktywne lub bezczynne połączenia SSH w Linux
Wniosek

To było podsumowanie niektórych środków, które możesz podjąć, aby zabezpieczyć swoje zdalne połączenia SSH. Ważne jest, aby dodać, że zawsze powinieneś przypisywać silne hasła użytkownikom posiadającym zdalny dostęp do pokrzyżących ataków brutalnej siły. Mamy nadzieję, że uznałeś ten przewodnik wnikliwy. Twoja opinia jest bardzo mile widziana.