Quanto à sua pergunta original. Meu Apache no debian não está configurado com o libwrap, portanto não consultará hosts.deny. [a resposta anterior já menciona - a realidade é que tcpwrappers não é o epítome da segurança como era nos anos 90, especialmente quando se trata de listas negras]. Você teria que executá-lo não como um daemon, mas de (x) inetd, o que diminuiria a velocidade (consideravelmente).
Você pode bloquear / permitir acesso no nível do Apache e não precisa de wrappers tcp para o Apache [nem iptables para esse assunto]. Você não mencionou o ssh, mas nunca deixo servidores ssh abertos diretamente para o exterior. No entanto, continue lendo.
Temos um vhost com mais de 300 domínios e também problemas semelhantes, com taobao, baidu e, muitas vezes, até mesmo com aranhas do google. Notavelmente as aranhas baidu podem ser bastante agressivas e persistentes.
Como você já descobriu, eles têm farms de servidores e, mesmo que você bloqueie um IP, eles aparecerão novamente em breve de alguns outros endereços IP.
Não é prático tentar manter listas de endereços IP / netblocks manualmente.
O que funciona bastante bem para nós é que o modsecurity bloqueia 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 retardar as aranhas dos mecanismos de busca, também tem a vantagem de diminuir os zumbis tentando adivinhar as senhas nos CMSs.
A parte relevante do 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 o 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 lidar com a China ou estiver executando o seu servidor doméstico, apenas bloqueie todo o país. O nível de ataques e malware que vem deles justificou muitos profissionais para fazer isso.
link
Eu também esqueci de acrescentar a esta longa resposta uma nota de rodapé. Muitas vezes, as pessoas me sugerem no trabalho para usar o robots.txt para esse tipo de problema. O ponto é que o robots.txt é apenas uma sugestão para programas remotos. Atores de renome certamente os ignoram, e não é garantido que outros rastreadores da Web os honrem hoje em dia. De nossos testes, por exemplo, o Baidu parece não honrá-los. (robots.txt equivale a perguntar a um gangster, por favor, me agrade em vez de me socar)