Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem
Linux

Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem

🔐 Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem

SSH (Secure Shell) to brama do Twojego systemu. Niewłaściwa konfiguracja może pozwolić atakującym na:

  • próby logowania jako root,
  • brute-force na dowolne konta,
  • wykrywanie standardowego portu SSH.

W tym poradniku wzmocnimy bezpieczeństwo SSH w 3 krokach:

  1. wyłączymy logowanie jako root,
  2. zmienimy domyślny port,
  3. wymusimy logowanie przez klucz publiczny.

🛠️ Krok 1: Edycja pliku konfiguracyjnego SSH

Plik:

/etc/ssh/sshd_config

Zrób kopię bezpieczeństwa:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

🚫 Krok 2: Wyłączenie logowania jako root

Znajdź linię:

PermitRootLogin yes

Zmień na:

PermitRootLogin no

Dlaczego to ważne? Konto root jest najczęściej atakowane w pierwszej kolejności. Jeśli nie można się na nie zalogować, atakujący musi najpierw zdobyć inne konto z uprawnieniami sudo.

Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem
Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem

🔁 Krok 3: Zmiana portu SSH

Domyślny port to 22 – łatwy do wykrycia.

Zmień:

Port 22

Na inny, np.:

Port 2222

📌 Uwaga: port powinien być >1024, jeśli nie używasz root’a.
📌 Po zmianie upewnij się, że Twój firewall (np. ufw, nftables) pozwala na połączenia do nowego portu.


🔑 Krok 4: Wymuszenie logowania przez klucz publiczny

Zamień:

PasswordAuthentication yes

Na:

PasswordAuthentication no

Dzięki temu tylko użytkownicy posiadający klucz prywatny będą mogli się zalogować.

Czytaj  Zaawansowana optymalizacja usług i procesów w Windows 11 – praktyczny przewodnik krok po kroku

Jak wygenerować klucz SSH?

Na komputerze klienta (np. lokalnym laptopie):

ssh-keygen -t ed25519 -C "nazwa-klucza"

Domyślnie utworzy:

  • klucz prywatny: ~/.ssh/id_ed25519
  • klucz publiczny: ~/.ssh/id_ed25519.pub

Skopiuj klucz na serwer:

ssh-copy-id -p 2222 user@server

(Lub ręcznie dodaj zawartość pliku .pub do ~/.ssh/authorized_keys na serwerze).


🔄 Krok 5: Zrestartuj usługę SSH

Po zapisaniu zmian:

sudo systemctl restart sshd

🔍 Upewnij się, że nowa konfiguracja działa. Przetestuj logowanie w drugim terminalu, zanim wylogujesz się z obecnej sesji!


📋 Dodatkowe ustawienia bezpieczeństwa (opcjonalne)

Dodaj te linie, by wzmocnić konfigurację:

LoginGraceTime 30
MaxAuthTries 3
MaxSessions 2

Możesz też ograniczyć dostęp do SSH tylko dla wybranych użytkowników:

AllowUsers admin backupuser

🛡️ Firewall – nie zapomnij!

Jeśli używasz ufw:

sudo ufw allow 2222/tcp

Dla nftables, dodaj regułę do łańcucha input.


✅ Podsumowanie

Poprawiając konfigurację SSH:

✔️ Zatrzymujesz możliwość logowania się jako root
✔️ Minimalizujesz ryzyko ataków brute-force
✔️ Utrudniasz skanowanie portów i automatyczne ataki
✔️ Zwiększasz bezpieczeństwo przez klucze publiczne

 

Polecane wpisy
Konfiguracja zapory UFW w Ubuntu — krok po kroku
Konfiguracja zapory UFW w Ubuntu — krok po kroku

Konfiguracja zapory UFW w Ubuntu — krok po kroku 🔐🛠️ Wstęp — po co UFW? ❓ UFW (Uncomplicated Firewall) to Czytaj dalej

Nano Server: Ostateczna minimalizacja dla maksymalnego bezpieczeństwa i wydajności
Nano Server: Ostateczna minimalizacja dla maksymalnego bezpieczeństwa i wydajności

🧱 Nano Server: Ostateczna minimalizacja dla maksymalnego bezpieczeństwa i wydajności 🧭 Wprowadzenie W erze konteneryzacji, mikroserwisów, DevOps i nieustannych zagrożeń 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.