Estou sendo enganado pela China e não sei por que não consigo bloquear sua solicitação para meu servidor .

//host.deny

ALL: item.taobao.com ALL: 117.25.128.* 

Mas quando vejo o log de erros no meu servidor da web tail -f /var/log/apache2/error.log, as solicitações ainda estão sendo permitidas.

Pergunta: Por que minha configuração /etc/hosts.deny não está funcionando?

Resposta

  1. O arquivo é chamado /etc/hosts.deny, não host.deny

  2. Nem todos os serviços usam tcp-wrappers. sshd, por exemplo, não funciona por padrão. Nem o apache.

  3. Você pode usar iptables para bloquear todos os pacotes de 117.25.128 / 24, por exemplo:

      iptables -I INPUT -s 117.25.128.0/24 -j DROP  
  4. Melhor ainda, você pode usar fail2ban para monitorar um arquivo de log (como access.log do apache e / ou error.log) e bloqueia automaticamente os endereços IP que tentam atacar o seu servidor.

Da descrição do pacote debian fail2ban:

Fail2ban monitora arquivos de log (por exemplo, /var/log/auth.log, /var/log/apache/access.log) e bane de forma temporária ou persistente endereços sujeitos a falhas atualizando as regras de firewall existentes.

O Fail2ban permite a especificação fácil de diferentes ações a serem tomadas, como banir um IP usando regras iptables ou hosts.deny, ou simplesmente enviar um e-mail de notificação.

Por padrão, ele vem com expressões de filtro para vários serviços (sshd, apache, qmail, proftpd, sasl etc.) mas a configuração pode ser facilmente estendida para monitorar qualquer outro arquivo de texto. Todos os filtros e ações são fornecidos nos arquivos de configuração, portanto fail2ban pode ser adotado para ser usado com uma variedade de arquivos e firewalls.

Comentários

  • Ok, sim, ‘ vou editar o bloco. Tudo bem, tentei iptables -A INPUT -s 117.25.128.0/24 -j DROP, mas isso não ‘ bloqueou.
  • -I INPUT insere a nova regra no topo da cadeia INPUT. -A INPUT adiciona ao final da cadeia. se -A INPUT não ‘ funcionar, deve ter havido alguma outra regra anterior na cadeia que permitia esses pacotes.
  • ahhh ok, eu ‘ m assumindo que a precedência é de cima para baixo então?
  • sim. a primeira regra correspondente vence.
  • Perfeito, parece estar funcionando! Obrigada. Uma pergunta rápida, entretanto, muitos dos pedidos estão vindo da mesma referência. (item.taobao.com) com IP de cliente diferente ‘ s, então ‘ estou supondo que ‘ está usando algum tipo de redirecionamento. Existe uma maneira de bloquear por referenciador ou por 117. * usando como um seletor curinga?

Resposta

Quanto à sua pergunta original. Meu Apache no debian não está configurado com libwrap, então não vai consultar hosts.deny. [A resposta anterior já menciona isso – a realidade é que tcpwrappers não é o epítome da segurança como era nos anos 90, especialmente quando se trata à lista negra]. Você teria que executá-lo não como um daemon, mas a partir de (x) inetd, o que o tornaria mais lento (consideravelmente).

Você pode bloquear / permitir o acesso no nível do Apache e fazer não precisa de tcp wrappers para Apache [nem iptables, por falar nisso]. Você não mencionou o ssh, no entanto, nunca deixo os servidores ssh abertos para o exterior diretamente. No entanto, continue lendo.

Temos um vhost com 300 + domínios e também problemas semelhantes, com taobao, baidu e, muitas vezes, até mesmo com spiders do Google. Notavelmente, os spiders do baidu podem ser bastante agressivos e persistentes.

Como você já percebeu, eles têm vários servidores, e mesmo se você bloquear um IP, eles aparecerão novamente em breve de alguns outros endereços IP.

Não é nada prático tentar mantê-los ts de endereços IP / bloqueios de rede manualmente.

