Вы не заявили свою ОС, таким образом, я счастливо скажу Вам версию OpenBSD: в pf.conf
поместите что-то как следующее в Вашем ruleset (для 100 ведет на 10 secs макс.):
table <bad_hosts> persist block quick from <bad_hosts> pass in on $ext_if proto tcp to $webserver port www keep state \ (max-src-conn-rate 100/10, overload <bad_hosts> flush global)
Вы могли добавить белый список, и удар задания крона обращается от bad_hosts после дня или два.
Я думал бы, что fail2ban является ответом.
Можно использовать белые списки для остановки заблокированных поисковых систем.
Взгляните на Простой Коррелятор События. Это может автоматически выполнить команды (т.е. добавить блок к iptables
) после определенного количества строк, соответствующих регулярному выражению, были замечены в окне времени. Это может также определить "контекст", который истекает. Когда контекст истекает, можно разблокировать рассматриваемый IP (т.е. удалить из iptables
).