Мой VPS забивается попытками получить случайные файлы / каталоги, которых нет на моем сервере, примерно дважды в секунду. Предположительно, это просто бот, пытающийся выяснить, есть ли дыры в безопасности в сценариях на моем сервере или можно ли использовать мой сервер в качестве прокси. Записи журнала следующие:
Комбинированный (доступный) журнал:
- - - [02/Mar/2011:14:10:18 +0000] "GET http://ad.xtendmedia.com/st?ad_type=iframe&ad_size=728x90§ion=1697270 HTTP/1.0" 403 204 "http://www.findthemovies.net/" "Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
Журнал ошибок:
[Wed Mar 02 14:10:18 2011] [error] [client 61.139.105.162] client denied by server configuration: /var/sites/***/public/st, referer: http://www.findthemovies.net/
Запросы поступают от случайных референтов для случайных IP-адресов, поэтому нет конкретной блокировки IP-адресов, которую я, кажется, могу сделать. Не установлено никаких скриптов, которыми они могли бы злоупотреблять, и на моем сервере не включено проксирование, но основная проблема заключается в том, что эти постоянные запросы используют ресурсы и замедляют подлинные запросы к моим сайтам.
Есть ли способ заблокировать эти запросы, имея возможность идентифицировать их, чтобы остановить их обработку Apache и использование всех назначенных ему ресурсов? (Я использую Prefork, поэтому очевидно, что объем запросов запускает процессы Apache и использует клиентов и ресурсы).
Вы можете установить HAProxy на порт 80 вашего интерфейса DMZ (и иметь бэкэнд-точку для Apache, работающего в вашей локальной сети или интерфейсе localhost), и создать несколько правил ACL, которые задерживают соединения, когда они соответствуют (или не совпадают) с определенным путем. / заголовок / критерии домена.
Преимущество брезента в том, что он замедляет работу ботов и не дает им (большинству) совершать последовательные вызовы.
Или, может быть, вы могли бы использовать RewriteRules на своем виртуальном хосте, который фильтрует соответствующие вещи и возвращает запрещенные, или, что более забавно, последнее перенаправление в Диснейленд, которое может раздражать ботов (если они примут перенаправление, они загрузят Диснейленд, и они быть занятым какое-то время):
RewriteEngine On
RewriteCond [apache constant] [yourrewritecond] [OR]
RewriteCond [apache constant] [yourrewritecond] [OR]
RewriteCond [apache constant] [yourrewritecond] [OR]
RewriteCond [apache constant] [yourrewritecond] [OR]
...
RewriteCond [apache constant] [yourrewritecond]
RewriteRule (.*) http://disneyland.com$1 [QSA,R=301,L]