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  Dodawanie użytkowników w systemie Linux

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 tuneli VPN z wykorzystaniem systemd-networkd: Nowoczesne podejście do zarządzania siecią w systemach Linux
Konfiguracja tuneli VPN z wykorzystaniem systemd-networkd: Nowoczesne podejście do zarządzania siecią w systemach Linux

Konfiguracja tuneli VPN z wykorzystaniem systemd-networkd: Nowoczesne podejście do zarządzania siecią w systemach Linux Współczesne systemy operacyjne Linux oferują szeroką Czytaj dalej

Jak stworzyć prywatny serwer DNS i poprawić bezpieczeństwo przeglądania
Jak stworzyć prywatny serwer DNS i poprawić bezpieczeństwo przeglądania

🧠 Jak stworzyć prywatny serwer DNS i poprawić bezpieczeństwo przeglądania Własny prywatny serwer DNS to doskonały sposób na zwiększenie bezpieczeństwa, 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.