Cette rubrique explique comment diagnostiquer et résoudre les problèmes d'accès à un site web protégé par Web Application Firewall (WAF).
Procédure
Pour résoudre les problèmes d'accès après avoir ajouté votre site web à Web Application Firewall, suivez ces étapes :
Vérifier les problèmes liés au serveur d'origine : contournez WAF pour déterminer si le problème provient de votre serveur d'origine.
Vérifier les faux positifs de WAF : désactivez temporairement les modules de protection pour déterminer si WAF bloque des requêtes légitimes.
Résoudre les erreurs d'accès courantes : reportez-vous à la liste des erreurs courantes pour analyser et résoudre le problème.
Pour en savoir plus sur les outils utilisés dans cette procédure, consultez la section Annexe : Outils courants.
Vérifier les problèmes liés au serveur d'origine
Suivez ces étapes pour contourner WAF et déterminer si le problème est causé par votre serveur d'origine :
Désactivez les mesures de sécurité sur votre serveur d'origine, telles que les groupes de sécurité, les listes de blocage, les listes d'autorisation, les pare-feu ou autres produits de sécurité. Cela empêche votre serveur de bloquer les adresses IP de retour vers l'origine de WAF.
Modifiez le fichier hosts sur votre ordinateur local pour mapper le nom de domaine à l'adresse IP publique de l'instance ECS, de l'instance SLB ou du serveur correspondant. Il s'agit de l'adresse IP du serveur d'origine que vous avez configurée dans WAF.
-
Depuis un navigateur sur votre ordinateur local, accédez au nom de domaine pour vérifier si le problème persiste sans WAF.
Si le problème persiste, il provient probablement du serveur d'origine. Vérifiez l'état du serveur, y compris ses processus, l'utilisation du CPU et de la mémoire, ainsi que les journaux web, afin d'identifier et de corriger toute anomalie.
Si le problème ne se produit pas, le serveur d'origine n'est pas en cause. Pour poursuivre le dépannage, consultez la section Vérifier les faux positifs de WAF.
Vérifier les faux positifs de WAF
Suivez ces étapes pour désactiver les fonctionnalités de protection de WAF et déterminer si WAF bloque incorrectement des requêtes légitimes :
-
Désactivez le moteur de règles de protection pour le nom de domaine et vérifiez si le problème est résolu. Pour plus d'informations, consultez la section Configurer le moteur de règles de protection.
Si le problème est résolu, modifiez le Protection Rule Group du moteur de règles de protection pour le définir sur Loose Rule Group. Le paramètre par défaut est Medium Rule Group. Vous pouvez également utiliser Log Service pour analyser l'URL problématique et créer une politique de protection personnalisée afin d'autoriser les requêtes vers cette URL. Pour plus d'informations, consultez la section Configurer une politique de protection personnalisée.
-
Si le problème persiste après la désactivation du moteur de règles de protection, désactivez la HTTP Flood Protection pour le nom de domaine et vérifiez si le problème est résolu. Pour plus d'informations, consultez la section Configurer la protection contre les attaques HTTP flood.
Si le problème est résolu, définissez le mode de la HTTP Flood Protection sur Protection. Si le mode est déjà défini sur Protection, vous pouvez ignorer cette étape. Vous pouvez également utiliser Log Service pour analyser l'URL problématique et créer une politique de protection personnalisée afin d'autoriser les requêtes vers cette URL. Pour plus d'informations, consultez la section Configurer une politique de protection personnalisée.
Si le problème persiste après la désactivation de la HTTP Flood Protection, il ne s'agit pas d'un faux positif de WAF. Passez à la section Résoudre les erreurs d'accès courantes.
Résoudre les erreurs d'accès courantes
Si le problème disparaît lorsque vous contournez WAF mais réapparaît systématiquement lorsque WAF est activé, utilisez le tableau suivant pour identifier et résoudre le problème.
Problème | Symptôme | Cause | Résolution |
410 Gone | Une page « 410 Website temporarily unavailable » s'affiche ou un code d'état HTTP 410 est renvoyé. La page indique que le protocole et le port du nom de domaine n'ont pas été ajoutés à WAF. | Le nom de domaine ou le port n'est pas configuré dans WAF. Par exemple, si vous configurez uniquement le port 80 dans WAF mais qu'un utilisateur tente d'accéder à votre site web sur le port 443, WAF renvoie une erreur 410. | Ajoutez le nom de domaine ou le port requis dans la console WAF. Pour plus d'informations, consultez la section Ajouter un nom de domaine. |
405 Method Not Allowed | Une page de blocage 405 s'affiche ou un code d'état HTTP 405 est renvoyé. | La requête est bloquée par une politique de protection personnalisée ou par le moteur de règles de protection. |
|
302 Found (Connection Reset) | Lors de l'accès au site web depuis certaines adresses IP, la connexion est réinitialisée, un code d'état HTTP 302 est renvoyé et la réponse inclut un en-tête Set-Cookie. | La requête provenant de l'adresse IP a déclenché une règle de protection contre les attaques HTTP flood. | Désactivez la HTTP Flood Protection pour le nom de domaine et vérifiez si le problème est résolu. Pour plus d'informations, consultez la section Configurer la protection contre les attaques HTTP flood. Si cela rétablit l'accès, il s'agit d'un faux positif. Définissez le mode de la HTTP Flood Protection sur Protection. Si le mode est déjà défini sur Protection, vous pouvez ignorer cette étape. Vous pouvez également utiliser Log Service pour analyser l'URL problématique et créer une politique de protection personnalisée afin d'autoriser les requêtes vers cette URL. Pour plus d'informations, consultez la section Configurer une politique de protection personnalisée. |
Problèmes d'accès HTTPS | Une requête HTTPS renvoie un certificat pour | WAF nécessite que les navigateurs clients prennent en charge Server Name Indication (SNI). Cette erreur se produit si le navigateur du client ne prend pas en charge SNI. | macOS prend en charge SNI par défaut. Pour les systèmes d'exploitation Windows et Android, vous devrez peut-être vous assurer de la compatibilité SNI. Pour plus d'informations, consultez la section Problèmes d'accès HTTPS causés par une incompatibilité SNI (certificat de serveur non fiable). |
502 Bad Gateway (Écran vide) | Le site web affiche un écran vide et un code d'état HTTP 502 est renvoyé. | WAF renvoie une erreur 502 s'il ne peut pas atteindre le serveur d'origine (tel qu'une instance ECS, une instance SLB ou un serveur physique) ou s'il subit une perte de paquets. |
|
504 Gateway Timeout | Le site web affiche une erreur « Gateway Timeout » et un code d'état HTTP 504 est renvoyé. |
|
|
Impossible de pinguer le nom de domaine | Le nom de domaine est inaccessible par ping et vous recevez une alerte indiquant que votre instance WAF subit une attaque DDoS et que son trafic est redirigé vers un blackhole. | WAF ne protège pas contre les attaques DDoS volumétriques. | Activez Anti-DDoS pour atténuer les attaques DDoS. Pour plus d'informations, consultez la section Comparaison des solutions Alibaba Cloud Anti-DDoS. |
Charge serveur inégale | Le trafic n'est pas réparti uniformément entre plusieurs serveurs backends. | WAF utilise le hachage IP de couche 4. Si vous chaînez Anti-DDoS avec WAF, ou si vous utilisez une instance SLB configurée pour le transfert de couche 4, le trafic peut être réparti de manière inégale vers vos instances ECS. | Utilisez une instance SLB pour l'équilibrage de charge entre WAF et vos instances ECS. Configurez l'instance SLB pour le transfert de couche 7 et activez la persistance de session basée sur les cookies. |
Échec du rappel WeChat ou Alipay | Les rappels de WeChat ou Alipay échouent. | Ce problème peut survenir si les accès fréquents sont bloqués par les règles de protection contre les attaques HTTP flood, ou si le rappel utilise HTTPS et que le service (WeChat ou Alipay) ne prend pas en charge SNI. |
|
Annexe : Outils courants
Chrome DevTools : ensemble d'outils de développement web intégrés à Chrome pour inspecter l'activité réseau et le chargement des éléments de page. Appuyez sur F12 pour ouvrir DevTools et accédez à l'onglet Network.
ping : outil en ligne de commande disponible sous Windows et Linux pour tester la connectivité réseau. Sous Windows, appuyez sur Win+R et saisissez
cmdpour ouvrir l'invite de commandes. Utilisation :ping.traceroute (Linux) et tracert (Windows) : outils en ligne de commande permettant de tracer le chemin réseau vers une destination et d'identifier les pertes de paquets à chaque saut. Sous Windows, appuyez sur Win+R et saisissez cmd pour ouvrir l'invite de commandes. Utilisation :
tracert -d.nslookup : outil en ligne de commande permettant de vérifier que la résolution des noms de domaine fonctionne correctement. Sous Windows, appuyez sur Win+R et saisissez cmd pour ouvrir l'invite de commandes. Utilisation :
nslookup.