Afin de détecter et de prévenir des attaques contre des applications Web, le pare-feu applicatif (ModSecurity) vérifie toutes les requêtes de votre serveur Web et les réponses associées du serveur conformément à son jeu de règles. Si la vérification réussit, la requête HTTP est transmise au contenu du site Web. Si la vérification échoue, les actions prédéfinies sont exécutées.
ModSecurity est un module pour Apache. C'est pourquoi il ne peut vérifier que les requêtes HTTP qui atteignent Apache. Apache est utilisé avec un autre serveur Web : Nginx. Si vous activez l'option Gérer PHP avec Nginx du serveur Web Nginx pour le contenu dynamique de votre site Web, le pare-feu applicatif ne sera pas en mesure de traiter les requêtes HTTP, car elles n'atteignent jamais Apache. Pour le contenu statique, si l'option Traiter les fichiers statiques directement avec Nginx est activée, les requêtes HTTP n'atteindront pas Apache et ModSecurity ne les vérifiera pas.
Remarque : pour utiliser le pare-feu applicatif, les administrateurs qui mettent à niveau depuis Plesk 11.5 doivent obtenir une nouvelle clé de licence pour Plesk 12 auprès d'Odin ou d'un revendeur.
Pour activer le pare-feu applicatif :
Remarque : les modes du pare-feu applicatif peuvent être définis au niveau du serveur et des domaines. Toutefois, le mode niveau de domaine ne peut pas être plus élevé que le mode défini pour le serveur. Par exemple, si le pare-feu applicatif fonctionne en mode Détection uniquement au niveau du serveur, alors vous ne le définir sur On pour les domaines. Seuls les modes Off et Détection uniquement sont affichés.
Attention : si vous sélectionnez le jeu de règles Atomic, suivez la procédure ci-après pour vérifier que ModSecurity fonctionne correctement :
Exécutez la commande aum -u
sur le serveur. Le pack Plesk modsecurity sera remplacé par celui du répertoire Atomic. Exécutez les commandes suivantes :
plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl –enable
service httpd restart
Remarque : pour des performances optimales, le pare-feu applicatif requiert un serveur DNS local avec la mise en cache des requêtes activée. Sinon, vos sites Web risquent de ralentir pendant que le pare-feu applicatif est activé.
ModSecurity utilise deux emplacements pour ses fichiers de log :
/var/log/httpd/modsec_audit.log
) est très détaillé et utilisé par l'ensemble du serveur Plesk. Tout événement détecté par ModSecurity génère une entrée dans le fichier du log d'audit. Pour consulter le log d'audit ModSecurity, allez sous Outils & Paramètres > Pare-feu applicatif (ModSecurity) et cliquez sur le lien Logs d'archive dans la section Log d'audit ModSecurity. Sur cette page, vous pouvez consulter et télécharger les fichiers de log ModSecurity et voir leurs dates de modification./var/www/vhosts/DOMAIN.TLD/logs/error_log
) contient seulement de courtes informations sur les erreurs de sites Web. Vous pouvez voir le log d'erreur d'un site Web particulier dans le Panneau Client sous Sites Web & Domaines > <nom_de_domaine> > Logs > sélectionnez uniquement Erreur Apache et Erreur Nginx à la place de Tous les logs à droite.Lorsque vous passez le mode pare-feu applicatif de On à Off ou à Détection uniquement, un site Web risque de cesser de fonctionner normalement. Dans le log d'erreurs du site Web, vous pouvez trouver des codes d'erreurs du type 403
, 404
ou 500
. Ces erreurs disparaissent lorsque vous passez le pare-feu applicatif en mode Détection uniquement ou Off. Dans ce cas, analysez le log d'audit ModSecurity pour découvrir ce qui se passe. Vous pouvez désactiver les règles de sécurité trop restrictives ou ajuster le site Web.
Pour déterminer pourquoi une requête HTTP ne peut pas être terminée pour un site Web et désactiver la règle de sécurité :
Ctrl + F
dans la plupart des navigateurs) pour trouver les événements du site Web (le nom de domaine) qui ont généré des problèmes. Par exemple : votre_domaine.tld
. Le navigateur met en surbrillance les entrées telles que HOST: your_domain.tld
. Dans les trois lignes au-dessus de l'entrée sélectionnée, cherchez une chaîne du type --eece5138-B--
. Les 8 caractères entre les tirets (ici "eece5138
") correspondent à l'ID de l'événement déclenché par la requête HTTP.H
après l'ID de l'événement (ici "eece5138-H--")
. Cette entrée contient l'ID et la description de la règle de sécurité déclenchée lors de la vérification de la requête HTTP. L'ID de la règle de sécurité est un nombre entier commençant par 3
entre guillemets avec le préfixe id
entre crochets. Par exemple : [id "340003"]
.[id "3
.340003
), de l'étiquette correspondante (par exemple CVE-2011-4898) ou d'une expression régulière (par exemple XSS
) et cliquez sur OK.