Bloquer des IP et des noms de domaine avec le fichier .htaccess

Le fichier .htaccess placé à la racine d'un serveur apache permet de gérer pas mal de choses. Voyons comment bloquer des IP et des noms de domaines.
htaccess

Aujourd’hui, il est possible de trouver de tout sur Internet, et parfois même n’importe quoi.

Les serveurs web sont aujourd’hui des cibles prisées par les pirates, pour tout genre d’acte de piratage. Il existe pourtant des solutions vous permettant de bloquer ces personnes mal-intentionnées, mais les systèmes à mettre en place peuvent être complexes et parfois instables selon votre configuration.

Récemment spammé par des robots russes, j’ai décidé de mettre en place un fichier .HTACCESS bloquant les adresses IP et les noms de domaine de ces robots chiants, ne servant à rien, pourrissant l’Internet.

Qu’est ce qu’un fichier .HTACCESS ?

Ce fichier est à la base un pauvre fichier texte, ayant des lignes bien spécifiques qui seront interprétées comme des règles de sécurité par tous les serveurs web sous Apache, exclusivement.

Il existe une multitude d’options pour ce fichier, une recherche Google pourra vous en dire plus.

Ce fichier fonctionnera seulement à l’emplacement où vous venez de le placer. Il ne protège que le dossier courant. Pour protéger plusieurs dossiers, vous devrez donc créer plusieurs fichiers .htaccess.

Par défaut, la syntaxe d’un fichier .htaccess est la suivante :

Syntaxe d'un fichier .HTACCESSorder Allow,Deny
# On définit l'ordre logique de lecture du fichier, et de la priorité des atributs

allow from All
# Par défaut, et bien naturellement, on accepte toutes les connexions sur notre serveur.

deny from 192.168.1.1
# Sauf que l'on refuse toutes les connexions à partir de l'adresse IP 192.168.1.1

Le fichier s’écrit facilement, sous réserve de savoir ce qu’il faut saisir à l’intérieur.

Blocages d’IP et de noms de domaine

  • Bloquer une adresses IP précise

Le blocage IP est assez simple – il suffit de saisir l’adresse IP en question pour la bloquer.
Ainsi, vous aurez ce type de fichier à écrire :

Blocage IP simpleorder Allow,Deny
allow from All
deny from 11.22.33.44
  • Bloquer une plage d’adresses IP

Le blocage d’une plage d’IP en revient presque à bloquer l’adresse IP Réseau concernée :

Blocage plage d'IPorder Allow,Deny
allow from All
deny from 11.22

Dans cet exemple, nous bloquerons toutes les adresses IP commençant par 11.22.x.x. Faites donc attention lors de l’utilisation de cette directive sur vos serveurs, pour éviter une perte de connexion du à un mauvais blocage.Attention à la syntaxe lors de la saisie d’une plage d’IP : il n’y a pas de point à la fin de l’adresse, ni de saisie du masque réseau.

  • Bloquer un nom de domaine

Avec l’arrivée de l’IPv6, les IP seront encore plus chiantes laborieuses à saisir – Heureusement que les noms de domaines sont parmi nous !
Le blocage ce fait comme suit :

Blocage nom de domaineorder Allow,Deny
allow from All
deny from google.fr

La compréhension se fait facilement : Toute personne provenant sur notre serveur avec un nom de domaine commençant par « google.fr » se verra refuser l’accès.

  • Bloquer une adresse IP, une plage d’IP et un nom de domaine en même temps

Soyons puissant, soyons sécurisant, soyons geeks !

Il est possible de combiner les 3 directives vues ci-dessus, pour avoir un fichier .htaccess restrictif mais complet :

Blocage IP + plage IP + nom de domaineorder Allow,Deny
allow from All
deny from 11.22.33.44
deny from 55.66
deny from théthon.xxx

Dans ce dernier fichier, nous acceptons toutes les connexions… sauf :

  • Refus d’accès pour l’adresse IP « 11.22.33.44 » ;
  • Refus d’accès pour toutes les IP commençant par « 55.66 » ;
  • Refus d’accès pour toute connexion ayant un nom de domaine commençant par « théthon.xxx« .

Avec ces attributs modifiés selon les cas et les situations, les robots spammers ne pourront plus se connecter sur votre serveur web !