Быстрый вопрос для всех вас - довольно часто в моих журналах httpd я вижу такие вещи:
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET HTTP/1.1 HTTP/1.1" 400 418 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /roundcube//bin/msgimport HTTP/1.1" 404 417 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /rc//bin/msgimport HTTP/1.1" 404 413 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /mss2//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail2//bin/msgimport HTTP/1.1" 404 416 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /roundcubemail//bin/msgimport HTTP/1.1" 404 420 "-" "Toata dragostea mea pentru diavola"
...
Вы поняли, сценарий сканирования уязвимостей. Поскольку я не устанавливаю свои веб-приложения в стандартные или даже удаленно именованные установки, я почти всегда возвращаю 404, но это все еще раздражает. Итак, мой вопрос: есть ли способ обнаружить / смягчить такие атаки, возможно, используя mod_rewrite и известные списки блокировки и т. Д.? Или с этим просто приходится мириться администраторам веб-серверов?
Спасибо.
Всегда есть Fail2Ban; настроить его на просмотр журнала Apache и бан после десяти 404-х в течение минуты или что-то в этом роде.
ты можешь использовать mod_security или другие брандмауэры веб-приложений (waf). таким образом запрос по-прежнему попадет на ваш веб-сервер, но mod_security отфильтрует запросы, помеченные как подозрительные.
есть разные возможности для настройки waf:
Лучшее решение во многом зависит от вашей настройки, поэтому общего ответа нет. но документы должны помочь вам решить, какое решение принять.
еще один момент, который следует учитывать:
waf усложняет вашу систему, поэтому убедитесь, хотите вы его использовать или нет.
Короткий ответ - нельзя. С точки зрения веб-сервера этот сценарий является просто еще одним браузером, хотя и некорректно работающим. Лучшее, что вы можете сделать, - это заставить брандмауэр обнаруживать и блокировать такие проверки. Детали, конечно, будут зависеть от того, какой брандмауэр вы используете.
Как сказал Джон, вы действительно не можете.
Вы можете попытаться заблокировать некоторые плохие запросы с помощью mod_rewrite, но больше ничего. Например, мы блокируем все запросы, у которых есть [sysobject] в строке запроса (мы не используем MSSQL, но их много, и они могут замедлить работу сайта). И если вы используете mod_rewrite, убедитесь, что не заблокировали законные запросы.