SSH Penetration Testing — audyt bezpieczeństwa własnego serwera
Po co testować SSH na własnym serwerze?
Boty skanujące internet nieustannie atakują port 22 w poszukiwaniu słabych haseł i podatnych wersji OpenSSH. Luki w konfiguracji SSH to jedna z najczęstszych przyczyn przejęcia serwerów VPS. Samodzielny audyt pozwala znaleźć luki zanim zrobi to atakujący.
Typowe słabości ujawniane przez audyt SSH:
- Root login przez hasło (powinien być wyłączony)
- Słabe hasła użytkowników
- Stara wersja OpenSSH z CVE
- Brak fail2ban lub zbyt łagodna konfiguracja
- SSH dostępny na domyślnym porcie 22 (łatwy cel automatycznych skanerów)
- Włączone słabe algorytmy kryptograficzne (MD5, SHA1)
Krok 1: Skanowanie portu SSH (Nmap)
Nmap wykrywa wersję OpenSSH i aktywne algorytmy kryptograficzne:
# Skanowanie portu 22 z detekcją wersji
nmap -sV -p 22 TW_IP_SERWERA
# Pełny audyt SSH z sprawdzeniem algorytmów
nmap --script ssh2-enum-algos -p 22 TW_IP_SERWERA
# Sprawdzenie podatności (CVE)
nmap --script ssh-auth-methods --script-args="ssh.user=root" -p 22 TW_IP_SERWERA Co sprawdzić w wynikach Nmap
- Wersja OpenSSH — porównaj z listą wydań OpenSSH. Stara wersja = aktualizacja przez
apt upgrade openssh-server. - Słabe algorytmy —
diffie-hellman-group1-sha1,arcfour,hmac-md5powinny być nieobecne. Jeśli są — hardening konfiguracji (patrz niżej). - auth_methods — powinno być wyłącznie
publickey. Jeśli widaćpassword— wyłącz logowanie hasłem.
Krok 2: Test brute-force (Hydra) na własnym serwerze
Hydra sprawdza czy fail2ban i konfiguracja SSH blokują ataki słownikowe:
# Instalacja
sudo apt install hydra
# Test na WŁASNYM serwerze — podstawowy słownik
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://TW_IP_SERWERA
# Test z własną listą haseł
hydra -l admin -P mojalistahaseł.txt -t 4 ssh://TW_IP_SERWERA:22 Oczekiwany wynik na dobrze skonfigurowanym serwerze: Hydra powinna zostać zablokowana przez fail2ban po 3–5 próbach. Jeśli test biegnie bez blokady — fail2ban nie działa poprawnie.
Sprawdzenie czy fail2ban działa
sudo fail2ban-client status sshd
# Powinno pokazać: Currently banned: 1 (twój IP testowy)
# Odblokowanie własnego IP po teście
sudo fail2ban-client set sshd unbanip TW_IP Krok 3: Audit konfiguracji OpenSSH
Narzędzie ssh-audit analizuje konfigurację serwera SSH bez logowania:
# Instalacja ssh-audit
pip3 install ssh-audit
# Audyt serwera
ssh-audit TW_IP_SERWERA Wynik zawiera kolorowe oznaczenia: 🟢 OK, 🟡 ostrzeżenie, 🔴 krytyczne. Skup się na pozycjach czerwonych — to algorytmy lub konfiguracje do usunięcia.
Alternatywna weryfikacja online
Bez instalacji narzędzi — użyj serwisu ssl-config.mozilla.org lub
sshcheck.io (wpisz IP serwera). Pamiętaj że zewnętrzny skaner zostawia ślad w logach.
Krok 4: Hardening na podstawie wyników
Po audycie zaktualizuj /etc/ssh/sshd_config:
# Bezpieczna konfiguracja OpenSSH (minimum)
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizationKeysFile .ssh/authorized_keys
MaxAuthTries 3
LoginGraceTime 30
# Wyłącz słabe algorytmy
KexAlgorithms curve25519-sha256,diffie-hellman-group14-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-512,hmac-sha2-256
# Restart po zmianach (pamiętaj o aktywnej sesji SSH!)
sudo sshd -t # test konfiguracji
sudo systemctl restart sshd Automatyczny monitoring: Lynis
Lynis to kompleksowy audytor bezpieczeństwa systemu Linux — sprawdza SSH i dziesiątki innych obszarów:
sudo apt install lynis
sudo lynis audit system --quick Wynik zawiera punktację (hardening index) i listę rekomendacji. Uruchamiaj cyklicznie — np. przez cron co miesiąc.
Sprawdź oferty pasujące do tego scenariusza
Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.