Sieć i bezpieczeństwo Podstawowy+ 50 min

Bezpieczna konfiguracja SSH

Poznasz podstawowe opcje konfiguracji serwera SSH, sposób bezpiecznego testowania zmian oraz praktyczne znaczenie logowania kluczami zamiast hasłem.

Wróć do listy lekcji

1. Krótka teoria

OpenSSH Server pozwala administratorowi zdalnie logować się do systemu, dlatego jego konfiguracja ma duży wpływ na bezpieczeństwo serwera. Główny plik konfiguracyjny to /etc/ssh/sshd_config. Przed zmianami warto mieć aktywną drugą sesję SSH albo dostęp konsolowy, aby nie odciąć sobie dostępu przez błędną konfigurację. Bezpieczna praca zaczyna się od edycji przez sudoedit, sprawdzenia składni poleceniem sshd -t, a dopiero potem restartu usługi. Opcja PermitRootLogin kontroluje logowanie bezpośrednio na konto root. W typowej administracji lepiej używać zwykłego użytkownika i sudo, bo daje to lepszą kontrolę i ślad działań. PasswordAuthentication decyduje, czy serwer przyjmuje logowanie hasłem. Gdy działa logowanie kluczami, wyłączenie haseł ogranicza skuteczność zgadywania haseł przez Internet. PubkeyAuthentication odpowiada za logowanie kluczami publicznymi. Po każdej zmianie należy sprawdzić status usługi i wykonać test logowania w nowej sesji, zanim zamknie się dotychczasowe połączenie.

2. Przykłady komend

sudoedit /etc/ssh/sshd_config

Bezpiecznie otwiera główny plik konfiguracji serwera SSH do edycji.

$ sudoedit /etc/ssh/sshd_config
sudo sshd -t

Sprawdza składnię konfiguracji sshd bez restartowania usługi.

$ sudo sshd -t
sudo systemctl restart sshd

Restartuje usługę SSH po poprawnym sprawdzeniu konfiguracji.

$ sudo systemctl restart sshd
sudo systemctl status sshd

Pokazuje bieżący stan usługi sshd i ostatnie komunikaty.

$ sudo systemctl status sshd
sudo journalctl -u sshd -n 50

Wyświetla ostatnie wpisy logów usługi sshd.

$ sudo journalctl -u sshd -n 50
ssh user@example.com

Testuje logowanie do serwera po zmianie konfiguracji.

$ ssh user@example.com

3. Zadanie praktyczne

Na maszynie laboratoryjnej otwórz /etc/ssh/sshd_config przez sudoedit /etc/ssh/sshd_config i odszukaj opcje PermitRootLogin, PasswordAuthentication oraz PubkeyAuthentication. Nie zmieniaj ich na serwerze produkcyjnym bez planu dostępu awaryjnego. W labie ustaw bezpieczne wartości, sprawdź składnię przez sudo sshd -t, zrestartuj usługę poleceniem sudo systemctl restart sshd i potwierdź stan przez sudo systemctl status sshd. Przed zamknięciem starej sesji wykonaj nowe połączenie testowe.

4. Typowe błędy

  • Restartowanie sshd bez wcześniejszego sprawdzenia konfiguracji przez sshd -t.
  • Zamykanie jedynej aktywnej sesji SSH przed testem nowego logowania.
  • Pozostawianie logowania hasłem mimo poprawnie działających kluczy SSH.
  • Dopuszczanie bezpośredniego logowania root do codziennej administracji.
  • Mylenie konfiguracji klienta SSH z konfiguracją serwera sshd.
  • Wprowadzanie zmian produkcyjnych bez dostępu konsolowego lub planu awaryjnego.

5. Podsumowanie

Bezpieczna konfiguracja SSH polega na rozważnym ograniczaniu metod logowania i testowaniu każdej zmiany. PermitRootLogin, PasswordAuthentication i PubkeyAuthentication to podstawowe opcje, które warto rozumieć. Przed restartem używaj sshd -t, po restarcie sprawdzaj systemctl status sshd i zawsze testuj nowe połączenie przed zamknięciem starej sesji.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie