Установка fail2ban на CentOS 7:
Соединитесь с сервером, используя ssh от имени пользователя root.
Fail2ban доступен через репозиторий EPEL (Extra Packages for Enterprise Linux) . Поэтому мы должны установить epel-release, чтобы разрешить доступ к репозиторию EPEL yum.
# yum install -y epel-release
# yum makecache fast
Поскольку мы устанавливаем fail2ban в системе CentOS 7, следовательно, пакеты fail2ban-firewalld и fail2ban-systemd также необходимы для интеграции с Firewalld и Systemd соответственно:
# yum install -y fail2ban fail2ban-firewalld fail2ban-systemd
Если у вас не отключен SELinux, то обновляем политики:
# yum update -y selinux-policy*
Включите и запустите fail2ban.service:
# systemctl enable fail2ban.service
# systemctl start fail2ban.service
Файлы конфигурации fail2ban:
Конфигурации fail2ban находятся в /etc/fail2ban/ и /etc/fail2ban/jail.d/
fail2ban сначала читает файлы * .conf, а затем читает файлы * .local . Поэтому все настройки в файлах * .conf переопределяются настройками в файлах * .local .
Таким образом, рекомендуется создать пользовательский файл jail.local вместо редактирования файла jail.conf по умолчанию. Скопируем файл по умолчанию jail.conf в файл jail.local.
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Сконфигурируйте fail2ban для службы Secure SSH:
Есть много предопределенных настроек в Fail2ban для Sshd службы в jail.local. Поэтому мы разрешим только один из них следующим образом:
# sed -i "/^\[sshd\]/a\\enabled=true" /etc/fail2ban/jail.local
После чего перезапустим службу:
# systemctl restart fail2ban.service
Наглядный пример:
Способ №2
Настройки fail2ban
Создадим новый файл sshd.local,
# nano /etc/fail2ban/jail.d/sshd.local
И добавим в него следующие строки
[sshd]
enabled = true
port = ssh
action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 3
bantime = 86400
- enable = true — проверка ssh активна.
- action — используется для получения IP-адреса, который необходимо заблокировать, используя фильтр, доступный в /etc/fail2ban/action.d/firewallcmd-ipset.conf.
- logpath — путь, где хранится файл журнала. Этот файл журнала сканируется Fail2Ban.
- maxretry — лимита для неудачных входов в систему.
- bantime — время блокировки (24 часа).
После перезапустим сервис:
# systemctl restart fail2ban.service
Проверяем статус fail2ban выполнив команду:
# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
Для разблокирования IP-адреса надо выполнить команду
# fail2ban-client set sshd unbanip IPADDRESS
