Tutoriel - Comment bloquer l'accès à mon site pour certaines adresses IP via un fichier .htaccess ?

Voir en Markdown

Découvrez les actions possibles via un fichier .htaccess afin de bloquer l'accès à votre site à certaines adresses IP

Objectif

Ce tutoriel a pour objectif de vous aider à sécuriser l’accès à vos sites du réseau extérieur, à prévenir ou corriger d’éventuelles intrusions ou tentatives d’attaques DDoS (attaques par déni de service).

Vous pouvez réaliser ceci grâce à un fichier « .htaccess », un fichier texte particulier, détecté par le serveur web (Apache), et qui permet de définir des règles spéciales sur un répertoire et l’ensemble de ses sous-répertoires.

Vous pouvez créer plusieurs fichiers « .htaccess » dans l’espace FTP de votre hébergement mais un seul par répertoire ou sous-répertoire afin d’éviter les conflits entre différents fichiers « .htaccess ».

Découvrez comment bloquer l’accès à votre site pour certaines adresses IP via un fichier « .htaccess ».

Informations sur l’administration des services OVHcloud et sur la manière d’obtenir l’assistance appropriée

Lors de l’utilisation des guides OVHcloud, veuillez tenir compte des points suivants :

  • Les instructions visent à fournir un maximum de détails, mais ne peuvent pas couvrir tous les cas d’utilisation particuliers. Il peut être nécessaire d’adapter les actions décrites à vos besoins.
  • L’écosystème OVHcloud est conçu pour offrir flexibilité et liberté de choix. Vous êtes donc responsable de la configuration correcte et sécurisée de vos services. Afin d’éviter toute perte de données, nous vous recommandons vivement de mettre en place des stratégies de sauvegarde pour toutes vos données importantes.
  • Nos guides et tutoriels peuvent faire référence à des logiciels ou services tiers utilisés en combinaison avec les solutions OVHcloud. Le support technique fourni par OVHcloud n’inclut pas la configuration de systèmes ou de produits ne relevant pas de notre responsabilité. Cela inclut notamment :
    • Les systèmes d’exploitation et les interfaces utilisateur (Windows, Debian, Plesk, etc.).
    • Tout autre logiciel tiers (clients FTP, logiciels de messagerie, etc.).
    • Les services proposés par d’autres fournisseurs (DNS, API, interfaces utilisateur, etc.).

Pour recevoir l’assistance appropriée en cas de problème, suivez ces recommandations :

  • Vous souhaitez obtenir des conseils personnalisés ou discuter d’un sujet qui n’est pas traité en détail dans notre documentation ?
    Rejoignez la communauté OVHcloud pour y rechercher votre sujet et échanger avec d’autres utilisateurs.
  • Vous devez signaler un incident concernant votre service OVHcloud ou vous rencontrez des difficultés dans l’espace client OVHcloud ?
    Créez une demande d’assistance dans notre centre d’aide.
  • Vous avez besoin d’une assistance professionnelle pour votre projet ou d’aide pour des tâches en dehors de notre périmètre de support ?
    Consultez notre portail des partenaires pour trouver des experts des solutions OVHcloud.
  • Vous recherchez des informations plus détaillées sur nos niveaux de support et Professional Services ?
    Consultez nos pages niveaux de support OVHcloud et OVHcloud Professional Services.

Vous pouvez participer à l’amélioration de notre documentation :

  • Vous souhaitez faire un retour pour améliorer un guide ou signaler des informations insuffisantes sur une page spécifique ?
    Utilisez les boutons « Cette page vous a-t-elle aidé ? » en bas de page pour nous en informer.
  • Vous souhaitez proposer directement une modification de la documentation ?
    Utilisez la fonction « Modifier cette page », disponible en bas de page et dans la barre latérale.

Prérequis

En pratique

Info

Le fichier « .htaccess » peut être placé dans plusieurs dossiers différents tout en respectant la règle d’un seul fichier « .htaccess » par dossier ou sous-dossier.

Les paramètres définis par un fichier « .htaccess » s’appliquent au répertoire où il est installé ainsi qu’à tous ses sous-répertoires.

Pour éditer (ou créer) ces répertoires, connectez-vous à l’espace FTP de votre hébergement. Au besoin, aidez-vous du guide « Accéder à mon espace de stockage ».

Bloquer une IP, une plage d’IPs, un domaine ou toutes les IPs d’un Pays

Plusieurs règles sont disponibles afin de bloquer les accès à votre hébergement via le « .htaccess ».

Soyez vigilant sur la syntaxe et sur les paramètres que vous bloquez afin de ne pas vous retrouver vous-même bloqué lors de la consultation de vos sites et/ou scripts hébergés.

En cas d’erreur, vous pouvez toujours vous connecter à l’espace FTP de votre hébergement pour corriger la situation.

Info

Les hébergements mutualisés fonctionnent actuellement avec Apache 2.4.

Pour plus de détails sur la syntaxe décrite dans ce guide, consultez les pages officielles suivantes :

Bloquer une IP

