Vous avez affaire à un robot, un spammeur ou un pirate informatique qui frappe constamment votre site ? Selon la gravité, cela pourrait avoir un impact important sur vos visites et votre bande passante, auquel cas vous voudrez peut-être essayer de les bloquer.
Tous les plans Kinsta sont livrés avec un outil gratuit IP Deny qui vous permet d’empêcher des adresses IP et des plages spécifiques d’accéder à votre site. Dans cet article, nous couvrirons plusieurs méthodes que vous pouvez utiliser pour bloquer les adresses IP.
Prêt?
Commençons!
Comment identifier les adresses IP problématiques
WordPress est un CMS dynamique, ce qui signifie que les pages non mises en cache sont générées à la demande par les workers PHP. Étant donné que les requêtes non mises en cache nécessitent beaucoup plus de ressources CPU et RAM pour les traiter (par rapport aux requêtes mises en cache), il est possible pour un acteur malveillant de forcer un serveur à cesser de répondre en envoyant un grand nombre de requêtes.
Si jamais vous vous trouvez dans cette situation, une stratégie qui peut aider à réduire la charge du serveur consiste à bloquer les adresses IP gênantes.
Le tableau de bord analytique de MyKinsta vous permet d’afficher une liste des principales adresses IP qui ont atteint votre site. Pour afficher ces adresses IP, accédez à Analytics > Géo & IP et faites défiler jusqu’à « Top des Ips Clients ».
Si vous voyez une adresse IP qui fait beaucoup plus de requêtes que d’autres IP (par exemple par un facteur de 5 à 10x), vous voudrez peut-être approfondir vos recherches pour déterminer si l’IP est un bot ou un spammeur. Le moyen le plus simple de vérifier si une adresse IP est malveillante est d’utiliser un vérificateur de réputation comme CleanTalk ou Spamhaus.
Si le vérificateur de réputation identifie l’adresse IP en tant qu’adresse IP de robot ou de spammeur, vous pouvez prendre d’autres mesures pour bloquer l’adresse IP. Gardez à l’esprit que même si le vérificateur de réputation ne répertorie pas l’adresse IP comme malveillante, cela pourrait simplement signifier que l’adresse IP n’est pas encore dans leur base de données.
Si vous voyez que l’adresse IP fait que votre serveur renvoie une erreur HTTP 502 ou tombe complètement en panne, cela vaut la peine de tester si le blocage de l’adresse IP améliore les choses.
Comment bloquer les adresses IP à l’aide de MyKinsta
L’outil IP Deny du tableau de bord MyKinsta vous permet de bloquer à la fois les adresses IP individuelles ainsi que les plages d’adresses IP sans avoir à modifier les fichiers de configuration du serveur web. Si vous êtes hébergé sur Kinsta, l’outil IP Deny est la méthode recommandée pour bloquer les adresses IP.
Pour bloquer une adresse IP dans MyKinsta, accédez à Sites > Votre site > IP Deny.
Ensuite, cliquez sur le bouton « Ajouter des adresses IP » dans le coin supérieur droit de la page.
Dans la modale « Ajouter des adresses IP à bloquer », vous pouvez ajouter des adresses IPV4, des adresses IPV6 et des plages d’adresses IP CIDR (Classless Inter-Domain Routing) à la liste de blocage. Les plages CIDR sont utiles pour bloquer une plage séquentielle d’adresses IP (par exemple 127.0.0.1 à 127.0.0.255). Pour générer une plage CIDR valide, nous vous recommandons d’utiliser un outil comme celui-ci.
Voici quelques exemples d’adresses IP que vous pouvez bloquer :
- Adresse IPV4 – 103.5.140.141
- Adresse IPV6 – 2001:0db8:0a0b:12f0:0000:0000:0000:0001
- Plage CIDR – 128.0.0.1/32
Une fois que vous avez ajouté les adresses IP à bloquer, cliquez sur le bouton « Ajouter des adresses IP ».
Vous devriez maintenant voir les adresses IP ajoutées à la liste de blocage. Sur cette page, vous avez également accès à deux actions (Modifier et Supprimer) dans la colonne « Actions ». L’action « Modifier » vous permet de mettre à jour l’adresse IP ou la plage, tandis que l’action « Supprimer » vous permet de supprimer l’adresse IP bloquée.
Comment bloquer les adresses IP dans Cloudflare
Si vous êtes un utilisateur de Cloudflare, vous pouvez utiliser l’outil « Règles d’accès IP » dans le tableau de bord Cloudflare pour bloquer les adresses IP et les plages d’adresses IP.
Dans le tableau de bord Cloudflare, accédez à Pare-feu > Outils.
Pour créer une nouvelle règle d’accès IP, ajoutez une adresse IP, sélectionnez l’action « Bloquer », sélectionnez « Ce site web » (ou « Tous les sites web du compte » si vous souhaitez que la règle s’applique à tous vos domaines Cloudflare), et cliquez sur « Ajouter ».
Après avoir ajouté la règle d’accès, elle apparaîtra dans la liste « Règles d’accès IP ». Ici, vous pouvez apporter des modifications à la règle d’accès, telles que la modification de l’action, l’ajout de notes et la suppression de la règle.
En plus de l’action « Bloquer », Cloudflare prend également en charge « Challenge », « Autoriser » et « JavaScript Challenge ». Selon ce que vous essayez d’accomplir, vous pouvez utiliser l’une de ces autres actions au lieu de « Bloquer ».
Bloquer la plage d’adresses IP, le pays et l’ASN dans Cloudflare
En plus des adresses IP uniques, les règles d’accès IP de Cloudflare prennent également en charge les plages IP, les noms de pays et les ASN (numéros de système autonome).
- Pour bloquer une plage IP, spécifiez une plage CIDR pour la valeur de la règle d’accès IP.
- Pour bloquer un pays, spécifiez son code de pays Alpha-2 .
- Pour bloquer un ASN (une liste d’adresses IP contrôlées par un seul opérateur de réseau), spécifiez un ASN valide commençant par « AS ».
Comment bloquer les adresses IP dans Nginx
Si votre site est auto-hébergé avec le serveur web Nginx, vous pouvez bloquer les adresses IP directement dans la configuration du serveur web. Bien que cette méthode ne soit pas aussi conviviale que le blocage des adresses IP avec l’outil IP Deny de MyKinsta ou le pare-feu de Cloudflare, elle peut être la seule option dans certaines situations.
Pour bloquer une adresse IP dans Nginx, connectez-vous en SSH à votre serveur et ouvrez votre fichier de configuration Nginx avec l’éditeur de texte nano
comme ci-dessous :
nano /etc/nginx/nginx.conf
Comment bloquer une seule adresse IP avec Nginx
Pour bloquer une seule adresse IP (IPV4 ou IPV6) dans Nginx, utilisez la directive deny
comme ci-dessous :
deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;
Comment bloquer une plage d’adresses IP CIDR avec Nginx
Pour bloquer une plage d’adresses IP CIDR dans Nginx, utilisez la directive suivante :
deny 192.168.0.0/24;
Techniques avancées de blocage d’IP Nginx
Si vous souhaitez bloquer l’accès à un répertoire spécifique (ed domain.com/secret-directory/), vous pouvez utiliser la directive Nginx ci-dessous :
location /secret-directory/ {
deny 192.168.0.0/24;
}
La directive deny
accepte all
comme valeur. Ceci est utile pour les situations où vous souhaitez bloquer toutes les adresses IP de votre site. La directive deny all;
directive est souvent utilisée en conjonction avec allow
– . Cela vous permet d’autoriser des adresses IP spécifiques tout en bloquant tout le reste.
location /secret-directory/ {
allow 192.168.0.0/16;
deny all;
}
Enregistrer la configuration de Nginx et recharger Nginx
Lorsque vous avez terminé de modifier la configuration avec nano, veillez à enregistrer vos modifications en appuyant sur Ctrl + O. Après avoir enregistré le fichier, appuyez sur Ctrl + X pour quitter nano.
Pour activer les nouvelles règles de blocage IP, vous devrez également recharger la configuration Nginx avec la commande ci-dessous :
sudo systemctl reload nginx
Comment bloquer les adresses IP dans Apache
Si votre site est auto-hébergé avec le serveur web Apache, vous pouvez bloquer les adresses IP directement dans la configuration du serveur web. Pour bloquer une adresse IP dans Apache, vous devrez utiliser un fichier .htaccess, qui vous permet d’appliquer des règles uniques à des répertoires spécifiques. Pour appliquer des règles à l’ensemble de votre site, le fichier .htaccess doit être placé dans le répertoire racine de votre site.
Pour commencer, connectez-vous en SSH à votre serveur, accédez au répertoire racine de votre site et créez le fichier .htaccess avec la commande ci-dessous :
touch .htaccess
Ensuite, ouvrez le fichier .htaccess avec l’éditeur de texte nano
comme ci-dessous :
nano .htaccess
Les règles exactes pour bloquer les IP dépendent de si vous utilisez Apache 2.2 ou 2.4, nous inclurons donc des règles pour les deux versions. Lors de l’édition de votre fichier .htaccess, utilisez les règles de votre version d’Apache.
Comment bloquer une seule adresse IP avec Apache
Pour bloquer une seule adresse IP (IPV4 ou IPV6) dans Apache, utilisez les règles ci-dessous :
# Apache 2.2
order allow, deny
allow 192.168.0.0
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0
Comment bloquer une plage d’adresses IP CIDR avec Apache
# Apache 2.2
order allow, deny
allow 192.168.0.0/16
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0/16
Résumé
Selon la configuration de votre site, il existe différentes manières d’empêcher les adresses IP d’atteindre votre site. Si vous êtes un utilisateur de Kinsta, nous vous recommandons d’utiliser l’outil IP Deny intégré dans MyKinsta.
Si votre site n’est pas hébergé sur Kinsta, nous vous recommandons de le sécuriser avec Cloudflare, qui vous permet de créer des règles d’accès IP uniques pour bloquer les adresses IP, les plages, etc. Enfin, si vous ne parvenez pas à configurer Cloudflare pour votre site, vous pouvez implémenter des règles de blocage IP directement dans votre fichier de configuration de serveur web.