Table des matières

Lutte contre les bots en ligne

Les mauvaises pratiques s'accumulent, et si le crawl sauvage a toujours existé, il devient problématique à l'excès, menant à faire tomber les services web.

Délimiter ce qui est nuisible

Avant de bloquer tout azimut, il faut définir ce qu'on veut bloquer. On peut par exemple décider, par conviction éthique, de bloquer les moteurs de recherhes et indexeurs LLM, ou bien les tolérer.

Je reprendrais tout cela proprement plus tard, là je note juste de quoi faire face aux DDOS du moment. Des DDOS non ciblés, juste parce que le capitalisme, c'est de la merde favorisant ce genre de connerie.

Détecter et analyser

Goaccess

Dans les dépôts debian. Doc sur https://goaccess.io.

Il faut les logs personnalisés apache.

/etc/apache/conf-enabled/log.conf
LogFormat "%h ☆ %v ☆ %t ☆ Code %>s ☆ %O o ☆ \"%r\"\"%{User-Agent}i\"\"%{Referer}i\" " vhost_maison
CustomLog ${APACHE_LOG_DIR}/access.log vhost_maison

Puis modifier la config de goaccess.

/etc//goaccess/goaccess.conf
# Format de l'heure comme Apache le gère 
datetime-format %d/%b/%Y:%H:%M:%S %z
# Notre regex transcrite en langage goaccess
log-format %h ☆ %v ☆ [%x] ☆ Code %>s ☆ %O o ☆ \"%r\"\"%u\"\"%R\"

Méthodes de combat

Il n'y a pas une solution miracle, mais la mise en place de diverses techniques qui, cumulées, peuvent baisser les dégâts que font ces enquiquineurs.

  1. Pare-feu paramétré sur chaque machine, idéalement nftables (cf aussi iptables au besoin.
  2. SSH correctement paramétré 1), avec sshguard (facile et efficace, bien que redondant avec le reste) voir connexion via bastion.
  3. Paramétrage de Reaction et Fail2ban. Un seul bien paramétré suffit, les deux peuvent cohabiter. Fail2ban a l'avantage d'avoir des lots de règles toutes prêtes, l'inconvénient qu'elles sont légères, et que l'archi générale est un enfer sur lequel intervenir.
  4. Maintenir une liste d'ip bloquées par réseau (voir plus bas)

Certaines solutions sont propres au type de service.

Solutions type iocaine, anubis, cloudfront : je leur trouve pas mal de défaut sur les utilisatrices (typiquement je ne peux pas aller sur ce genre de site avec mon smartphone qui a peu de ram) pour un résultat discutable.

Détails de certaines méthodes

Liste d'IP bloquées et autorisées

Les deux vont un peu ensemble.

D'abord, les listes d'ip bloquées.

Ensuite, les listes d'ip autorisées :

Proxys résidentiels

Un souci compliqué. Grâce aux objets connectés moisis, les attaques peuvent venir d'ip résidentielles, et bannir largement va poser quelques soucis à des utilisatrices légitimes, sans parler de la charge mémoire de bloquer autant.

Un blocage géographique peut dépanner temporairement mais n'est pas une solution à long terme. Pulkomandy indique que ces bots “ont tendance à utiliser des user agents ne correspondant pas à la toute dernière version”, cela peut être un critère de détection, mais qui me semble délicat à manier.

 Ce texte est placé sous licence CC0

1)
Lien sur wikhan quand j'aurais remis le site up.