Инструкция по установке и настройке fail2ban в CentOS для защиты SSH от перебора паролей.
Fail2Ban – программа для защиты серверов от перебора паролей (метод грубой силы).
Принцип работы Fail2Ban
fail2ban перечитывает логи обнаруживая в них подозрительную активность, в данном случае ошибки авторизации. В случае обнаружения действий, соответствующих условию, блокирует IP адрес на определенное время.
Установка fail2ban в CentOS
Устанавливаем репозиторий epel
1 | yum install epel-release |
Устанавливаем fail2ban
1 | yum install fail2ban |
Включаем и запускаем службу
1 2 | systemctl enable fail2ban systemctl start fail2ban |
Настройка fail2ban
Создаем файл
1 | nano /etc/fail2ban/jail.local |
Блокировка IP в iptables
Создаем конфиг, который будет блокировать IP адрес после 3 не успешных попыток авторизации.
1 2 3 4 5 6 7 8 9 | [DEFAULT] banaction = iptables-multiport bantime = 3600 findtime = 180 maxretry = 3 backend = systemd [sshd] enabled = true |
Для применения конфигурации необходимо перезапустить fail2ban
1 | systemctl restart fail2ban |
Блокировка IP в firewallcmd
Если нам нужна блокировка в firewal-cmd, указываем следующий конфиг, отличие только в поле banaction
1 2 3 4 5 6 7 8 9 | [DEFAULT] banaction = firewallcmd-ipset bantime = 3600 findtime = 180 maxretry = 3 backend = systemd [sshd] enabled = true |
Для применения конфигурации необходимо перезапустить fail2ban
1 | systemctl restart fail2ban |
Просмотр логов fail2ban
fail2ban пишет логи в /var/log/fail2ban.log
1 | tail -f /var/log/fail2ban.log |
1 2 3 4 5 6 7 8 9 10 11 12 | 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
1 | fail2ban-client status sshd |
1 2 3 4 5 6 7 8 9 | Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 23 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 1 |- Total banned: 1 `- Banned IP list: 80.94.95.81 |