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:
/etc/ssh/sshd_config i zmień linię Port 22 na wybrany port. Pamiętaj, aby otworzyć nowy port w zaporze.ssh-keygen -t ed25519.ssh-copy-id -i ~/.ssh/id_ed25519.pub user@serwer./etc/ssh/sshd_config ustaw:
textPasswordAuthentication no PubkeyAuthentication yes
/etc/ssh/sshd_config dodaj:
textAllowUsers nazwa_uzytkownika1 nazwa_uzytkownika2
/etc/ssh/sshd_config oraz /etc/pam.d/sshd./etc/ssh/sshd_config dodaj:
To spowoduje, że serwer będzie sprawdzał co 5 minut, czy klient jest aktywny, i zamknie połączenie po 2 nieudanych próbach.textClientAliveInterval 300 ClientAliveCountMax 2
sudo apt install fail2ban (dla Debian/Ubuntu)./etc/fail2ban/jail.local.sudo apt update && sudo apt upgrade (dla Debian/Ubuntu)./var/log/auth.log (lub /var/log/secure na niektórych systemach). Możesz skonfigurować alerty dla nieudanych prób logowania.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./etc/ssh/sshd_config ustaw:
textPermitRootLogin no
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?