Предотвращение пустых запросов 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 запросов в секунду.
Я прочитал из этого ответа /questions/141264/pustyie-pustyie-zapisi-zaprosa-apache-v-zhurnale-dostupa/141273#141273 что
Другими словами, вероятно, кто-то открывал и закрывал соединение с портом 80 без отправки или получения каких-либо данных.
но в отличие от этого вопроса в моем случае код ответа 200,
qsn1: какой номер 25491
значит в этом случае?
qsn2: это может быть атака дос, потому что за это время я увидел в своей статистике VPS, что процессор сильно загружен.
qsn3: могу ли я как-то предотвратить подобные запросы? скажем, заблокировать IP-адрес с помощью fail2ban или каким-либо другим способом?
Спасибо
обновление: я только что посчитал, в течение 20 минут у меня есть ~ 8000 обращений с того же (и только этого) IP-адреса, все строки, как показано выше
1 ответ
1: 25491 - это размер в байтах ответа, возвращаемого вашим сервером.
2: Учитывая описание, это могла быть некоторая форма DoS низкого уровня. Вероятно, бот.
3: fail2ban - хорошая идея. Вы можете установить регулярное выражение фильтра по этим строкам (не проверено!):
\[<HOST>\] - - \[.*\] "GET / HTTP/1.[01]" 200 \d+ "-" "-"
Затем поместите его в тюрьму с максимальным значением 100 и временем поиска, скажем, 60-х годов.