Назад | Перейти на главную страницу

Разобрать файл журнала Apache и заблокировать IP-адреса

Мой сервер находится под атакой, он залит запросом по следующему шаблону:

Тысячи 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, ваш пробег может отличаться.