Chinês bot visitando página inexistente a cada 5 minutos

2

Desde 02.05.2013 , algum tipo de bot está visitando meu site, a cada 5 minutos.

Na maioria das vezes, ele chama esse URL, que não existe:

/viewtopic.php?f=3&t=849

Sempre com este agente de usuário

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

(= IE 6, Windows XP)

Além de distorcer significativamente a estatística de visitantes, ela nem sequer se identifica como um bot, então acho que é um spammer de algum tipo.

Minha pergunta aqui é: o que esse cliente faz e por que ele está chamando essa página continuamente? - E como posso evitar isso?

Estou usando um vServer com Linux Debian.

    
por bytecode77 28.08.2013 / 14:23

3 respostas

8

O que esse cliente faz?

Difícil de saber, mas apenas por curiosidade eu configurei um script PHP nesse URL para jogar com seu amigo:

  • obtenha o endereço IP do cliente e faça a varredura imediatamente (portas abertas, endereço reverso, informações whois no netblock)
  • copia os cabeçalhos HTTP para examiná-los. Se ele enviar um referenciador, talvez esteja vindo de algum outro lugar. Procure outras coisas interessantes.
  • responda com um redirecionamento HTTP para algum URL que você gerencia e veja se ele segue isso. Apenas para saber ...
  • responda com algum Javascript e veja se ele é executado
  • se você tiver muita largura de banda, tente responder com alguns gigabytes de lixo :)
    • (e enquanto você está nisso, meça o quão rápido ele consegue digerir os dados)
  • quando você está entediado de brincar com ele, então vá tarpitting dele (se você tiver recursos suficientes): toda vez que ele se conecta, digite um longo sleep () antes de completar a resposta HTTP. Faça com que ele consuma mais recursos.

por que está chamando esta página continuamente?

Você tentou perguntar ao Google? Parece que o Tencent Traveler é um dos navegadores mais populares na China. Talvez alguém com ele tenha visitado seu site ou tenha tentado visitar URLs inválidos em seu site, talvez haja um spider executado pela empresa tentando indexar / varrer / armazenar em cache os sites visitados por seus usuários do navegador. Ou talvez seja apenas um garoto chinês entediado, ou talvez um PC infectado, ou ... quem sabe, você também deve perguntar diretamente a ele, mas precisa saber quem ele é.

E como posso evitar isso?

Para realmente impedir ele de tentar, você deve denunciá-lo como um spammer para alguém / alguma coisa que tenha autoridade sobre ele. Normalmente, este é o contato técnico (ou tecnologia-c, ou abuso, ou o que eles chamam) do AS responsável pela sua faixa de IP. Você pode encontrar essa informação de whois.

Se a prevenção não for bem-sucedida e continuar fazendo essas solicitações, você poderá bloqueá-las de várias maneiras:

  • se eles vierem de uma única sub-rede e você não estiver interessado nesse público, bloqueie toda a sub-rede no nível de IP (por exemplo, se vier de uma sub-rede chinesa / 8 e não se importar em bloquear clientes chineses, basta eliminar o tráfego de toda a sub-rede)

  • bloqueie todas as solicitações correspondentes ao User-Agent no nível HTTP, se você não tiver usuários legítimos conhecidos com o mesmo User-Agent.

Por que esses bots agressivos sempre vêm da China ou da Rússia?

Ahhh, a vida seria mais fácil se isso fosse verdade;)

distorce significativamente a estatística dos visitantes

Você está falando de um hit por 5 minutos, ou aproximadamente 0.003h / segundo - deve estar bem abaixo do nível de ruído. Reescreva sua pergunta e explique o que você quer dizer com "distorce".

    
por 28.08.2013 / 15:04
6

Você pode usar mod_setenvif para corresponder a uma parte conhecida do UserAgent (TencentTraveler por exemplo) e depois bloqueá-lo

BrowserMatchNoCase TencentTraveler bad_bot
Order Deny,Allow
Deny from env=bad_bot
    
por 28.08.2013 / 14:41
3

Instale o fail2ban e configure o jail.conf para permitir o jailing do apache. Em seguida, adicione uma correspondência failregex na seção do apache assim:

failregex = [[]client (?P<host>\S*)[]] File does not exist: .*\.phpf=3&t=849
    
por 28.08.2013 / 17:48