Jak poprawić bezpieczeństwo SSH na Ubuntu
Baza wiedzy Linux

Jak poprawić bezpieczeństwo SSH na Ubuntu

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.

Jak poprawić bezpieczeństwo SSH na Ubuntu
Jak poprawić bezpieczeństwo SSH na Ubuntu

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.

Czytaj  Migracja z IPv4 na IPv6: Techniki przejściowe w Linuksie

Aby zmienić port SSH, wykonaj następujące kroki:

  1. Edytuj plik konfiguracyjny SSH:
    sudo nano /etc/ssh/sshd_config
    
  2. Znajdź linię zawierającą #Port 22 i zmień ją na preferowany port, np. 2222:
    Port 2222
    
  3. Zapisz zmiany i zamknij plik.
  4. Zrestartuj usługę SSH, aby zastosować zmiany:
    sudo systemctl restart ssh
    
  5. 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.

  1. Edytuj plik konfiguracyjny SSH:
    sudo nano /etc/ssh/sshd_config
    
  2. Znajdź i zmień następujące linie:
    PasswordAuthentication no
    
  3. Zapisz zmiany i zamknij plik.
  4. 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:

  1. Na komputerze lokalnym wygeneruj parę kluczy SSH:
    ssh-keygen -t rsa -b 4096
    
  2. Zainstaluj klucz publiczny na serwerze:
    ssh-copy-id user@ip_address
    
  3. Po wprowadzeniu hasła serwera klucz publiczny zostanie dodany do pliku ~/.ssh/authorized_keys na 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).

  1. 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
    
  2. 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ć.

Czytaj  Informacje o dysku Linux komendy

Aby zainstalować Fail2Ban:

  1. Zainstaluj Fail2Ban:
    sudo apt install fail2ban
    
  2. Skonfiguruj Fail2Ban:
    sudo nano /etc/fail2ban/jail.local
    

    W pliku tym możesz określić, które usługi będą monitorowane oraz czas blokady.

  3. 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.

Polecane wpisy
Problemy z konfiguracją firewalla (iptables, firewalld): Błędy blokujące niepożądany ruch sieciowy lub uniemożliwiające dostęp do usług
Problemy z konfiguracją firewalla (iptables, firewalld): Błędy blokujące niepożądany ruch sieciowy lub uniemożliwiające dostęp do usług

Problemy z konfiguracją firewalla (iptables, firewalld): Błędy blokujące niepożądany ruch sieciowy lub uniemożliwiające dostęp do usług 🛡️ Wprowadzenie Firewall w Czytaj dalej

Jak tworzyć bazy danych
Jak tworzyć bazy danych

Jak tworzyć bazy danych Bazy danych to kolekcje uporządkowanych danych, które są przechowywane w sposób, który umożliwia szybki i łatwy Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.