Bloqueio yandex.ru bot

5

Eu quero bloquear todos os pedidos do bot de pesquisa yandex.ru. É muito intenso tráfego (2GB / dia). Primeiro bloqueei um intervalo de IP de classe C, mas parece que esse bot aparece de diferentes faixas de IP.

Por exemplo:

spider31.yandex.ru - > 77.88.26.27 spider79.yandex.ru - > 95.108.155.251 etc ..

Eu posso colocar um pouco de negação no robots.txt, mas não tenho certeza se ele respeita isso. Estou pensando em bloquear uma lista de intervalos de IPs.

Alguém pode sugerir alguma solução geral.

    
por Ross 29.04.2010 / 09:49

6 respostas

1

Minha solução atual é essa (para o servidor da web NGINX):

if ($http_user_agent ~* (Yandex) ) {
        return 444;
}

Isso é insensível a maiúsculas e minúsculas. Ele retorna a resposta 444.

Esta diretiva examina a seqüência do Agente do usuário e, se "Yandex" for detectada, a conexão será fechada sem enviar nenhum cabeçalho. 444 é um código de erro personalizado entendido pelo daemon Nginx

    
por 10.08.2010 / 00:11
6

Não acredite no que você leu em fóruns sobre isso! Confie no que seus logs do servidor informam. Se o Yandex obedeça o robots.txt, você verá as evidências em seus registros. Eu vi por mim mesmo que os robôs Yandex nem LERam o arquivo robots.txt!

Saia de perder tempo com longas listas de IPs que só servem para diminuir drasticamente o seu site.

Digite as seguintes linhas em .htaccess (na pasta raiz de cada um dos seus sites):

SetEnvIfNoCase User-Agent "^Yandex*" bad_bot
Order Deny,Allow
Deny from env=bad_bot

Eu fiz, e tudo o que o Yandex recebe agora são 403 Erros de acesso negado.

Adeus Yandex!

    
por 25.05.2010 / 08:37
3

Eu sou muito jovem aqui (reputação) para postar todos os URLs que eu preciso como hiperlinks, então perdoe meus URLs entre parênteses, por favor.

O link do fórum de Dan Andreatta e este outro , tem alguns, mas não todos do que você precisa. Você vai querer usar seu método de encontrar os números IP, e script algo para manter suas listas frescas. Então você quer algo assim, para mostrar-lhe alguns valores conhecidos, incluindo os esquemas de nomenclatura de sub-domínio que eles estão usando. Mantenha um olho crontabbed em seus intervalos de IP, talvez automatizar algo para estimar um CIDR razoável (eu não encontrei nenhum menção de sua alocação real; poderia ser apenas google fail @ me).

Encontre o (s) intervalo (s) de IPs com a maior precisão possível, para que você não perca tempo fazendo uma pesquisa reversa de DNS enquanto os usuários estão aguardando ( link ) e, em vez disso, você está apenas fazendo uma correspondência de comparação ou algo assim. O Google acabou de me mostrar grepcidr , que parece altamente relevante. A partir da página vinculada: "grepcidr pode ser usado para filtrar uma lista de endereços IP contra uma ou mais especificações de Roteamento entre Domínios sem Classificação (CIDR), ou redes arbitrárias especificadas por um intervalo de endereços." Eu acho que é bom que seja um código construído com E / S conhecidas, mas você sabe que pode reproduzir a função de um bilhão de maneiras diferentes.

A maioria, "solução geral", posso pensar nisso e realmente desejar compartilhar (falar as coisas e tudo isso) é para você começar a escrever um banco de dados desses infratores em seus locais e Passe algumas horas pensando e pesquisando maneiras de defender e combater o comportamento. Isso leva você mais fundo na detecção de intrusão, na análise de padrões e nas redes de mel, do que o escopo dessa questão específica realmente garante. No entanto, no âmbito dessa pesquisa, há inúmeras respostas a esta pergunta que você fez.

Eu achei isso devido ao comportamento interessante do Yandex em um dos meus sites. Eu não chamaria o que eu vi no meu próprio log abusivo, mas spider50.yandex.ru consumiu 2% da minha contagem de visitas, e 1% da minha largura de banda ... Eu posso ver onde o bot seria realmente abusivo para arquivos grandes e fóruns e tal, nenhum dos quais estão disponíveis para abuso no servidor que estou vendo hoje. O que foi interessante o suficiente para justificar a investigação foi o bot olhando para o /robots.txt, então esperando de 4 a 9 horas e pedindo por um diretório / não nele, então esperando de 4 a 9 horas, pedindo / another_directory /, então talvez um mais alguns, e /robots.txt novamente, repita ad finitum. Até onde vai a frequência, suponho que sejam bem comportados, e a máquina spider50.yandex.ru pareceu respeitar o /robots.txt.

Eu não estou planejando bloqueá-los neste servidor hoje, mas gostaria de compartilhar a experiência de Ross.

Para referência sobre os números minúsculos com os quais estamos lidando no caso do meu servidor, hoje:

Top 10 of 1315 Total Sites By KBytes
 # Hits  Files  KBytes   Visits  Hostname
 1 247 1.20% 247 1.26% 1990 1.64% 4 0.19% ip98-169-142-12.dc.dc.cox.net
 2 141 0.69% 140 0.72% 1873 1.54% 1 0.05% 178.160.129.173
 3 142 0.69% 140 0.72% 1352 1.11% 1 0.05% 162.136.192.1
 4 85 0.41% 59 0.30% 1145 0.94% 46 2.19% spider50.yandex.ru
 5 231 1.12% 192 0.98% 1105 0.91% 4 0.19% cpe-69-135-214-191.woh.res.rr.com
 6 16 0.08% 16 0.08% 1066 0.88% 11 0.52% rate-limited-proxy-72-14-199-198.google.com
 7 63 0.31% 50 0.26% 1017 0.84% 25 1.19% b3090791.crawl.yahoo.net
 8 144 0.70% 143 0.73% 941  0.77% 1 0.05% user10.hcc-care.com
 9 70 0.34% 70 0.36% 938  0.77% 1 0.05% cpe-075-177-135-148.nc.res.rr.com
