Si c'est un bot qui a toujours la même adresse IP, tu peux toujours le ban avec définitivement Iptables, c'est simple et efficace. Par contre si il ne s'agit pas toujours de la même IP, il faut créer une nouvelle règle dans le fichier :
/var/ossec/rules/local_rules.xml.
On va prendre pas exemple cette requête :
10.215.115.5 - hostname [06/Sep/2014:08:45:27 +0200] "GET /manager/ HTTP/1.1" 404 162 "-"
Voila la règle qui permet de bannir une IP qui tente d'accéder à /manager :
<rule id="100070" level="6">
<if_sid>31101</if_sid>
<url>^/manager/</url>
<id>^400|^404</id>
<options>alert_by_email</options>
<description>Attention : bot détecté</description>
<group>web_scan,recon,</group>
</rule>
<if_sid>31101</if_sid> est la règle parente, elle se déclenche lors qu'une erreur ^4* est détectée.
Il faut redémarrer OSSEC pour prendre en compte la nouvelle règle :
service ossec restart
Maintenant il faut la tester pour voir si elle fonctionne correctement, on va utiliser la commande ossec-logtest
# /var/ossec/bin/ossec-logtest -v
ossec-testrule: Type one log per line.
10.215.115.5 - hostname [06/Sep/2014:08:45:27 +0200] "GET /manager/ HTTP/1.1" 404 162 "-"
**Phase 1: Completed pre-decoding.
full event: '10.215.115.5 - hostname [06/Sep/2014:08:45:27 +0200] "GET /manager/ HTTP/1.1" 404 162 "-"'
hostname: 'franklin'
program_name: '(null)'
log: '10.215.115.5 - hostname [06/Sep/2014:08:45:27 +0200] "GET /manager/ HTTP/1.1" 404 162 "-"'
**Phase 2: Completed decoding.
decoder: 'web-accesslog'
srcip: '10.215.115.5'
url: '/manager/'
id: '404'
**Rule debugging:
Trying rule: 4 - Generic template for all web rules.
*Rule 4 matched.
*Trying child rules.
Trying rule: 31100 - Access log messages grouped.
*Rule 31100 matched.
*Trying child rules.
Trying rule: 31101 - Web server 400 error code.
*Rule 31101 matched.
*Trying child rules.
Trying rule: 100070 - Attention : bot détecté
*Rule 100070 matched.
**Phase 3: Completed filtering (rules).
Rule id: '100070'
Level: '6'
Description: 'Attention : bot détecté'
**Un méchant a été détecté, I'M A' FIRIN' MAH LAZER !!
Ok la règle fonctionne comme prévue
Petit bonus pour ban définitivement une IP détectée par la règle ci-dessus avec une réponse active :
# /var/ossec/etc/ossec.conf
<command>
<name>host-deny-for-life</name>
<executable>host-deny.sh</executable>
<expect>srcip</expect>
<timeout_allowed>no</timeout_allowed>
</command>
<active-response>
<command>host-deny-for-life</command>
<location>local</location>
<rules_id>100070</rules_id>
</active-response>