Jak poprawić bezpieczeństwo SSH na Ubuntu – Kompletny przewodnik
Bezpieczeństwo systemów operacyjnych opartych na Linuksie, takich jak Ubuntu, jest jednym z najważniejszych aspektów w administracji serwerami. Jednym z najczęściej wykorzystywanych sposobów dostępu zdalnego do systemu jest protokół SSH (Secure Shell). Choć SSH oferuje silne mechanizmy szyfrowania i uwierzytelniania, nieodpowiednia konfiguracja może narazić system na ataki. W tym artykule omówimy, jak poprawić bezpieczeństwo SSH na Ubuntu, implementując kilka kluczowych praktyk, które znacznie zwiększą ochronę przed potencjalnymi zagrożeniami.

1. Wymagania wstępne
Aby poprawić bezpieczeństwo SSH na Ubuntu, musisz posiadać dostęp do konta z uprawnieniami administratora (sudo). Należy również mieć zainstalowany i skonfigurowany serwer SSH. Warto, abyś miał dostęp do terminala, ponieważ większość działań będziesz przeprowadzać za pomocą wiersza poleceń.
2. Dlaczego bezpieczeństwo SSH jest tak ważne?
SSH jest jednym z najpopularniejszych protokołów do zdalnego łączenia się z serwerami i komputerami w sieci. Niestety, jeśli konfiguracja SSH nie jest odpowiednia, może stać się łatwym celem dla cyberprzestępców. Brak silnych zabezpieczeń, takich jak odpowiednia konfiguracja haseł, użycie protokołów szyfrowania lub zarządzanie dostępem do serwera, może prowadzić do nieautoryzowanego dostępu do systemu.
Z tego względu ważne jest, aby wdrożyć odpowiednie środki ochrony, które uniemożliwią ataki typu brute force oraz zapewnią bezpieczne i kontrolowane połączenia.
3. Zmiana domyślnego portu SSH
Domyślnie SSH działa na porcie 22, co sprawia, że jest to jeden z najbardziej rozpoznawanych portów przez cyberprzestępców próbujących przeprowadzić ataki. Zmiana domyślnego portu może zmniejszyć ryzyko ataków.
Aby zmienić port SSH, wykonaj następujące kroki:
- Edytuj plik konfiguracyjny SSH:
sudo nano /etc/ssh/sshd_config - Znajdź linię zawierającą
#Port 22i zmień ją na preferowany port, np. 2222:Port 2222 - Zapisz zmiany i zamknij plik.
- Zrestartuj usługę SSH, aby zastosować zmiany:
sudo systemctl restart ssh - Sprawdź, czy SSH działa na nowym porcie:
sudo ufw allow 2222/tcp
Po tej zmianie, aby połączyć się z serwerem, będziesz musiał używać nowego portu w poleceniu SSH:
ssh -p 2222 user@ip_address
4. Dezaktywowanie logowania za pomocą hasła
Jednym z najważniejszych sposobów na zabezpieczenie SSH jest wyłączenie logowania przy użyciu tradycyjnych haseł, co zmniejsza ryzyko ataków brute force. Zamiast tego, należy skonfigurować system, aby umożliwiał logowanie wyłącznie za pomocą kluczy SSH.
- Edytuj plik konfiguracyjny SSH:
sudo nano /etc/ssh/sshd_config - Znajdź i zmień następujące linie:
PasswordAuthentication no - Zapisz zmiany i zamknij plik.
- Zrestartuj usługę SSH:
sudo systemctl restart ssh
Teraz logowanie za pomocą hasła będzie zablokowane, a dostęp do serwera będzie możliwy tylko za pomocą kluczy SSH.
5. Używanie kluczy SSH zamiast haseł
Logowanie za pomocą kluczy SSH jest bezpieczniejsze i bardziej odporne na ataki niż tradycyjne hasła. Aby skonfigurować logowanie za pomocą kluczy SSH:
- Na komputerze lokalnym wygeneruj parę kluczy SSH:
ssh-keygen -t rsa -b 4096 - Zainstaluj klucz publiczny na serwerze:
ssh-copy-id user@ip_address - Po wprowadzeniu hasła serwera klucz publiczny zostanie dodany do pliku
~/.ssh/authorized_keysna serwerze.
Teraz będziesz mógł logować się na serwer bez potrzeby podawania hasła.
6. Ograniczenie dostępu do SSH za pomocą firewalla
Aby dodatkowo zabezpieczyć dostęp do SSH, warto ograniczyć dostęp tylko do określonych adresów IP. Możesz to zrobić, konfigurując firewall, na przykład UFW (Uncomplicated Firewall).
- Zezwól na dostęp do SSH tylko z określonych adresów IP:
sudo ufw allow from 192.168.1.100 to any port 2222 proto tcp - Zablokuj dostęp do portu SSH dla wszystkich innych:
sudo ufw deny 2222/tcp
7. Monitorowanie i blokowanie prób logowania
Możesz monitorować logi SSH i wykrywać podejrzane próby logowania, a także blokować adresy IP, które próbują wykonać atak brute force. Narzędzie Fail2Ban może automatycznie blokować adresy IP, które wielokrotnie próbują się nieudanie zalogować.
Aby zainstalować Fail2Ban:
- Zainstaluj Fail2Ban:
sudo apt install fail2ban - Skonfiguruj Fail2Ban:
sudo nano /etc/fail2ban/jail.localW pliku tym możesz określić, które usługi będą monitorowane oraz czas blokady.
- Uruchom Fail2Ban:
sudo systemctl start fail2ban
8. Weryfikacja konfiguracji i testowanie
Po wdrożeniu powyższych środków bezpieczeństwa warto przetestować konfigurację. Możesz to zrobić, próbując połączyć się z serwerem SSH:
- Przeprowadź testy logowania za pomocą hasła i upewnij się, że są zablokowane.
- Sprawdź, czy logowanie kluczami SSH działa poprawnie.
- Użyj narzędzi takich jak nmap, aby sprawdzić, czy nowy port SSH jest dostępny.
9. Podsumowanie
Zabezpieczenie SSH na Ubuntu to kluczowy element ochrony systemu przed atakami. Dzięki zastosowaniu kilku prostych kroków, takich jak zmiana domyślnego portu, dezaktywowanie logowania za pomocą haseł, używanie kluczy SSH, ograniczenie dostępu za pomocą firewalla, monitorowanie prób logowania i blokowanie atakujących, możesz znacznie zwiększyć poziom bezpieczeństwa swojego serwera.
Pamiętaj, że bezpieczeństwo to proces ciągły. Regularnie aktualizuj system, monitoruj logi i wprowadzaj nowe zabezpieczenia, aby zawsze być przygotowanym na ewentualne zagrożenia.






