Мне приходит на ум пара вещей:
- Вы можете использовать сопоставление строк с iptables:
iptables -A INPUT -m строка --algo bm --string "GET/foro" -j DROP
или, если возможно, в вашей системе, с помощью TARPIT
iptables -A INPUT -m string --algo bm --string "GET /foro" -j TARPIT
- Вместо использования fail2ban создайте свой собственный скрипт, который сканирует журналы, например, последние 1000 строк, и блокирует совпадения с ipsets.
Добавьте это в свой скрипт iptables:
- ipset уничтожить туалет
- ipset -N туалет айфаш
- ipset сливной унитаз
Затем используйте свой скрипт, чтобы добавить IP-адреса, которые вы хотите заблокировать, в текстовый файл.В конце концов вам просто нужно зациклить все IP-адреса в этом списке туалетов.
- ipset - Туалет "$ipaddress"
Использование ipset и особенно масок гораздо эффективнее, чем блокировка IP-адресов. У меня заблокировано около 20 000 адресов и около 200 сетей.
Вы могли бы получить некоторые идеи о моем очень, очень грязном сценарии.
https://pastebin.com/4v5se0kh
Я знаю, что это грязно, но у меня это работает намного быстрее и намного проще, чем fail2ban. Я назвал этот скрипт suc2ban. Вам просто нужно найти свои собственные совпадения для вашего файла журнала (у вас, вероятно, есть apache access.log, а не мой пример, который использует auth.log).