Christophe Casalegno

OVH : comment bloquer une adresse IP sur votre serveur si vous êtes derrière un IPLB

>Hello World 😉 Si vous utilisez ou infogérez des infrastructures ou des serveurs dédiés OVH, vous connaissez sans doute cette excellente brique d’infrastructure clef en main et peu coûteuse (9.99 € HT /mois) qu’est l’IPLB (IP Load Balancer). Imaginez un HAProxy clef en main accessible avec une interface très simple d’utilisation (le manager OVH) ou directement via l’API : voilà ce qu’est l’IPLB. Il vous permet très facilement de mettre en place du load balancing actif (répartition de charge) ou passif (mode backup/pra en cas de défaillance d’une machine) ou une combinaison des 2 modes avec à peu près toute la finesse que vous pouvez espérer d’un tel produit.

Seule limitation : actuellement vous pouvez connecter 16 backends sur votre IPLB OVH, que ce soit du web, du tcp ou de l’UDP, ce qui n’est déjà pas si mal pour travailler sur des infrastructures « sérieuses ». Dernière limitation : il n’est pas encore possible d’utiliser comme backend des IP routées via Vrack, mais c’est en cours d’implémentation !

Pour en savoir plus sur l’IPLB, je vous conseille la vidéo suivante : courte, simple et efficace :

Le problème classique lorsque qu’on utiliser un load balancer, c’est qu’on ne peut pas voir les IP des visiteurs qui se connectent à votre serveur : c’est alors l’adresse IP privée du load balancer qui apparaîtra, comme lorsque vous utilisez un service tel que CloudFlare.

Cependant, vous pouvez configurer ce service via l’API OVH API afin d’utiliser la fonction proxypass qui va vous permettre de récupérer tout de même l’adresse IP au travers de la requête http reçue par votre serveur.

Cependant, si vous essayez de blacklister une adresse IP directement sur votre machine via iptables par exemple comme suit : iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP -v , cela ne pourra pas fonctionner, parce que l’adresse en question *n’est pas* connectée à votre serveur.

Si vous avez besoin de bloquer une attaque particulière sur votre site web, du type ddos applicatif qui ne serait pas pris en charge par le VAC (Le système Anti-DDoS réseau d’OVH), la solution consiste alors à matcher directement le contenu du paquet afin de bloquer l’attaquant de la manière suivante : iptables -I INPUT 1 -p tcp --dport 80 -m string --algo bm --string "X-Forwarded-For: xxx.xxx.xxx.xxx" -j LOG_DROP

Vous pouvez également créer un petit script afin d’avoir une syntaxe plus simple d’utilisation au quotidien de la manière suivante :
 
#!/bin/sh
iptables -I INPUT 1 -p tcp --dport 80 -m string --algo bm --string "X-Forwarded-For: $1" -j DROP

 
Il vous suffit maintenant d’utiliser ./yourscript.sh xxx.xxx.xxx.xxx pour blacklister une adresse ou bien |xargs -l ./yourscript pour l’appliquer automatiquement à une liste d’adresses. Attention cependant, cette méthode présente une limite : elle ne fonctionne pas sur une connexion https, l’adresse IP étant par définition dans la requête https ici, iptables ne pourra pas la décoder à la volée. La solution consiste alors à utiliser l’API pour activer les fonction de firewall sur l’adresse IP portée par votre IPLB : ce la fera l’objet d’un prochain test. L’autre solution pourrait être d’attribuer une IPFO (IP FailOver) à l’IPLB ce qui permettrait d’utiliser les fonctions de firewall OVH comme sur une adresse IP standard : soit au travers du manager, soit via l’API. Autre possibilité qu’il me reste à tester.
 
Besoin d’infogérer votre serveur linux, votre vps ou votre public cloud ? Email : sales@digital-netcom.com

Christophe Casalegno
You pouvez me suivre : Twitter | Facebook | Linkedin | Telegram

Leave a Comment