Mise en œuvre d'Anubis

Mise en place d’Anubis sur l’instance Scaleway de Fedora-Fr

Pour rappel, l’architecture de Fedora-Fr repose sur un VPS, ou plutôt une Instance, comme l’appelle Scaleway. Cette machine (virtuelle) correspond à nos besoins actuels et nous est gracieusement fournie par notre partenaire Scaleway.

Côté sécurité, nous utilisons le firewall natif proposé par Scaleway, appelé Security Groups. Nous n’avons pas activé le WAF, car je n’ai pas encore pris le temps d’en analyser le fonctionnement en profondeur. Pour le moment, nous protégions nos serveurs uniquement avec CrowdSec, qui chez nous a remplacé avantageusement Fail2ban.

Depuis plusieurs mois cependant, nous avons constaté une forte augmentation du trafic, sans hausse corrélée du nombre réel de visiteurs sur nos outils de suivi. Après analyse, la cause est assez claire : notre wiki et notre forum sont massivement explorés par des crawlers d’IA (souvent asiatiques), générant un volume important de requêtes.

Ce trafic passe par HTTP(S), donc par le port 443. Il n’est pas bloquable simplement via le firewall Scaleway (sauf à maintenir des listes d’IP, ce qui devient vite fastidieux). Il échappe également en grande partie à notre souscription gratuite CrowdSec. À cela se rajoute bien sûr le fait que les user agent sont hérités d’user agent legit et les bots ignorent totalement le robots.txt. Plutôt que d’augmenter nos ressources pour alimenter gratuitement des modèles d’IA, nous avons fait le choix de mettre en place Anubis.

Anubis
Anubis

Anubis est un reverse proxy conçu pour filtrer intelligemment le trafic web automatisé. Positionné en frontal d’un site, il permet de détecter et limiter les crawlers agressifs via des mécanismes de contrôle de débit, de détection comportementale et de challenges applicatifs, tout en laissant passer les robots légitimes comme les moteurs de recherche ou les lecteurs de flux. Il agit au niveau HTTP, ce qui le rend particulièrement adapté aux sites fortement exposés.

Après un réglage assez fin, nous avons protégé les sous-domaines comportant un grand volume de pages explorables, sans bloquer pour autant les robots légitimes (comme les feed readers). Depuis la mise en place de l’outil, le trafic “réel” semble revenu à un niveau cohérent.

Sur le plan technique, nous sommes partis de la configuration standard pour Apache proposée dans la documentation officielle d’Anubis. Notre environnement étant multi-technologies (wiki, forum, WordPress, etc.), nous avons également pris en compte les recommandations spécifiques à WordPress afin d’éviter tout effet de bord sur l’administration ou les endpoints sensibles.

Concernant les règles de détection, nous avons démarré à partir du fichier de politiques par défaut fourni par le projet. Cette base couvre déjà un large éventail de bots connus et de comportements suspects. Nous l’avons ensuite adaptée à notre contexte, en y ajoutant quelques règles complémentaires :

  # START - Fedora-Fr
  - name: fedorafr-google
    user_agent_regex: (?i)(Googlebot|Google-Extended|GoogleOther|GoogleOther-Image|GoogleOther-Video|Google-InspectionTool)
    action: ALLOW
  - name: fedorafr-wiki-sitemaps
    path_regex: ^/sitemaps/.*$
    action: ALLOW
  - name: fedorafr-rss
    path_regex: ^/(atom|feed|rss)/.*$
    action: ALLOW
  - name: fedorafr-forum-rss-old
    path_regex: ^/extern.php.*$
    action: ALLOW
  - name: fedorafr-forum-assets
    path_regex: ^/assets/.*$
    action: ALLOW
  - name: fedorafr-wiki-api
    path_regex: ^/w/api.php.*$
    action: ALLOW
  - name: fedorafr-forum-api
    path_regex: ^/api/.*$
    action: ALLOW
  - name: fedorafr-wordpress-includes
    path_regex: ^/wp-includes/.*$
    action: ALLOW
  # END - Fedora-Fr
Tableau de bord Grafana pour Anubis
Tableau de bord Grafana pour Anubis.

En complément, le template Grafana associé nous permet de suivre précisément l’activité filtrée (requêtes challengées, refusées, validées) et d’ajuster progressivement la configuration en fonction des tendances observées.

Avatar de Guillaume Kulakowski

A propos de l’auteur

Commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Derniers articles sur le journal