В моем файле 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 секунд.