Мой сервер находится под атакой, он залит запросом по следующему шаблону:
Тысячи IP-адресов. Каждый IP-адрес запрашивает одну и ту же страницу "GET / HTTP / 1.1" с одним и тем же реферером 3-5 раз в секунду (одна и та же временная метка).
Так что мне понадобится небольшой сценарий оболочки, который принимает входные данные из «tail -f /var/www/log/access.log» и анализирует их для повторных запросов с той же меткой времени (скажем, 2 запроса для той же страницы с тот же реферер и то же время) и добавляет правило iptable для отбрасывания всех пакетов с этого IP.
Посмотри на Fail2Ban и при этом Как для примера фильтров для файлов журнала Apache.
Вот пример, который должен выполнить то, о чем вы просите. Пожалуйста, посмотрите руководство и приспособьтесь к вашим потребностям:
/etc/fail2ban/filters.d/apache-attackers.conf
[Definition]
failregex = <HOST> - - [[^]]+] "GET / HTTP/1.1" 200 .* "REFERER"
/etc/fail2ban/local.jail
[DEFAULT]
ignoreip = 127.0.0.1 <an IP you access the system from>
[apache-attackers]
enabled = true
port = http,https
filter = apache-attackers
bantime = 86400
logpath = /var/log/httpd/*access_log
maxretry = 5
включить fail2ban
при запуске (RHEL / CentOS) и запускаем его:
chkconfig fail2ban on
service fail2ban start
Примечание: протестировано на RHEL / CentOS, ваш пробег может отличаться.