O que funciona bem para nós é o modsecurity bloqueando as strings do agente do usuário permanentemente, enquanto o mod_evasive está bloqueando temporariamente os IPs que estão sendo abusivos.

Esta configuração , além de desacelerar os spiders dos mecanismos de pesquisa, também tem a vantagem de reduzir os zumbis que tentam adivinhar senhas em CMSes.

A parte relevante de nosso modsecurity.conf

SecRule REQUEST_HEADERS:User-Agent "Yandex" phase:1,deny,nolog,id:"6972" SecRule REQUEST_HEADERS:User-Agent "ichiro" phase:1,deny,nolog,id:"6973" SecRule REQUEST_HEADERS:User-Agent "Baiduspider" phase:1,deny,nolog,id:"6974" SecRule REQUEST_HEADERS:User-Agent "Baiduspider/.*" phase:1,deny,nolog,id:"6975" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-video" phase:1,deny,nolog,id:"6976" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-image" phase:1,deny,nolog,id:"6977" SecRule REQUEST_HEADERS:User-Agent "sogou spider" phase:1,deny,nolog,id:"6978" SecRule REQUEST_HEADERS:User-Agent "YoudaoBot" phase:1,deny,nolog,id:"6979" SecRule REQUEST_HEADERS:User-Agent "bingbot(at)microsoft.com" phase:1,deny,nolog,id:"6980" SecRule REQUEST_HEADERS:User-Agent "msnbot(at)microsoft.com" phase:1,deny,nolog,id:"6981" SecRule REQUEST_HEADERS:User-Agent "BLEXBot/1.0" phase:1,deny,nolog,id:"6982" SecRule REQUEST_HEADERS:User-Agent "Bot.*" phase:1,deny,nolog,id:"6984" SecRule REQUEST_HEADERS:User-Agent "AhrefsBot.*" phase:1,deny,nolog,id:"6985" 

E nosso mod-evasive.conf

DOSHashTableSize 2048 DOSPageCount 10 DOSSiteCount 300 DOSPageInterval 2.0 DOSSiteInterval 1.0 DOSBlockingPeriod 600.0 DOSLogDir /var/log/apache2/evasive DOSWhitelist 127.0.0.1 DOSWhitelist 1xx.xxx.xxx.xx 

Eu também esqueci uma possibilidade muito real. Se você não negocia com a China ou está executando o seu servidor doméstico, bloqueie o país inteiro. O nível de ataques e malware que vem deles justificou muitos profissionais a fazer isso.

http://www.cyberciti.biz/faq/block-entier-country-using-iptables/

Eu também esqueci de adicionar uma nota de rodapé a esta resposta bastante longa.Freqüentemente, as pessoas me sugerem no trabalho para usar o robots.txt para esse tipo de problema. A questão é que o robots.txt é apenas uma sugestão para programas remotos. Atores desonestos certamente os ignoram, e não é garantido que outros rastreadores da web os honrem atualmente. Em nossos testes, por exemplo, o Baidu parece não honrá-los. (robots.txt é o mesmo que perguntar a um gangster, por favor, faça cócegas em vez de me socar)

Comentários

  • Obrigado cara! sim, eu ‘ vou usar o mod_evasive, essas configurações de arquivo funcionam bem para você?
  • Elas funcionam muito bem, a maioria de nossos vhosts não tem muito visitantes. Caso contrário, você terá que aumentar dospagecount (visitas máximas a uma única página de um IP) e dossitecount (visitas máximas de e IP) de acordo.
  • Olhe para as minhas primeiras linhas novamente. > Entendi que faz sentido, ‘ irei ler as configurações. Obrigado novamente por toda a sua ajuda!
  • (não entenda mal, apenas sugerir bloqueio de endereços no servidor web ou Apache poderia ser um título melhor) … no entanto, não foi por este comentário que vim aqui novamente, leia a resposta novamente, por favor. Além dos comentários no início, você encontrará algo mais interessante no final.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *