3 sposoby zabezpieczenia serwera SSH w systemie Linux

SSH jest niesamowite, ponieważ pozwala nam uzyskać dostęp terminalowy do innych komputerów i serwerów z systemem Linux przez sieć, a nawet Internet! Mimo to, mimo że ta technologia jest niesamowita, istnieją pewne rażące problemy z bezpieczeństwem, które sprawiają, że korzystanie z niej jest niebezpieczne. Jeśli jesteś przeciętnym użytkownikiem, nie ma potrzeby instalowania skomplikowanych narzędzi zabezpieczających SSH. Zamiast tego rozważ wykonanie tych podstawowych kroków, aby zabezpieczyć serwer SSH w systemie Linux.

Zmień domyślny port połączenia

Zdecydowanie najszybszym i najłatwiejszym sposobem zabezpieczenia serwera SSH jest zmiana używanego portu. Domyślnie serwer SSH działa na porcie 22. Aby to zmienić, otwórz okno terminala. W oknie terminala przejdź przez SSH do zdalnego komputera PC obsługującego serwer SSH.

ssh user@local-ip-address

Po zalogowaniu przenieś się ze zwykłego użytkownika na roota. Jeśli masz konto Root, zalogowanie się za pomocą su jest dobrym wyborem. W przeciwnym razie musisz uzyskać dostęp do sudo.

su -

lub

sudo -s

Teraz, gdy masz dostęp administratora, otwórz plik konfiguracyjny SSH w Nano.

nano /etc/ssh/sshd_config

Przewiń plik konfiguracyjny „Port 22”. Usuń znak #, jeśli istnieje, a następnie zmień „22” na inną liczbę. Zwykle wystarczy port powyżej 100 lub nawet jeden z zakresu 1000. Po zmianie numeru portu naciśnij kombinację klawiszy Ctrl + O, aby zapisać zmiany. Następnie zamknij edytor, naciskając Ctrl + X.

Edycja pliku konfiguracyjnego nie spowoduje natychmiastowego przełączenia serwera SSH na używanie prawidłowego portu. Zamiast tego musisz ręcznie ponownie uruchomić usługę.

systemctl restart sshd

Uruchomienie polecenia systemctl powinno zrestartować demona SSH i zastosować nowe ustawienia. Jeśli ponowne uruchomienie demona nie powiedzie się, inną opcją jest ponowne uruchomienie komputera serwera SSH:

reboot

Po ponownym uruchomieniu demona (lub maszyny), SSH nie będzie dostępne przez port 22. W rezultacie połączenie przez SSH wymaga ręcznego określenia portu.

Uwaga: pamiętaj, aby zmienić „1234” z portem ustawionym w pliku konfiguracyjnym SSH.

ssh -p 1234 user@local-ip-address

Wyłącz logowanie za pomocą hasła

Innym świetnym sposobem na zabezpieczenie serwera SSH jest usunięcie hasła logowania i zamiast tego przejście do logowania za pomocą kluczy SSH. Korzystanie z trasy klucza SSH tworzy krąg zaufania między serwerem SSH a zdalnymi maszynami, które mają Twój klucz. To zaszyfrowany plik haseł, który jest trudny do złamania.

Skonfiguruj za pomocą klucza SSH na serwerze. Po skonfigurowaniu kluczy otwórz terminal i otwórz plik konfiguracyjny SSH.

su -

lub

sudo -s

Następnie otwórz konfigurację w Nano za pomocą:

nano /etc/ssh/sshd_config

Domyślnie serwery SSH obsługują uwierzytelnianie za pomocą hasła użytkownika. Jeśli masz bezpieczne hasło, jest to dobry sposób, ale zaszyfrowany klucz SSH na zaufanych komputerach jest szybszy, wygodniejszy i bezpieczniejszy. Aby zakończyć przejście na „logowanie bez hasła”, zajrzyj do pliku konfiguracyjnego SSH. Wewnątrz tego pliku przewiń i znajdź wpis „PasswordAuthentication”.

Usuń symbol # przed hasłem „PasswordAuthentication” i upewnij się, że ma przed sobą słowo „nie”. Jeśli wszystko wygląda dobrze, zapisz zmiany w konfiguracji SSH, naciskając Ctrl + O na klawiaturze.

Po zapisaniu konfiguracji zamknij Nano za pomocą Ctrl + X i uruchom ponownie SSHD, aby zastosować zmiany.

systemctl restart sshd

Jeśli nie używasz systemd, spróbuj ponownie uruchomić SSH za pomocą tego polecenia:

service ssh restart

Następnym razem, gdy zdalna maszyna spróbuje zalogować się do tego serwera SSH, sprawdzi prawidłowe klucze i wpuści je bez hasła.

Wyłącz konto główne

Wyłączenie konta głównego na serwerze SSH to sposób na złagodzenie szkód, które mogą wystąpić, gdy nieautoryzowany użytkownik uzyska dostęp przez SSH. Aby wyłączyć konto Root, konieczne jest, aby przynajmniej jeden użytkownik na serwerze SSH mógł uzyskać roota przez sudo. Zapewni to, że nadal będziesz mógł uzyskać dostęp na poziomie systemu, jeśli go potrzebujesz, bez hasła roota.

Uwaga: upewnij się, że użytkownicy, którzy mogą uzyskać dostęp do uprawnień roota przez sudo, mają bezpieczne hasło, lub wyłączanie konta superużytkownika jest bezcelowe.

Aby wyłączyć rootowanie, podnieś terminal do uprawnień superużytkownika:

sudo -s

Użycie sudo -s omija potrzebę logowania się za pomocą su i zamiast tego przyznaje powłokę roota za pośrednictwem pliku sudoers. Teraz, gdy powłoka ma dostęp superużytkownika, uruchom polecenie hasła i wymieszaj konto Root za pomocą –lock.

passwd --lock root

Uruchomienie powyższego polecenia szyfruje hasło konta Root, więc logowanie przez su jest niemożliwe. Odtąd użytkownicy mogą wejść tylko przez SSH jako użytkownik lokalny, a następnie przełączyć się na konto Root za pomocą uprawnień sudo.