Блокирование определенных пользовательских агентов по всему миру

Раньше я управлял всеми своими веб-серверами вручную через nginx.

Сейчас я использую cPanel и хотел бы заблокировать доступ определенных веб-агентов к любому веб-сайту на моем сервере.

Вот как это было легко в nginx.

 if ($http_user_agent ~* "PHP|curl|Wget|HTTrack|Nmap|Verifying|PingBack|Pingdom|Joomla|Wordpress") { return 444; }
 if ($http_user_agent = "") { return 444; }
 if ($http_user_agent = " ") { return 444; }
 if ($http_user_agent = "-") { return 444; }

Как мне повторить тот же эффект для всех моих сайтов, включая основной веб-сервер для WHM (apache).

Похоже на простой запрос, но документации по этому вопросу почти нет.

1 ответ

Если вы используете map для установки переменной $drop_agent на уровне http, она будет доступна для всех ваших серверов. Пользовательский агент совпадений также может быть помещен во включенный файл.

map $http_user_agent $drop_agent {
    default 0;
    ~^libwww-perl$  1;
}

Затем в каждом разделе сервера:

if ($drop_agent) {
#   return 403; # for testing 
    return 444;
}
Другие вопросы по тегам