Pour bloquer une adresse IP spécifique, insérez le code suivant dans votre fichier « .htaccess » :

<RequireAll>
Require all granted
Require not ip IP_address
</RequireAll>
  • Exemple : si vous souhaitez bloquer l’adresse IP 203.0.113.0, vous devrez écrire le code suivant :
<RequireAll>
Require all granted
Require not ip 203.0.113.0
</RequireAll>

Bloquer une plage d’IPs

Pour bloquer une plage d’adresses IP, insérez le code suivant dans votre fichier « .htaccess » :

<RequireAll>
Require all granted
Require not ip IP_range
</RequireAll>
  • Exemple : si vous souhaitez bloquer toutes les IPs en 203.0.113.x, vous devrez écrire le code suivant :
<RequireAll>
Require all granted
Require not ip 203.0.113
</RequireAll>

Bloquer un domaine

Certains domaines peuvent accéder à votre hébergement via des redirections ou des requêtes.

Pour bloquer un domaine, insérez le code suivant dans votre fichier « .htaccess » :

<RequireAll>
Require all granted
Require not host domain
</RequireAll>
  • Exemple : si vous souhaitez bloquer le domaine domain.tld, vous devrez écrire le code suivant :
<RequireAll>
Require all granted
Require not host domain.tld
</RequireAll>

Bloquer les IPs d’un pays

Info

L’ensemble des adresses IP (notamment les adresses IP publiques) disposent d’une géolocalisation à l’échelle d’un pays. Ceci permet d’avoir un aperçu de la provenance des flux d’une IP et de repérer physiquement l’IP.

Le « .htaccess » permet, grâce à cet élément, de bloquer l’ensemble des IPs géolocalisées dans un pays. En d’autres termes, toutes les personnes qui tenteront de visiter votre site depuis ce pays seront bloquées (sauf si elles utilisent une connexion VPN avec une IP géolocalisée dans un autre pays).

Les blocages via le « .htaccess » s’effectuent par le biais des « Country Codes » à deux lettres (Norme ISO 3166-1 alpha2) des pays.

Plusieurs sites listent les pays et leurs « Country Codes » respectifs, dont https://www.iban.com/country-codes (indépendant d’OVHcloud).

Pour bloquer l’ensemble des IPs d’un pays, insérez le code suivant tout en haut de votre fichier « .htaccess » :

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]
  • Exemple : si vous souhaitez bloquer les adresses IPs géolocalisées aux îles Fidji (FJ) et au Groenland (GR), vous devrez écrire le code suivant tout en haut de votre fichier « .htaccess » :
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FJ|GR)$
RewriteRule ^(.*)$ - [F,L]

Pour autoriser seulement quelques IPs, une plage d’IPs ou l’ensemble des IPs d’un pays

Plutôt que de restreindre l’accès à une ou plusieurs IPs et laisser les autres accéder à votre hébergement, vous pouvez effectuer la démarche inverse en bloquant l’ensemble des IPs puis en n’autorisant qu’une ou plusieurs IPs à accéder à votre service.

Autoriser une ou plusieurs IPs

Pour n’autoriser qu’une seule IP à accéder à votre service, insérez le code suivant dans votre fichier « .htaccess » :

Require ip IP_address
  • Exemple : si vous souhaitez autoriser uniquement les IPs 203.0.113.0 et 203.0.113.1 à accéder à votre hébergement, vous devrez écrire le code suivant :
Require ip 203.0.113.0 203.0.113.1

Autoriser une plage d’IPs

Pour autoriser une plage d’IPs à accéder à votre service, insérez le code suivant tout en haut de votre fichier « .htaccess » :

Require ip IP_range
  • Exemple : si vous souhaitez autoriser uniquement la plage d’IPs 203.0.113.x à accéder à votre hébergement, vous devrez écrire le code suivant tout en haut de votre fichier « .htaccess » :
Require ip 203.0.113

Autoriser l’ensemble des IPs d’un pays

Pour autoriser l’ensemble des IPs d’un pays à accéder à votre service, insérez le code suivant tout en haut de votre fichier « .htaccess » :

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]
  • Exemple : si vous souhaitez autoriser uniquement les îles Fidji (FJ) et le Groenland (GR) à accéder à votre hébergement, vous devrez écrire le code suivant tout en haut de votre fichier « .htaccess » :
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(FJ|GR)$
RewriteRule ^(.*)$ - [F,L]

Compléments sur le fichier « .htaccess »

Indépendamment de la sécurité sur l’accès général à l’hébergement, le fichier « .htaccess » permet de réaliser d’autres actions. Vous trouverez ci-après trois autres tutoriels OVHcloud sur le sujet :

Aller plus loin

Pour des prestations spécialisées (référencement, développement, etc.), contactez les partenaires OVHcloud.

Si vous souhaitez bénéficier d’une assistance à l’usage et à la configuration de vos solutions OVHcloud, nous vous proposons de consulter nos différentes offres de support.

Échangez avec notre communauté d’utilisateurs.

Cette page vous a-t-elle aidé ?