Инструкция по установке и настройке fail2ban в CentOS для защиты SSH от перебора паролей.
Fail2Ban – программа для защиты серверов от перебора паролей (метод грубой силы).
Принцип работы Fail2Ban
fail2ban перечитывает логи обнаруживая в них подозрительную активность, в данном случае ошибки авторизации. В случае обнаружения действий, соответствующих условию, блокирует IP адрес на определенное время.
Установка fail2ban в CentOS
Устанавливаем репозиторий epel
yum install epel-release
Устанавливаем fail2ban
yum install fail2ban
Включаем и запускаем службу
systemctl enable fail2ban
systemctl start fail2ban
Настройка fail2ban
Создаем файл
nano /etc/fail2ban/jail.local
Блокировка IP в iptables
Создаем конфиг, который будет блокировать IP адрес после 3 не успешных попыток авторизации.
[DEFAULT]
banaction = iptables-multiport
bantime = 3600
findtime = 180
maxretry = 3
backend = systemd
[sshd]
enabled = true
Для применения конфигурации необходимо перезапустить fail2ban
systemctl restart fail2ban
Блокировка IP в firewallcmd
Если нам нужна блокировка в firewal-cmd, указываем следующий конфиг, отличие только в поле banaction
[DEFAULT]
banaction = firewallcmd-ipset
bantime = 3600
findtime = 180
maxretry = 3
backend = systemd
[sshd]
enabled = true
Для применения конфигурации необходимо перезапустить fail2ban
systemctl restart fail2ban
Просмотр логов fail2ban
fail2ban пишет логи в /var/log/fail2ban.log
tail -f /var/log/fail2ban.log
2022-03-04 01:32:05,428 fail2ban.jail [2278]: INFO Jail 'sshd' started
2022-03-04 01:33:02,389 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:36
2022-03-04 01:33:02,390 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:39
2022-03-04 01:33:02,391 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:44
2022-03-04 01:33:02,392 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:46
2022-03-04 01:33:02,392 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:46
2022-03-04 01:33:02,393 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:51
2022-03-04 01:33:02,394 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:32:52
2022-03-04 01:33:02,757 fail2ban.actions [2278]: NOTICE [sshd] Ban 192.168.153.1
2022-03-04 01:33:04,381 fail2ban.filter [2278]: INFO [sshd] Found 192.168.153.1 - 2022-03-04 01:33:03
2022-03-04 01:33:05,608 fail2ban.actions [2278]: NOTICE [sshd] 192.168.153.1 already banned
2022-03-04 01:33:52,240 fail2ban.actions [2278]: NOTICE [sshd] Unban 192.168.153.1
Проверить статус ловушки sshd
fail2ban-client status sshd
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 4
| |- Total failed: 2755
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 5
|- Total banned: 458
`- Banned IP list: 1065.12.148.144 120.4.123.73 102.244.77.182 11ё.85.42.13 111.70.218.202