SSH to niezwykle przydatne narzędzie, które umożliwia zdalny dostęp do terminali komputerów oraz serwerów działających na systemie Linux przez sieć, a nawet Internet. Mimo że technologia ta ma wiele zalet, wiąże się również z poważnymi zagrożeniami bezpieczeństwa, które mogą czynić jej użycie ryzykownym. Jeśli jesteś zwykłym użytkownikiem, nie musisz angażować się w skomplikowane zabezpieczenia SSH. Wystarczy, że zastosujesz kilka podstawowych kroków, aby zwiększyć bezpieczeństwo swojego serwera SSH na systemie Linux.
Zmiana domyślnego portu połączenia
Jednym z najprostszych i najszybszych sposobów na zabezpieczenie serwera SSH jest zmiana portu, który jest używany do połączeń. Domyślnie serwer SSH działa na porcie 22. Aby to zmienić, otwórz terminal i nawiąż połączenie SSH z zdalnym komputerem, który obsługuje serwer SSH.
ssh user@local-ip-address
Po zalogowaniu się, uzyskaj dostęp do konta root. Jeśli dysponujesz kontem Root, możesz użyć polecenia su. W przeciwnym razie skorzystaj z sudo.
su -
lub
sudo -s
Teraz, mając uprawnienia administratora, otwórz plik konfiguracyjny SSH w edytorze Nano.
nano /etc/ssh/sshd_config
Znajdź linię z napisem „Port 22”. Usuń znak #, jeśli występuje, a następnie zmień „22” na inny numer. Zazwyczaj wystarczy wybrać port powyżej 100, lub w zakresie 1000. Po dokonaniu zmiany, zapisz plik, naciskając Ctrl + O, a następnie zamknij edytor za pomocą Ctrl + X.
Zmiana w pliku konfiguracyjnym nie spowoduje natychmiastowego przełączenia serwera SSH na nowy port. Musisz ręcznie zrestartować usługę.
systemctl restart sshd
Wykonanie tego polecenia powinno zrestartować demona SSH i zastosować nowe ustawienia. Jeśli restart demona zakończy się niepowodzeniem, alternatywnie możesz zrestartować cały serwer:
reboot
Po restarcie demona (lub całego serwera), SSH nie będzie już dostępne przez port 22, co oznacza, że każde nowe połączenie SSH będzie wymagało podania nowego portu.
Uwaga: pamiętaj, aby zmienić „1234” na nowy port, który ustawiłeś w pliku konfiguracyjnym SSH.
ssh -p 1234 user@local-ip-address
Dezaktywacja logowania za pomocą hasła
Innym skutecznym sposobem na zwiększenie bezpieczeństwa serwera SSH jest wyłączenie logowania za pomocą hasła i przejście na logowanie oparte na kluczach SSH. Używanie kluczy SSH tworzy zaufany związek między serwerem SSH a zdalnymi maszynami, które posiadają Twój klucz, co zapewnia dodatkowe bezpieczeństwo.
Najpierw skonfiguruj klucz SSH na serwerze. Po skonfigurowaniu kluczy, otwórz terminal i edytuj plik konfiguracyjny SSH.
su -
lub
sudo -s
Następnie otwórz konfigurację w Nano:
nano /etc/ssh/sshd_config
Domyślnie serwery SSH pozwalają na uwierzytelnianie za pomocą hasła użytkownika. Choć bezpieczne hasło może być skuteczne, korzystanie z klucza SSH na zaufanych maszynach jest szybsze i bardziej wygodne. Aby zakończyć proces przechodzenia na logowanie bez hasła, znajdź w pliku konfiguracyjnym wpis „PasswordAuthentication”.
Usuń symbol # przed „PasswordAuthentication” i upewnij się, że jego wartość to „no”. Po dokonaniu zmian, zapisz plik, naciskając Ctrl + O, a następnie zamknij Nano za pomocą Ctrl + X. Restartuj SSHD, aby zastosować zmiany.
systemctl restart sshd
Jeśli nie korzystasz z systemd, użyj tego polecenia, aby zrestartować SSH:
service ssh restart
Od tej pory, gdy zdalna maszyna będzie próbowała zalogować się do serwera SSH, będzie weryfikować klucze i pozwoli na dostęp bez hasła.
Dezaktywacja konta root
Wyłączenie konta root na serwerze SSH jest skutecznym sposobem na ograniczenie potencjalnych szkód, które mogą powstać, gdy nieautoryzowany użytkownik uzyska dostęp przez SSH. Aby wyłączyć konto root, przynajmniej jeden użytkownik musi mieć możliwość uzyskania dostępu do roota za pomocą sudo. To zapewnia, że w razie potrzeby nadal będziesz mógł uzyskać dostęp do systemu bez posiadania hasła roota.
Uwaga: upewnij się, że użytkownicy, którzy mają dostęp do roota przez sudo, mają silne hasła, inaczej wyłączenie konta root nie ma sensu.
Aby wyłączyć rootowanie, uzyskaj dostęp do terminala jako superużytkownik:
sudo -s
Użycie sudo -s pozwala na obejście logowania się jako su, przyznając dostęp do powłoki roota przez plik sudoers. Teraz, mając dostęp do konta superużytkownika, uruchom polecenie, aby zablokować konto root:
passwd --lock root
Wykonanie tego polecenia szyfruje hasło konta root, co uniemożliwia logowanie przy użyciu su. Od teraz użytkownicy będą mogli logować się przez SSH jako użytkownicy lokalni, a następnie przełączać się na konto root za pomocą sudo.
newsblog.pl