Zabezpieczenie loginu SSH w Debianie z fail2ban
Problem
W pliku
/var/log/auth.log
występują liczne nieudane próby logowania SSH, które nie pochodzą od uprawnionych użytkowników.
Feb 19 09:21:15 servername sshd[22796]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.207.xx.xx user=root Feb 19 09:21:17 servername sshd[22796]: Failed password for root from 218.207.xx.xx port 22 ssh2
Wyjaśnienie
- Zdalny użytkownik podał (omyłkowo) błędny adres IP serwera i próbował się zalogować. Ilość prób logowania w tym przypadku jest zazwyczaj niewielka.
- Przeprowadzony został atak Brute Force, w którym przeprowadzane są liczne próby logowania użytkownika root z rożnymi hasłami. Ilość prób logowania jest wysoka.
Rozwiązanie
Zabezpieczenie loginu SSH za pośrednictwem narzędzia fail2ban, zablokowanie bezpośredniego loginu użytkownika root lub logowanie jedynie przez SSH Key.
Co to jest Fail2Ban
Fail2Ban jest programem napisanym w Pythonie, który umożliwia zabezpieczenie rożnych usług serwera przeciwko nieautoryzowanym dostępowi. W poniższym przykładzie konfiguracji, adres IP blokowany jest na okres 1 godz. po 4 błędnych próbach logowania przez SSH.
Instalacja Fail2Ban
apt-get install fail2ban
Konfiguracja Fail2Ban
Edytowany jest następujący plik:
/etc/fail2ban/jail.conf
Ustalenie lokalnego adresu IP serwera, czasu przez jaki adres IP ma być zablokowany i ilość prób logowania, po której IP ma zostać zablokowane:
ignoreip = 127.0.0.1 bantime = 3600 maxretry = 3
Możliwe jest dostosowanie parametrów dla poszczególnych usług (jak tu w artykule dla demona SSH).
Zdefiniowanie wymaganych parametrów do monitoringu demona SSH:
enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 4
Następnie należy restartowac fail2ban, w celu przejęcia zmian.
/etc/init.d/fail2ban restart