Назад | Перейти на главную страницу

Блокировать, отклонять или перенаправлять на уровне сервера на основе User-Agent?

Недавно у нас начались проблемы с веб-парсером / службой DDoS 80leg, которые пару раз в неделю выключали наши серверы из-за их злонамеренных методов сканирования. Изначально мы просто добавляли следующие в конец списка затронутых сайтов. .htaccess файлы:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^.*80legs
  RewriteRule .* - [F,L]
</IfModule>

Однако дело доходит до того, что нам просто нужно заблокировать их на уровне сервера на всех серверах.

Согласно документации Apache, эту конфигурацию можно разместить в разделе конфигурации сервера, также известном как httpd.conf, но это не имеет никакого эффекта. Есть ли какой-то конкретный подход, который мы можем применить для блокировки / отклонения / перенаправления запросов на основе User-Agent на уровне сервера на сервере Apache с включенными виртуальными хостами?

Примечание: это невозможно заблокировать на уровне брандмауэра, потому что:

Извините, но я не понимаю, что вы имеете в виду под we just need to block them at the server level across all servers если это не block this at the firewall.

Действительно, именно здесь я бы их заблокировал. Использование fail2ban.

Их последний «инцидент» затронул 5250 уникальных IP-адресов из примерно 900 различных сетей / IP-блоков со всего мира.

Не имеет значения - просто написать сценарий действия для установки блока (скажем) на 8-битную сеть - или, если вы чувствуете себя авантюристом, составьте карту ASN и заблокируйте это. Использование очень длинных цепочек правил может повлиять на производительность (но гораздо меньше, чем пропуск трафика по звуку вещей), но вы просто регулируете продолжительность запрета, чтобы предотвратить это.

В настоящее время у нас нет возможности выполнять глубокую проверку пакетов.

Не требуется - вы используете Apache для обработки HTTP-трафика и перенаправления на сценарий, который запускает fail2ban для реализации своего действия.

В соответствии с http://www.80legs.com/spider.html их строка пользовательского агента 008а не "80legs", которые вы использовали.

Кроме того, они говорят, что их сканер уважает robots.txt файл, так что вам стоит попробовать.

Обновите свой robots.txt, чтобы он содержал:

User-agent: 008
Disallow: /