Мои пять копеек1) Проверить выражение fail2ban можно с помощью его же встроенного проверяльщика
fail2ban-regex /путь/до/лог/файла /путь/до/конфига
например, fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/sasl.conf
Вывод будет примерно такой:
--------------------------------------------------------------------
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/sasl.conf
Use log file : /var/log/mail.log
Results
=======
Failregex
|- Regular expressions:
| [1] (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$
| [2] .*\[<HOST>\] *.* checkpass failed$
| [3] .*\[<HOST>\] *.* authentication failure$
|
`- Number of matches:
[1] 0 match(es)
[2] 0 match(es)
[3] 9 match(es)
Summary
=======
Addresses found:
[1]
[2]
[3]
174.122.222.50 (Tue May 29 07:53:15 2012)
174.122.222.50 (Tue May 29 07:53:17 2012)
174.122.222.50 (Tue May 29 07:53:19 2012)
174.122.222.50 (Tue May 29 07:53:20 2012)
174.122.222.50 (Tue May 29 07:53:22 2012)
174.122.222.50 (Tue May 29 07:53:23 2012)
174.122.222.50 (Tue May 29 07:53:25 2012)
174.122.222.50 (Tue May 29 07:53:27 2012)
63.228.150.105 (Wed May 30 02:38:52 2012)
-----------------------------------------------------------------
2. С чем я столкнулся. Проверяйте права на лог файлы! Если fail2ban не сможет их прочитать, то и блокировать он не будет.
3. Чтобы получать уведомление на email о блокированных IP нужно в файле
/etc/fail2ban/jail.conf
Изменить параметр
action = %(action_)s
на
action = %(action_mwl)s или action = %(action_mw)s
Описание параметра есть в конфиг файле.
4. Мои regex
в фильтр postfix.conf добавить правило для 550 ошибки (Пользователь не найден)
failregex = reject: RCPT from (.*)\[<HOST>\]: 550
В фильтр sasl.conf добавить правило
failregex = .*\[<HOST>\] *.* authentication failure$
В фильтр courierlogin.conf
failregex = .*\[<HOST>\] *.* checkpass failed$
В фильтр cyrus-imap.conf
failregex = .*\[<HOST>\] *.* checkpass failed$
Создаём фильтр apache для защиты от перебора страниц. Создаём новый файл с таким содержанием:
--------/etc/fail2ban/filter.d/apache-pma.conf----------------
[Definition]
failregex = [[]client <HOST>[]] File does not exist:
ignoreregex =
--------------------------------------------------------------
В jail.conf прописываем новый фильтр:
--------/etc/fail2ban/jail.conf-------------------------------
[apache-pma]
enabled = true
port = http,https
filter = apache-pma
logpath = /var/log/apache2/error.log
maxretry = 3
--------------------------------------------------------------
5. После всех добавлений нужно перезапуситть fail2ban
/etc/init.d/fail2ban restart