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

Запретить пустые запросы apache в access.log

В моем файле access.log я нашел сотни строк пустых запросов вроде этого

mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:20 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:24 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:24 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"
mydomain.com:80 [ip-address] - - [02/Jul/2014:09:11:20 -0500] "GET / HTTP/1.0" 200 25491 "-" "-"

Все они приходят с одного и того же IP-адреса, и иногда это около 3-5 запросов в секунду.

Я прочитал из этого ответа https://serverfault.com/a/386136/210624 который

Другими словами, вероятно, кто-то открывал и закрывал соединение с портом 80, не отправляя и не получая никаких данных.

но в отличие от этого вопроса в моем случае код ответа 200,

qsn1: какой номер 25491 значит в этом случае?

qsn2: Может ли это быть DOS-атакой, потому что за это время я увидел в своей статистике VPS, что есть высокая загрузка ЦП.

qsn3: могу я как-то предотвратить подобные запросы? скажем, заблокировать ip-адрес с помощью fail2ban или каким-то другим способом?

Спасибо

Обновить: Я только что подсчитал, за 20 минут у меня ~ 8000 обращений с одного (и только этого) IP-адреса, все строки, как показано выше

1: 25491 - это размер в байтах ответа, возвращаемого вашим сервером.

2: Судя по описанию, это может быть какая-то форма DoS низкого уровня. Наверное, бот.

3: fail2ban - хорошая идея. Вы можете настроить регулярное выражение фильтра по этим строкам (непроверено!):

\[<HOST>\] - - \[.*\] "GET / HTTP/1.[01]" 200 \d+ "-" "-"

Затем поместите его в тюрьму с maxretry 100 и findtime, скажем, 60 секунд.