Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Protection Apache – Mode crise et Blocage PDF Bots

De AJLSM
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Protection Apache – Mode crise et Blocage PDF Bots

[modifier | modifier le wikicode]

Voir aussi : Conf_apache_“crise”_(optionnelle)_pour_mettre_tous_les_bots_à_l’amende_sur_results.html

2 - Commandes pour créer le fichier

[modifier | modifier le wikicode]

Option A — mod_ratelimit (simple, efficace)

[modifier | modifier le wikicode]

Activer le module ratelimit (si nécessaire) :

sudo a2enmod ratelimit

Créer le fichier de configuration :/etc/apache2/conf-available/crisis-limit-pdf.conf

# /etc/apache2/conf-available/crisis-limit-pdf.conf
<IfModule mod_ratelimit.c>
  # Limite tous les PDF à ~256 KB/s par connexion
  <LocationMatch "\.pdf$">
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 256
  </LocationMatch>
</IfModule>

Tester & activer (uniquement quand crise) :

sudo apache2ctl configtest
sudo a2enconf crisis-limit-pdf
sudo systemctl reload apache2

Désactiver ensuite :

sudo a2disconf crisis-limit-pdf
sudo systemctl reload apache2

Option B — mod_evasive (anti-flood par IP)

[modifier | modifier le wikicode]
sudo apt-get update
sudo apt-get install libapache2-mod-evasive
sudo a2enmod evasive

Puis configuration (à adapter) : /etc/apache2/mods-available/evasive.conf

<IfModule mod_evasive20.c>
  DOSHashTableSize    3097
  DOSPageCount        10
  DOSSiteCount        50
  DOSPageInterval     1
  DOSSiteInterval     1
  DOSBlockingPeriod   60
</IfModule>

Reload :

sudo apache2ctl configtest
sudo systemctl reload apache2

Autre approche : VRAI 404 pour bots (propre) via mod_rewrite

[modifier | modifier le wikicode]

Dans une conf dédiée (ex: /etc/apache2/conf-available/block-bots-pdf-404.conf)

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Marque les bots
  RewriteCond %{HTTP_USER_AGENT} (meta-externalagent|facebookexternalhit|Facebot|Googlebot|GoogleOther|bingbot|Baiduspider|Baiduspider-render|Bytespider|PetalBot|YandexBot|HaloBot|GPTBot|ChatGPT-User|OAI-SearchBot|Amazonbot|SemrushBot|AhrefsBot|MJ12bot|DotBot|crawler|spider|bot) [NC]
  RewriteRule ^/(archives-en-ligne/)?pleade/functions/ead/detached/.*\.pdf$ - [R=404,L]

  RewriteCond %{HTTP_USER_AGENT} (meta-externalagent|facebookexternalhit|Facebot|Googlebot|GoogleOther|bingbot|Baiduspider|Baiduspider-render|Bytespider|PetalBot|YandexBot|HaloBot|GPTBot|ChatGPT-User|OAI-SearchBot|Amazonbot|SemrushBot|AhrefsBot|MJ12bot|DotBot|crawler|spider|bot) [NC]
  RewriteRule ^/(fr/)?archives-en-ligne/ead(2|3|4)?\.pdf$ - [R=404,L]
</IfModule>

Puis :

sudo a2enconf block-bots-pdf-404
sudo apache2ctl configtest
sudo systemctl reload apache2

3 - Tester et activer la configuration

[modifier | modifier le wikicode]

4 - Désactiver après la crise

[modifier | modifier le wikicode]

5 - Option alternative : mod_evasive

[modifier | modifier le wikicode]

Installation :

Exemple de configuration (mode crise) :

Tester et recharger :

6 - Vrai 404 pour bots via mod_rewrite

[modifier | modifier le wikicode]

Créer un fichier :

Contenu :

Activation :


Améliorer le blocage PDF bots (404 au lieu de 403)

[modifier | modifier le wikicode]

Pourquoi : 403 confirme que le fichier existe. 404 rend la ressource invisible aux bots.

Remplacer les blocs existants par :