fail2ban — сервис, который производит анализ log файлов различных программ с целью обнаружить попытки получения несанкционированного доступа и совершающий ряд действий для блокировки злоумышленников. Все действия программа совершает на основании настроек, которые задаются администратором в соответствующем файле.
Установка
1 |
# yum install fail2ban |
Для сохранения исходного файла с настройками копируем его и далее работаем с копией
1 |
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
Общие настройки для всех цепочек находятся в секции [DEFAULT]:
1 2 3 4 5 6 7 8 9 |
[DEFAULT] destemail = admin@example.com #email для уведомлений ignoreip = 127.0.0.0/8 92.29.98.231 #игнорируемые IP–адреса mta = sendmail action = %(action_mwl)s #выполняемое действие: отправить email-уведомление состоящее из "whois" и строки из log-файла banaction = iptables-multiport #IP-адрес злоумышленника блокируется в iptables при помощи модуля multiport findtime = 60 #интервал в секундах, за который событие повторяется в log bantime = 3600 #время бана в секундах maxretry = 60 #количество совпадений определённого действия, после которых применяется указанное правило |
Не стоит злоупотреблять дополнительными опциями вроде запроса whois и отправкой сообщений по email, т.к. это может существенно нагрузить систему. Например, данные whois fail2ban берёт из RIPE Database, где есть лимит на количество запросов с одного ip.
Описание полей в стандартной секции
1 2 3 4 5 6 7 8 |
[apache] # блокировка ошибки basic authentication enabled = true #включение фильтра port = http,https #порт filter = apache-auth #название филтра logpath = /var/log/apache*/*error.log #путь к log-файлу maxretry = 3 #изменяем, если необходимо значение отличное от указанного в [DEFAULT] findtime = 600 #то же |
Все фильтры по-умолчанию лежат в директории /etc/fail2ban/filter.d, доступные действия в /etc/fail2ban/action.d
Применить изменения
1 |
# <strong>systemctl restart fail2ban</strong> |
Какие jail’ы запущены в данный момент:
1 2 3 4 |
[user123@ih758213 ~]# <strong>fail2ban-client status</strong> Status |- Number of jail: 10 `- Jail list: apache-auth, apache-badbots, apache-botsearch, apache-nohome, apache-noscript, apache-overflows, exim, sshd, sshd-ddos, vsftpd |
Узнать состояние определённого jail’a
1 2 3 4 5 6 7 8 9 10 |
[user123@ih772213 ~]# fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 139 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 4 |- Total banned: 37 `- Banned IP list: 77.181.38.87 185.190.58.108 185.103.38.71 103.99.0.202 |
Состояние
1 |
[user123@ih772213 ~]# iptables -S | grep f2b |
Досрочно разблокировать ip адрес злоумышленника
1 |
[user123@ih772213 ~]# fail2ban-client set sshd unbanip 116.31.116.10 |
Заблокировать ip адрес вручную
1 |
# sudo fail2ban-client set [name-of-jail] banip [ip-address] |
Свежие комментарии