Pourquoi et comment bloquer les plages d’IP d’Amazon Web Services

Pour diverses raisons, si vous avez un site Internet en 2015, vous devez avoir constamment un œil sur vos fichiers de logs. On y découvre souvent des choses très intéressantes comme Google qui pourrait passer son temps à crawler des pages qui ne sont « pas intéressantes ». Mais il arrive aussi que l’on trouve des visites un peu suspectes… Par exemple, pour l’avoir vécu, on peut trouver des crawls massifs qui passent sur votre site 24h/24h ! Même si cela ne fait pas tomber le site et que cela ne gêne en rien le visiteur qui va venir chez vous, il faut absolument stopper cela pour plein de raison : on pourrait notamment citer du NSEO avec l’augmentation du temps de chargement des pages, la duplication de contenu avec l’aspiration de votre site ou encore un concurrent qui vous surveille.

Un crawl un peu trop bourrin venant d’Amazon Web Services

Récemment j’ai du faire face à un crawl assez volumineux pour le coup… C’était pas trop mal fait du côté du robot : les informations remontées dans les fichiers log faisant penser à des visites humaines, à l’exception de la manière dont le site était crawlé… Un humain ne visiterait pas TOUTES les fiches produits d’un ecommerce au rythme de 4 ou 5 par minute sans repasser par des pages catalogues ! Pas toute la journée ! Et surtout que le type d’URL cralwée n’est pas présente sur le site en question… Enfin bref… Il fallait bloquer ça. Le point commun de toutes ces visites était la plage d’IP d’Amazon Web Services.

En cherchant sur le net, on se rend compte que pas mal de personnes soupçonnent qu’il y ait certains robots malveillants sur le cloud d’Amazon. Attention, je ne dis pas qu’il n’y a que ça, au contraire, certains sont bien fait et surtout très utiles ! Je pense notamment à Ahrefs. A partir de là il faut se poser les questions suivantes :

– Est-ce que j’ai des visiteurs qui peuvent venir d’Amazon Web Services ?

– Est-ce qu’il y a des tools dont je me sers qui sont hébergés sur le cloud d’Amazon ?

Si vous répondez « non » au deux questions, on peut donc bloquer la plage d’IP d’Amazon Web services. C’est un peu bourrin, mais à un moment donné il faut prendre les devants. Amazon Web Services est une très grosse machine et je vous laisse imaginer le nombre d’IP qu’ils utilisent ! Il est donc inutile de bloquer 1 à 1 les IP que vous voyez dans vos fichiers de log. Pour bloquer l’ensemble des IP, je n’ai pas trouvé beaucoup de billets complets à ce sujet… En fait j’en ai trouvé qu’un seul, et plus précisément celui de x0r.fr.

Comment bloquer l’ensemble des plages d’IP d’Amazon Web Services

Certainement à cause des plaintes sur le sujet, Amazon nous simplifie la vie. Sur son forum, il y a un post, listant les plages d’IP publiques utilisées, qui est régulièrement mis à jour. Ce post se trouve à l’adresse https://forums.aws.amazon.com/ann.jspa?annID=1701. Si ce lien vient à changer, on peut normalement le retrouver sur la page https://forums.aws.amazon.com/forum.jspa?forumID=30, avec le titre « Amazon EC2 Public IP Ranges ». Il suffit donc de prendre la liste des plages, et de les interdire sur votre serveur web. Mais la liste est longue, et sur le site d’x0r.fr il y a une commande UNIX qui vous simplifie la vie.

Placer le contenu du post dans un fichier que l’on appelera post_forum_amazon.txt. Ensuite, si votre serveur Web est un Apache ou un nginx, la commande est légèrement différente :

Pour Apache :

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

Pour Nginx :

$ cat post_forum_amazon.txt | sort -n | awk '/^[1-9]/ { print "deny", $1 ";" }' > ban_ip_amazon_ws.txt

Pour finir il vous suffit de copier le contenu de ban_ip_amazon_ws.txt dans votre fichier .htaccess pour Apache, ou votre fichier de configuration pour Nginx. Vu la grosse machine Amazon qui est derrière, la liste des plages changera de temps en temps, il faudra donc de temps en temps répéter l’opération.

Laisser un commentaire

Votre email ne sera pas publié.