Настройка fail2ban и Vesta CP для анализа apache

Объявился тут дудосер, который усердно прощупывал сайты на предмет ошибок, и в логах были замечены портянки подобного:

</p>
<p>[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1 or 1*57=57<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1 or 57=0<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1' or 5=5 or '32'='32<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1' or '32'='0<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1&quot; or 5=5 or &quot;80&quot;=&quot;80<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: -1&quot; or &quot;80&quot;=&quot;0<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: IF(SUBSTR(@@version,1,1)&amp;amp;amp;lt;5,BENCHMARK(2600000<br />
,SHA1(0xDEADBEEF)),SLEEP(5))/*'XOR(IF(SUBSTR(@@version,1,1)&amp;amp;amp;lt;5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR'|&quot;XOR(IF(SUBSTR(@@version,1,1)&amp;amp;amp;lt;5,BENCHMARK(2600000,SHA1(0xDEADBEEF)),SLEEP(5)))OR&quot;*/<br />
[Tue Apr 26 22:40:57 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: 1 and sleep(4)<br />
[Tue Apr 26 22:40:58 2016] [error] [client x.x.x.x] Directory index forbidden by Options directive: /home/test/example/public_html/system/, referer: 1 or (sleep(4)+1) limit 1 --</p>
<p>

 

Очевидно, что прощупывают на предмет sql-инъекций.

Поскольку из коробки fail2ban в панели vesta cp не имеет включенных правил для блокировки подобных запросов, и погуглив рунет на предмет готовых велосипедов (и не найдя подобного), было решено написать следующие правила:

в файл /etc/fail2ban/jail.local дописываем следующий джейл:

<br />
[apache-iptables]<br />
enabled = true<br />
filter = apache-forbidden<br />
action = vesta[name=WEB]<br />
port = http,https<br />
logpath = /var/log/httpd/domains/*error.log<br />
maxretry = 10<br />

а в папке /etc/fail2ban/filter.d создаем файл apache-forbidden.conf со следующим содержимым:

<br />
# Fail2Ban apache-forbidden filter</p>
<p>[INCLUDES]<br />
before = apache-common.conf</p>
<p>[Definition]<br />
failregex = [[]client &amp;lt;HOST&amp;gt;[]] Directory index forbidden by Options directive: /\S*$</p>
<p>ignoreregex =.<br />

После этого рестартим фейл2бан:
service fail2ban restart

и смотрим статус командой fail2ban-client status :

<br />
Status<br />
|- Number of jail: 6<br />
`- Jail list: apache-iptables, dovecot-iptables, exim-iptables, ssh-iptables, vesta-iptables, vsftpd-iptables<br />

Подробный статус по каждому джейлу:
fail2ban-client status apache-iptables