Este tópico descreve como diagnosticar e resolver problemas de acesso em um site protegido pelo Web Application Firewall (WAF).
Procedimento
Para solucionar problemas de acesso após adicionar seu site ao Web Application Firewall, siga estas etapas:
Verificar problemas no servidor de origem: Ignore o WAF para determinar se o servidor de origem causa o problema.
Verificar falsos positivos do WAF: Desative temporariamente os módulos de proteção para determinar se o WAF bloqueia solicitações legítimas.
Solucionar erros comuns de acesso: Consulte a lista de erros comuns para analisar e resolver o problema.
Para obter informações sobre as ferramentas utilizadas neste procedimento, consulte Apêndice: Ferramentas comuns.
Verificar problemas no servidor de origem
Siga estas etapas para ignorar o WAF e determinar se o servidor de origem causa o problema:
Desative as medidas de segurança no servidor de origem, como grupos de segurança, listas de bloqueios, listas de permissões, firewalls ou outros produtos de segurança. Essa ação evita que o servidor bloqueie os endereços IP de back-to-origin do WAF.
Modifique o arquivo hosts no computador local para mapear o nome de domínio ao endereço IP público da instância ECS, instância SLB ou servidor correspondente. Esse é o endereço IP do servidor de origem configurado no WAF.
-
Acesse o nome de domínio por um navegador no computador local para verificar se o problema persiste sem o WAF.
Se o problema persistir, a causa provavelmente reside no servidor de origem. Verifique o status do servidor, incluindo processos, CPU, uso de memória e logs da web, para identificar e corrigir anomalias.
Caso o problema não ocorra, o servidor de origem não é a causa. Para continuar a solução de problemas, consulte Verificar falsos positivos do WAF.
Verificar falsos positivos do WAF
Execute as etapas abaixo para desativar recursos de proteção do WAF e determinar se ele bloqueia incorretamente solicitações legítimas:
-
Desative o mecanismo de regras de proteção para o nome de domínio e verifique se o problema foi resolvido. Para mais informações, consulte Configure o mecanismo de regras de proteção.
Se o problema for resolvido, altere o Protection Rule Group do mecanismo de regras de proteção para Loose Rule Group. A configuração padrão é Medium Rule Group. Como alternativa, utilize o Log Service para analisar a URL problemática e crie uma política de proteção personalizada que permita solicitações para essa URL. Para mais informações, consulte Configure uma política de proteção personalizada.
-
Caso o problema persista após desativar o mecanismo de regras de proteção, desative a HTTP Flood Protection para o nome de domínio e verifique se o problema foi resolvido. Para mais informações, consulte Configure proteção contra flood HTTP.
Se o problema for resolvido, defina o modo da HTTP Flood Protection como Protection. Se o modo já estiver definido como Protection, pule esta etapa. Alternativamente, use o Log Service para analisar a URL problemática e criar uma política de proteção personalizada para permitir solicitações para essa URL. Para mais informações, consulte Configure uma política de proteção personalizada.
Se o problema persistir mesmo após desativar a HTTP Flood Protection, a causa não é um falso positivo do WAF. Prossiga para Solucionar erros comuns de acesso.
Solucionar erros comuns de acesso
Quando o problema desaparece ao ignorar o WAF, mas reaparece consistentemente com o WAF ativado, utilize a tabela a seguir para identificar e resolver a questão.
Problema | Sintoma | Causa | Resolução |
410 Gone | Uma página "410 Website temporarily unavailable" é exibida ou um código de status HTTP 410 é retornado. A página indica que o protocolo e a porta do nome de domínio não foram adicionados ao WAF. | O nome de domínio ou a porta não está configurado no WAF. Por exemplo, se você configurar apenas a porta 80 no WAF, mas um usuário tentar acessar o site na porta 443, o WAF retornará um erro 410. | Adicione o nome de domínio ou a porta necessários no console do WAF. Para mais informações, consulte Adicionar um nome de domínio. |
405 Method Not Allowed | Uma página de bloqueio 405 é exibida ou um código de status HTTP 405 é retornado. | Uma política de proteção personalizada ou o mecanismo de regras de proteção bloqueou a solicitação. |
|
302 Found (Connection Reset) | Ao acessar o site a partir de determinados endereços IP, a conexão é redefinida, um código de status HTTP 302 é retornado e a resposta inclui um cabeçalho Set-Cookie. | A solicitação proveniente do endereço IP acionou uma regra de proteção contra flood HTTP. | Desative a HTTP Flood Protection para o nome de domínio e verifique se o problema foi resolvido. Para mais informações, consulte Configure proteção contra flood HTTP. Se isso restaurar o acesso, trata-se de um falso positivo. Defina o modo da HTTP Flood Protection como Protection. Se o modo já estiver definido como Protection, pule esta etapa. Alternativamente, use o Log Service para analisar a URL problemática e criar uma política de proteção personalizada para permitir solicitações para essa URL. Para mais informações, consulte Configure uma política de proteção personalizada. |
Problemas de acesso HTTPS | Uma solicitação HTTPS retorna um certificado para | O WAF exige que os navegadores dos clientes suportem Server Name Indication (SNI). Este erro ocorre se o navegador do cliente não suportar SNI. | O macOS suporta SNI por padrão. Nos sistemas operacionais Windows e Android, pode ser necessário garantir a compatibilidade com SNI. Para mais informações, consulte Problemas de acesso HTTPS causados por incompatibilidade de SNI (certificado de servidor não confiável). |
502 Bad Gateway (Tela em branco) | O site exibe uma tela em branco e um código de status HTTP 502 é retornado. | O WAF retorna um erro 502 se não conseguir alcançar o servidor de origem (como uma instância ECS, uma instância SLB ou um servidor físico) ou se houver perda de pacotes. |
|
504 Gateway Timeout | O site exibe um erro "Gateway Timeout" e um código de status HTTP 504 é retornado. |
|
|
Não é possível executar ping no nome de domínio | O nome de domínio não responde ao ping e você recebe um alerta informando que sua instância do WAF está sob ataque DDoS e seu tráfego foi roteado para um blackhole. | O WAF não protege contra ataques DDoS volumétricos. | Ative o Anti-DDoS para mitigar ataques DDoS. Para mais informações, consulte Comparação das soluções Anti-DDoS da Alibaba Cloud. |
Carga desigual do servidor | O tráfego não é distribuído uniformemente entre vários servidores backend. | O WAF utiliza hash de IP de camada 4. Se você encadear o Anti-DDoS com o WAF, ou se usar uma instância SLB configurada para encaminhamento de camada 4, o tráfego poderá ser distribuído de forma desigual para suas instâncias ECS. | Utilize uma instância SLB para balanceamento de carga entre o WAF e suas instâncias ECS. Configure a instância SLB para encaminhamento de camada 7 e ative a persistência de sessão baseada em cookies. |
Falha de callback do WeChat ou Alipay | Os callbacks do WeChat ou Alipay falham. | Esse problema pode ocorrer se o acesso de alta frequência for bloqueado por regras de proteção contra flood HTTP, ou se o callback usar HTTPS e o serviço (WeChat ou Alipay) não suportar SNI. |
|
Apêndice: Ferramentas comuns
Chrome DevTools: Conjunto de ferramentas de desenvolvimento web integradas ao Chrome para inspecionar atividades de rede e carregamento de elementos da página. Pressione F12 para abrir o DevTools e acesse a aba Network.
ping: Ferramenta de linha de comando disponível no Windows e Linux para testar a conectividade de rede. No Windows, pressione Win+R e insira
cmdpara abrir o Prompt de Comando. Uso:ping.traceroute (Linux) e tracert (Windows): Ferramentas de linha de comando para rastrear o caminho de rede até um destino e identificar perda de pacotes em cada salto. No Windows, pressione Win+R e insira cmd para abrir o Prompt de Comando. Uso:
tracert -d.nslookup: Ferramenta de linha de comando para verificar se a resolução de nomes de domínio funciona corretamente. No Windows, pressione Win+R e insira cmd para abrir o Prompt de Comando. Uso:
nslookup.