Originalmente, eu publiquei isso em webmasters.stackexchange.com , mas me disseram que eu receberia uma recepção melhor aqui.
Nos últimos dias, tenho sofrido com o que parece ser um ataque de DDOS (presumivelmente inadvertido). Eu recebi muitas solicitações de um agente identificando como "Mozilla / 4.0 (compatível; ICS)" que o apache consome toda a memória disponível.
Consequentemente, eu gostaria de bloquear todas as solicitações acompanhadas por este agente de usuário, então tentei fazer isso no httpd.conf:
SetEnvIfNoCase User-Agent "Mozilla/4.0 (compatible; ICS)" bad_user
Deny from env=bad_user
Mas quando eu reinicio o apache, ele reclama sobre o uso deny
aqui. Sem precisar envolvê-lo em um bloco location
ou directory
, o que significaria que eu teria que adicionar um novo bloco para cada site, existe alguma maneira de negar o acesso a todo o servidor?
UPDATE: O erro que recebo
- Reiniciando o servidor da web apache2
Erro de sintaxe na linha 4 de /etc/apache2/httpd.conf: negar não é permitido aqui [falha]
fonte
<Location>
, pois substitui outras restrições de autorização<Directory>
, a menos que você adicioneAuthMerging And
. Consulte o aviso de segurançaRequire
nos documentos do apache: httpd.apache.org/docs/2.4/mod/mod_authz_core.html#requiremod_rewrite pode ser configurado no nível do servidor de acordo com os documentos:
Não se esqueça de escapar da regex no
RewriteCond
fonte
<!-- -->
ao editarDesde que a sintaxe nas linhas SetEnv esteja correta, você poderá lançá-lo no conf da seguinte maneira:
Deve permitir que isso funcione em todos os hosts virtuais - apenas testado no 2.2.24, funcionou como um encanto.
fonte