10 205 1.00% 203 1.04% 920  0.76% 3 0.14% 92.red-83-54-7.dynamicip.rima-tde.net

Isso está em um host compartilhado que nem sequer se preocupa em limitar a largura de banda, e se o rastreamento pegasse algum formulário tipo DDoS, eles provavelmente o notariam e bloqueariam antes. Então, não estou com raiva disso. Na verdade, eu prefiro muito mais ter os dados que eles escrevem nos meus logs para jogar.

Ross, se você está realmente irritado com os 2 GB / dia que está perdendo para a Yandex, você pode spampo . Isso é o que está lá! Redirecione-os do que você não quer que eles baixem, seja pelo HTTP 301 diretamente para um subdomínio spampoison, ou gere o seu próprio para que você possa controlar a lógica e se divertir mais com ela. Esse tipo de solução dá a você a ferramenta para reutilizar mais tarde, quando é ainda mais necessário.

Em seguida, comece a pesquisar mais profundamente em seus registros para os mais engraçados, como este:

217.41.13.233 - - [31/Mar/2010:23:33:52 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:33:54 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:33:58 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:00 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:01 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:03 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:04 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:05 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:06 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:09 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:14 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:16 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:17 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:18 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:21 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:23 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:24 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:26 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:27 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"
217.41.13.233 - - [31/Mar/2010:23:34:28 -0500] "GET /user/ HTTP/1.1" 404 15088 "http://www.google.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.1 (build 02228); .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)"

Dica: Nenhum diretório / user /, nem um hyperlink para tal, existe no servidor.

    
por 30.04.2010 / 16:12
1

De acordo com este fórum , o bot yandex é bem comportado e respeita robots.txt .

Em particular, eles dizem

The behaviour of Yandex is quite a lot like that of Google with regard to robots.txt .. The bot doesn't look at the robots.txt every single time it enters the domain.

Bots like Yandex, Baudi, and Sohu have all been fairly well behaved and as a result, are allowed. None of them have ever gone places I didn't want them to go, and parse rates don't break the bank with regard to bandwidth.

Pessoalmente, não tenho problemas com isso, e o googlebot é de longe o rastreador mais agressivo para os sites que tenho.

    
por 29.04.2010 / 10:49
1

Seja desagradável adicionando estas linhas ao seu arquivo .htaccess para direcionar todos os visitantes de 77.88.26.27 (ou qualquer que seja o IP) que tentar acessar uma página terminada em .shtml:

# permanently redirect specific IP request for entire site
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_HOST} 77\.88\.26\.27
RewriteRule \.shtml$ http://www.youtube.com/watch?v=oHg5SJYRHA0 [R=301,L]

Esse bot do Yandex agora é rickrolled toda vez que ele tenta indexar seu site. Problema resolvido.

    
por 23.08.2010 / 13:30
0

Por favor, as pessoas procuram o modelo OSI. Eu recomendo que você bloqueie essas redes no nível de roteamento. Esta é a terceira camada (4º transporte) do modelo OSI da rede. Se você bloqueá-los no nível do servidor, ele está na quarta camada (5,6,7) e já passou. Além disso, um Kernel é capaz de lidar com essa solicitação 100 vezes melhor como um Apache Server. RewriteRule sobre RewriteRule, SetEnv diretivas e assim por diante são apenas bugging seu servidor, independentemente se você apresentar o cool 403. A solicitação é um pedido e Yandex também Baidu fazendo um monte deles, enquanto o Google também está digitalizando em segundo plano! Você realmente gosta de ser inundado por solicitações, isso custa a você os slots do servidor da Web e o Baidu é conhecido por fazer isso por intenção.

61.51.16.0 - 61.51.31.255         61.51.16.0/20     # (Baidu China - Beijing)
14.136.0.0 - 14.136.255.255       14.136.0.0/16     # (Baidu China - H.K.)
123.125.71.0 - 123.125.71.255     123.125.71.0      # (Baidu China)
14.208.0.0 - 14.223.255.255       14.208.0.0/12     # (Baidu China)
95.108.241.0 - 95.108.241.255     95.108.241.0      # (YandexBot Russian Federation)
95.108.151.0 - 95.108.151.255     95.108.151.0      # (YandexBot Russian Federation)
119.63.192.0 - 119.63.199.255     119.63.192.0/21   # (Baidu Japan Inc.)
119.63.192.0 - 119.63.199.255     119.63.196.0/24   # (Baidu Japan Inc.)        
180.76.0.0 - 180.76.255.255       180.76.0.0/16     # (Baidu China, Baidu Plaza, Beijing)
220.181.0.0 - 220.181.255.255     220.181.108.0/24  # (CHINANET Beijing Province Network)

Novos intervalos: (Atualizado em Tue, 8 de maio de 2012)

123.125.71.0 - 123.125.71.255     123.125.71.0/24   # (Baidu China)
202.46.32.0 - 202.46.63.255       202.46.32.0/19    # (Baidu China)

Novos intervalos: (atualizado domingo, 13 de maio de 2012)

39.112.0.0 - 39.127.255.255       39.112.0.0/12     # KOREAN
211.148.192.0 - 211.148.223.255   211.148.192.0/19  # China (ShenZhen)
    
por 05.05.2012 / 02:08