Bloquer les bots hébergés sur Amazon AWS

 x0r   0
securite web nginx

Au fur et à mesure que je surveille mes logs avec logwatch, awstats et un bon vieux tail, je me rends compte que mes "ennemis" ne sont pas forcément les script kiddies ou les spambots (qui, d'ailleurs, s'empalent magnifiquement alors que j'ai pris des mesures qui me semblent parfaitement contournables), mais qu'il y a aussi des boîtes qui s'invitent sur ce site avec comme seul but de vendre leur outil de SEO dont je n'ai rien à battre, du style AhrefsBot ou sistrix.

Comme certains d'entre eux se cachent dans le cloud Amazon EC2 et que je vois aussi moult posts dans des forums divers et variés se plaignant de bots soupçonnés d'être malveillants provenant de ce cloud, on peut se proposer de les bloquer en récupérant les plages d'adresses IP, puis de passer un petit coup de awk dessus.

Pour ce faire, consultez le forum Amazon AWS, puis ouvrez le topic Amazon EC2 Public IP Ranges.

Lancez ce script:

sort -n | awk '/^[1-9]/ { print "deny", $1 ";" }' > ban-amazon-aws.conf

puis copiez-collez le contenu du post dedans. Ceci générera le bout de fichier de configuration nécessaire pour nginx. Pour Apache, c'est ce script-là qu'il faudra utiliser :

sort -n | awk '/^[1-9]/ { print "Deny from", $1 }' > .htaccess

Plus qu'à include le fichier au bon endroit (ou mettre le .htaccess au bon endroit), et ça marche. On notera qu'il n'y a que des plages IPv4, le cloud d'Amazon ne prenant pas (encore) en charge IPv6.

Cela dit, le seul inconvénient est que certaines personnes (et non des bots) pourraient visiter un site en passant par une machine de ce cloud, via un tunnel SSH par exemple. Comme pour le moment, les seules entités impactées par ce genre de mesures semblent être des bots, ça me va.

Commentaires

Poster un commentaire

Poster un commentaire