Algumas Dicas para deixar o WordPress mais seguro. Neste artigo você encontrará dicas valiosas para […]
‘client denied by server configuration’
Isso soa sinistro quando seu site está quebrado e você está vendo várias dessas entradas em seu arquivo de log de erros do Apache.
Felizmente, o culpado geralmente é muito fácil de rastrear. Dizemos geralmente, porque há um caso em que pode não ser tão óbvio, especialmente se você estiver procurando desesperadamente no Google pela resposta enquanto seu(s) site(s) está(ão) fora do ar ou quebrado.
Suspeito 1: Controle de acesso
A causa mais comum de entradas de log de erros é quando você está usando os mecanismos de controle de acesso do Apache para controlar quem pode e não pode visualizar seu site ou partes dele. Daremos um exemplo rápido de por que você pode usá-lo e, em seguida, passaremos para o motivo pelo qual você pode obter erros.client denied by server configuration
Imagine que temos um usuário problemático visitando nosso site e sabemos que ele tem um endereço IP que não muda (192.0.2.1), podemos bloqueá-lo em nosso site com uma simples configuração em nosso arquivo de configuração do Apache ou em um (geralmente) na raiz do nosso site:.htaccess
Apache 2.2 (Apache 2.4 com mod_access_compat ou LiteSpeed)
Order Allow,Deny Allow from all Deny from 192.0.2.1
Apache 2.4 (ou LiteSpeed)
<RequireAll> Require all granted Require not ip 192.0.2.1 <RequireAll>
Isso bloqueará qualquer acesso do endereço IP 192.0.2.1, e você também pode bloquear com base em muitos outros critérios, a documentação do Apache Access Control cobre isso muito bem.
Agora imagine que alguns anos se passaram, esse usuário problemático agora não usa mais esse endereço IP, ele é usado por outra pessoa que deseja acessar seu site, mas está recebendo uma mensagem no navegador informando que não pode acessar seu site:403 Forbidden
Isso não é bom para os negócios, então você ou seu host dão uma olhada em seus logs de erros e, em seu log de erros, o erro completo pode ficar assim:
[Tue Jul 25 22:45:41.382781 2021] [:error] [pid 13345:tid 17933105366672] [client 192.0.2.1:42086] client denied by server configuration: https://dominio.com.br, referer: https://dominio.com.br
Para descobrir o porquê, procuraríamos em nosso arquivo e em nossa configuração do Apache para ver se podemos ver o endereço IP 192.0.2.1 em relação aos exemplos de controle de acesso mostrados acima e identificamos a entrada negando o acesso, excluí-la, salvar o arquivo e o usuário pode acessar seu site novamente..htaccess
Se você não conseguir ver uma entrada em relação ao controle de acesso, continue lendo.
Suspeito 2: mod_evasive
Agora, este pode ser um pequeno caractere complicado, porque a mensagem de erro é exatamente a mesma do controle de acesso, portanto, se você não sabe que está executando mod_evasive pode não pensar em verificar se é o problema – isso se você puder verificar ou ter algum controle sobre as configurações para ele.
mod_evasive foi projetado para proteger seu site contra ataques de negação de serviço (DoS) de baixo nível, em que um invasor fará muitas solicitações ao seu site, na esperança de usar todos os seus recursos de CPU e/ou memória e interromper o funcionamento do site e negar serviço a usuários legítimos. Ele faz isso estabelecendo uma série de limites, como:
- O número de solicitações para a mesma página que um usuário tem permissão no ‘intervalo de página’ (
DOSPageCount & DOSPageInterval
) - O número de solicitações para todo o site que um usuário tem permissão no ‘intervalo do site’ (
DOSSiteCount & DOSSiteInterval
)
Em seguida, ele bloqueará os usuários por um número definido de segundos () e também poderá enviar um e-mail para você () ou executar outro comando no servidor () para passar as informações para outras ferramentas, por exemplo, seu firewall.DOSBlockingPeriod
DOSEmailNotify
DOSSystemCommand
O que ele não faz é dar qualquer indicação em seu log de erros normal, em vez disso, ele registra ataques DoS em um diretório (), então se você acha que mod_evasive pode estar bloqueando seus usuários, você precisa encontrar esse local e procurar lá, se for, você verá arquivos como etc.DOSLogDir
dos-192.0.2.1
Se estiver mod_evasive bloqueando, você tem algumas opções:
- Permita o endereço IP na configuração usando:
DOSWhitelist 192.0.2.1
- Altere as contagens e intervalos de páginas/sites para que eles não acionem bloqueios tão cedo
Você pode querer fazer # 1 se for raro que esteja causando um problema e # 2 se estiver capturando muitos usuários.
Suspeito 2.5: mod_evasive & cPanel
Recentemente, encontramos um problema com um servidor cPanel externo, onde, de repente, eles estavam recebendo 1000 mensagens de erro para seus usuários. No que dizia respeito a eles, nada havia mudado no servidor, não havia ninguém logado fazendo alterações de configuração.403 Forbidden
Começamos a investigar para eles e começamos a procurar problemas com o controle de acesso, pois é o culpado mais provável, mas neste caso não foi. Nós rastreamos isso até uma atualização do cPanel substituindo um arquivo de configuração quando uma atualização foi aplicada alguns dias antes.
Quando o servidor foi inicialmente configurado por um terceiro, eles habilitaram mod_evasive usando o EasyApache e, em seguida, editaram o arquivo de configuração do módulo:
/etc/apache2/conf.modules.d/300-mod_evasive.conf
e alterou os padrões do cPanel de:
DOSHashTableSize 3097 DOSPageCount 4 DOSSiteCount 100
Para:
DOSHashTableSize 12289 DOSPageCount 128 DOSSiteCount 512
A razão para as mudanças é porque o site faz uso extensivo do AJAX para carregar dados em segundo plano, portanto, 100 solicitações em um período de 2 segundos (o padrão do cPanel) ou 4 solicitações para o mesmo endpoint AJAX em 2s não estavam nem perto do suficiente e os usuários estavam sendo bloqueados por 10s de cada vez.
Em algum momento, o cPanel sempre substituirá os arquivos de configuração se você editá-los, embora, neste caso, tenha permanecido inalterado desde que o servidor foi configurado 20 meses antes, então eles tiveram uma boa execução.
Corrigimos o problema colocando as configurações no arquivo fornecido pelo cPanel (também editável do WHM), o que significa que, exceto se algo der errado com o cPanel, as alterações persistirão por meio de atualizações:/etc/apache2/conf.d/includes/pre_virtualhost_global.conf
<IfModule mod_evasive24.c> DOSHashTableSize 12289 DOSPageCount 128 DOSSiteCount 512 </IfModule>
Isso deve resolver o erro, se você precisar de suporte, a equipe WeCoded está sempre à disposição.
ARTIGOS RELACIONADOS
Continue navegando em nosso blog.
ASSINE NOSSO NEWSLETTER
Enviamos notícias, dicas e ofertas.
DEIXE UM COMENTÁRIO