Audyt bezpieczeństwa wykrył dostępny z zewnątrz port SSH. Nie mam możliwości zablokowania tej usługi czy ograniczenia do konkretnych adresów IP. Jakie zabezpieczenia po stronie samej usługi SSH wdrożyć w tej sytuacji?
Apr 13, 10:25am
Michale, sytuacja, w której musisz zabezpieczyć dostępny z zewnątrz port SSH, mimo braku możliwości blokowania go na poziomie sieci, wymaga skupienia się na samych mechanizmach bezpieczeństwa usługi SSH. Oto kluczowe kroki, które możesz podjąć, aby zminimalizować ryzyko:
1. Zmiana domyślnego portu SSH
Dlaczego? Port 22 jest standardowo skanowany przez boty i atakujących. Zmiana portu na niestandardowy (np. 2222, 2424) zmniejszy liczbę automatycznych ataków.
Jak? Edytuj plik /etc/ssh/sshd_config i zmień linię Port 22 na wybrany port. Pamiętaj, aby otworzyć nowy port w zaporze.
2. Wyłączenie logowania hasłem – tylko klucze SSH
Dlaczego? Logowanie za pomocą kluczy kryptograficznych jest znacznie bezpieczniejsze niż hasła, które mogą zostać złamane metodą brute force.
Jak?
Wygeneruj parę kluczy (publiczny/prywatny) na swoim lokalnym komputerze: ssh-keygen -t ed25519.
Skopiuj klucz publiczny na serwer: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@serwer.
W pliku /etc/ssh/sshd_config ustaw:
text
PasswordAuthentication no
PubkeyAuthentication yes
Uwaga: Upewnij się, że masz dostęp do klucza prywatnego przed wyłączeniem logowania hasłem!
3. Ograniczenie dostępu do konkretnych użytkowników
Dlaczego? Zmniejsza to powierzchnię ataku, jeśli tylko wybrani użytkownicy mogą się logować.
Dlaczego? Dodatkowa warstwa zabezpieczeń, nawet jeśli klucz SSH zostanie skompromitowany.
Jak? Możesz użyć narzędzi takich jak Google Authenticator lub pam_google_authenticator. Wymaga to zainstalowania odpowiednich modułów PAM i skonfigurowania /etc/ssh/sshd_config oraz /etc/pam.d/sshd.
5. Ograniczenie czasu sesji i nieaktywnych połączeń
Skonfiguruj reguły dla SSH w pliku /etc/fail2ban/jail.local.
7. Regularne aktualizacje oprogramowania
Dlaczego? Starsze wersje OpenSSH mogą zawierać luki bezpieczeństwa.
Jak? Regularnie aktualizuj system i pakiet OpenSSH: sudo apt update && sudo apt upgrade (dla Debian/Ubuntu).
8. Monitorowanie logów SSH
Dlaczego? Pozwala wykryć podejrzane aktywności i szybko zareagować.
Jak? Sprawdzaj logi w /var/log/auth.log (lub /var/log/secure na niektórych systemach). Możesz skonfigurować alerty dla nieudanych prób logowania.
9. Użycie reguł zapory sieciowej na poziomie hosta
Dlaczego? Nawet jeśli nie możesz blokować portu na poziomie sieci, możesz ograniczyć dostęp na poziomie serwera.
Jak? Użyj iptables lub ufw (np. sudo ufw allow from 192.168.1.0/24 to any port 2222), jeśli masz kontrolę nad lokalnymi adresami IP.
10. Wyłączenie root logowania
Dlaczego? Logowanie bezpośrednio jako root jest niebezpieczne i powinno być zablokowane.
Jak? W pliku /etc/ssh/sshd_config ustaw:
text
PermitRootLogin no
Podsumowanie
Najważniejsze kroki to wyłączenie logowania hasłem, użycie kluczy SSH, zmiana portu, ograniczenie dostępu do użytkowników oraz włączenie 2FA i fail2ban. Regularne monitorowanie i aktualizacje są kluczowe dla utrzymania bezpieczeństwa.
Czy chcesz, abym pomógł Ci z konkretną konfiguracją któregoś z tych punktów? Na przykład, jak skonfigurować fail2ban lub 2FA?
Apr 13, 10:25am
This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.