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.
Spis treści:
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.