Не знаю пригодится ли вам, но я написал в свое время простенький скрипт на баш, который банит назойливые адреса на один час через iptables.
Скрипт запускать от рута.
#!/bin/bash
while true
do grep "$(date +%d/%b/%Y:%H:%M)" /etc/httpd/logs/*access.log |\
awk -F ":" '$0 ~/xmlrpc/ {print $2}'| cut -d ' ' -f 1 | sort |\
uniq -c | sort -rnk1 |\
while read count ip
do [ $count -gt 15 ] && echo $count $ip || exit 0
done |\
while read count ip
do
[ $(/sbin/iptables -L -v -n | grep "$ip" | wc -l) -eq 0 ] &&\
iptables -A INPUT -s $ip -j DROP && { echo "iptables -D INPUT -s $ip -j DROP" | at now +1 hour; } &&\
echo "Blocking this dude for 1 hour since it attempted to access xmlrpc.php $count times per minute: $ip"
done
sleep 2
done
Пара пояснений к скрипту. Строка:
[ $count -gt 15 ]
говорит что мы смотрим на те адреса, которые более 15 раз в минуту пытались брутфорсить xmlrpc. Если этот параметр надо поменять, то соответственно нужно изменить эту циферку в скрипте.