Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Blocage des robots agressifs au niveau Apache » : différence entre les versions
Page créée avec « == Blocage des robots agressifs au niveau Apache == category:WAF === Origine du problème === En septembre 2026, le site Salamandre du Collège de France a subi une f... » |
|||
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 1 : | Ligne 1 : | ||
== Blocage des robots agressifs au niveau Apache == | == Blocage des robots agressifs au niveau Apache == | ||
[[category: | [[category:WAF_2026]][[category:Apache]][[category:Robots IA]] | ||
=== Origine du problème === | === Origine du problème === | ||
Dernière version du 23 septembre 2026 à 18:15
Blocage des robots agressifs au niveau Apache
[modifier | modifier le wikicode]Origine du problème
[modifier | modifier le wikicode]En septembre 2026, le site Salamandre du Collège de France a subi une forte charge sur Pleade/Tomcat provoquée par les robots d'indexation de Meta, principalement :
meta-webindexer/1.1
Le robot parcourait massivement les résultats de recherche Pleade et suivait les liens correspondant aux facettes.
Cela conduisait à la génération d'URL de recherche comportant un nombre croissant de critères, par exemple :
fchamp1=...
fquery1=...
fchamp2=...
fquery2=...
...
fchamp12=...
fquery12=...
Ces requêtes sont particulièrement coûteuses pour le moteur de recherche Pleade et leur multiplication finissait par provoquer une forte charge de Tomcat.
Le blocage par adresse IP n'est pas adapté : Meta utilise de nombreuses adresses IP et change régulièrement d'adresse au cours de l'exploration.
Solution mise en place
[modifier | modifier le wikicode]Le filtrage est donc effectué au niveau Apache, avant que la requête n'atteigne Tomcat, en se basant sur le User-Agent du robot.
Une configuration Apache spécifique a été créée :
/etc/apache2/conf-available/block-meta-bots.conf
Elle permet actuellement de bloquer les principaux User-Agent identifiés de Meta/Facebook :
meta-webindexer
meta-externalagent
meta-externalfetcher
facebookexternalhit
Facebot
La configuration est activée globalement dans Apache afin de ne pas dépendre du VirtualHost HTTPS, qui n'est pas administré sur ce serveur.
Activation de la configuration :
a2enconf block-meta-bots
apache2ctl configtest
systemctl reload apache2
Vérification
[modifier | modifier le wikicode]Un test direct sur Apache avec le Host du site et le User-Agent de Meta permet de vérifier le filtrage :
curl -I \
-H 'Host: salamandre.college-de-france.fr' \
-A 'Mozilla/5.0 (compatible; meta-webindexer/1.1)' \
http://127.0.0.1/
Résultat attendu :
HTTP/1.1 403 Forbidden
Un User-Agent normal doit continuer à accéder au site :
curl -I \
-H 'Host: salamandre.college-de-france.fr' \
-A 'Mozilla/5.0' \
http://127.0.0.1/
Résultat constaté :
HTTP/1.1 200 OK
Les journaux Apache montrent ensuite que les véritables requêtes de meta-webindexer reçoivent également un code HTTP 403.
Enfin, la prise en compte du filtrage a été vérifiée dans le journal d'accès de Tomcat :
/home/ajlsm/tomcats/internet/logs/localhost_access_log.YYYY-MM-DD.txt
Après activation du filtre, les requêtes provenant des robots Meta bloqués ne parviennent plus à Tomcat. Les accès normaux à Pleade continuent en revanche à être traités normalement.
Le chemin est donc désormais :
Robot Meta
|
v
Apache
|
+---- User-Agent interdit ----> HTTP 403
|
X
Tomcat / Pleade
Ajout de nouveaux robots
[modifier | modifier le wikicode]Si d'autres robots provoquent à l'avenir le même type de surcharge, il faut compléter cette configuration plutôt que créer des règles ailleurs :
/etc/apache2/conf-available/block-meta-bots.conf
Ajouter le User-Agent du nouveau robot à la règle de filtrage existante.
Après toute modification :
apache2ctl configtest
systemctl reload apache2
Puis vérifier dans les logs Apache que le robot reçoit bien un 403 et dans les logs Tomcat que ses requêtes ne sont plus transmises à Pleade.
Remarque : le robot peut continuer à envoyer des requêtes et donc rester visible dans le journal Apache. C'est normal. L'objectif du filtrage n'est pas de l'empêcher d'émettre ses requêtes, mais de les arrêter immédiatement dans Apache afin qu'elles ne déclenchent plus les traitements coûteux de Pleade/Tomcat.