Bloco, negação ou redirecionamento no nível do servidor com base no User-Agent?

1

Recentemente, começamos a ter problemas com o serviço de raspagem de páginas Web / serviço DDoS de 80 pessoas, reduzindo os nossos servidores algumas vezes por semana, devido às práticas de rastreio abusivas. Inicialmente, estávamos simplesmente soltando o seguinte na parte inferior dos arquivos .htaccess dos sites afetados:

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

No entanto, está chegando ao ponto em que precisamos apenas bloqueá-los no nível do servidor em todos os servidores.

De acordo com os documentos do Apache, esta configuração é válida para colocar na seção de configuração do servidor, também conhecida como httpd.conf , mas isso não tem efeito. Existe uma abordagem específica que podemos tomar para bloquear / negar / redirecionar solicitações com base no User-Agent no nível do servidor em um servidor Apache com Hosts Virtuais habilitados?

Nota: não é possível bloquear isso no nível do firewall porque:

  • 80legs usa o que é essencialmente um botnet de permissão para rastrear páginas. Seu último "incidente" envolveu 5250 IPs exclusivos de aproximadamente 900 diferentes redes / blocos de IP de todo o mundo.
  • No momento, não temos a capacidade de realizar inspeção profunda de pacotes.
por Sammitch 07.03.2014 / 22:27

2 respostas

0

De acordo com o link , a string user-agent é 008 , não "80legs" que você usou.

Além disso, eles dizem que o rastreador deles respeita o arquivo robots.txt , então você deve tentar.

Atualize seu robots.txt para conter:

User-agent: 008
Disallow: /
    
por 07.03.2014 / 23:03
0

Desculpe, mas eu não sei o que você quer dizer com we just need to block them at the server level across all servers se não for block this at the firewall .

Na verdade, é exatamente onde eu os bloquearia. Usando o fail2ban.

Their last "incident" involved 5250 unique IPs from approximately 900 different networks/IP blocks from around the world

Não importa - é trivial fazer o script da ação para definir o bloqueio para (digamos) uma rede de 8 bits - ou se você estiver se sentindo aventureiro, mapeie o ASN e bloqueie isso. Usar cadeias de regras muito longas pode afetar o desempenho (mas muito menos do que permitir que o tráfego passe pelo som das coisas), mas você apenas ajusta a duração da proibição para evitar isso.

We do not currently have the ability to do deep-packet inspection

Não é necessário - você usa o Apache para lidar com o tráfego HTTP e redireciona para um script que aciona o fail2ban para implementar sua ação.

    
por 08.03.2014 / 01:54