Le blocage des réseaux de bot d'indexation est vraiment une aventure. Pour moi elle a commencé avec une indexation massive de tous les commits et les diffs de mon cgit.
J'ai d'abord pensé que fail2ban ferait l'affaire, avec des règles sur les vieux navigateurs (partant d'un postulat que les vrais gens ont des navigateurs qui se mettent à jour tout seul). J'ai même trouvé sur github une liste de faux navigateur qui semblait être la source utilisée (ou un dérivé) pour faire tourner le User-Agent de ces requêtes.
La liste des IPs bannies a vite atteint plus de 200k, et les mises à jour de cette liste ont vite consommé beaucoup trop de CPU (nft add, nft remove). J'ai donc écrit fail2ban-subnet pour tenter d'identifier des sous-réseaux hostiles mais ça n'a pas aidé : j'ai compris que c'était trop distribué et que c'est des appareils compromis ou avec des fonctions cachées au fond des conditions générales qui étaient utilisées et que finalement c'était chez les vrais gens.
N'ayant pas trouvé le temps de mettre en place des solutions plus complexes, j'ai déployé une modification de botcheck sur apache2 et ça fait très bien le boulot, de manière simple : les requêtes ne sont pas servies et l'utilisation CPU et bande passante est minime. Pour encore optimiser, j'ai remarqué que le Referer utilisé par ces requêtes était toujours la racine du site, du coup j'ai mis une règle pour renvoyer une 403 dans ce cas vu que la racine du site n'a pas de lien vers mon cgit.
# réseaux de bot d'indexation
Posté par niol (site web personnel) . En réponse au journal Bloquer les bots avec Nginx de façon simple avec Nginx botcheck. Évalué à 5 (+4/-0).
Le blocage des réseaux de bot d'indexation est vraiment une aventure. Pour moi elle a commencé avec une indexation massive de tous les commits et les diffs de mon
cgit.J'ai d'abord pensé que
fail2banferait l'affaire, avec des règles sur les vieux navigateurs (partant d'un postulat que les vrais gens ont des navigateurs qui se mettent à jour tout seul). J'ai même trouvé sur github une liste de faux navigateur qui semblait être la source utilisée (ou un dérivé) pour faire tourner leUser-Agentde ces requêtes.La liste des IPs bannies a vite atteint plus de 200k, et les mises à jour de cette liste ont vite consommé beaucoup trop de CPU (
nft add,nft remove). J'ai donc écrit fail2ban-subnet pour tenter d'identifier des sous-réseaux hostiles mais ça n'a pas aidé : j'ai compris que c'était trop distribué et que c'est des appareils compromis ou avec des fonctions cachées au fond des conditions générales qui étaient utilisées et que finalement c'était chez les vrais gens.N'ayant pas trouvé le temps de mettre en place des solutions plus complexes, j'ai déployé une modification de
botchecksurapache2et ça fait très bien le boulot, de manière simple : les requêtes ne sont pas servies et l'utilisation CPU et bande passante est minime. Pour encore optimiser, j'ai remarqué que leRefererutilisé par ces requêtes était toujours la racine du site, du coup j'ai mis une règle pour renvoyer une403dans ce cas vu que la racine du site n'a pas de lien vers moncgit.