Tutoriel - Comment bloquer l'accès à mon site pour certaines adresses IP via un fichier .htaccess ?
Découvrez les actions possibles via un fichier .htaccess afin de bloquer l'accès à votre site à certaines adresses IP
Découvrez les actions possibles via un fichier .htaccess afin de bloquer l'accès à votre site à certaines adresses IP
Dernière mise à jour le 12/09/2022
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 ».
OVHcloud met à votre disposition des services dont la configuration, la gestion et la responsabilité vous incombent. Il vous revient de ce fait d'en assurer le bon fonctionnement.
Nous mettons à votre disposition ce guide afin de vous accompagner au mieux sur des tâches courantes. Néanmoins, nous vous recommandons de faire appel à un prestataire spécialisé si vous éprouvez des difficultés. En effet, nous ne serons pas en mesure de vous fournir une assistance. Plus d'informations dans la section « Aller plus loin » de ce guide.
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 ».
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.
Les hébergements mutualisés fonctionnent actuellement avec Apache 2.4. Depuis la version Apache 2.3, des variables ont été implémentées et la syntaxe de rédaction des restrictions/autorisations d'accès a évolué.
Du fait que l'ancienne syntaxe est très utilisée, celle-ci est toujours active sur nos infrastructures. Cependant, elle est considérée comme obsolète par Apache et pourrait prochainement ne plus être disponible. Vous trouverez donc dans ce tutoriel des exemples détaillant les deux syntaxes.
Pour plus de détails sur la nouvelle syntaxe, vous pouvez consulter les pages officielles suivantes :
Pour bloquer une adresse IP spécifique, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
Deny from IP_address
<RequireAll>
Require all granted
Require not ip IP_address
</RequireAll>
Deny from 192.168.1.2
<RequireAll>
Require all granted
Require not ip 192.168.1.2
</RequireAll>
Pour bloquer une plage d'adresses IP, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
Deny from IP_range
<RequireAll>
Require all granted
Require not ip IP_range
</RequireAll>
Deny from 192.168
<RequireAll>
Require all granted
Require not ip 192.168
</RequireAll>
Certains domaines peuvent accéder à votre hébergement via des redirections ou des requêtes.
Pour bloquer un domaine, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
Deny from domain
<RequireAll>
Require not host domain
</RequireAll>
Deny from domain.tld
<RequireAll>
Require not host domain.tld
</RequireAll>
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 l'un des deux codes suivants dans votre fichier « .htaccess » :
SetEnvIf GEOIP_COUNTRY_CODE Country_Code BlockCountry
Deny from env=BlockCountry
À placer tout en haut de votre « .htaccess »
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]
SetEnvIf GEOIP_COUNTRY_CODE FJ BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE GR BlockCountry
Deny from env=BlockCountry
À placer tout en haut de votre « .htaccess »
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FJ|GR)$
RewriteRule ^(.*)$ - [F,L]
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.
Pour n'autoriser qu'une seule IP à accéder à votre service, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
order deny,allow
deny from all
Allow from IP_address
Require ip IP_address
order deny,allow
deny from all
Allow from 192.168.1.2
Allow from 192.168.1.3
Require ip 192.168.1.2 192.168.1.3
Pour autoriser une plage d'IPs à accéder à votre service, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
order deny,allow
deny from all
Allow from IP_range
À placer tout en haut de votre « .htaccess »
Require ip IP_range
order deny,allow
deny from all
Allow from 192.168.1
À placer tout en haut de votre « .htaccess »
Require ip 192.168.1
Pour autoriser l'ensemble des IPs d'un pays à accéder à votre service, insérez l'un des deux codes suivants dans votre fichier « .htaccess » :
order deny,allow
deny from all
SetEnvIf GEOIP_COUNTRY_CODE Country_Code AllowCountry
Allow from env=AllowCountry
À placer tout en haut de votre « .htaccess »
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]
order deny,allow
deny from all
SetEnvIf GEOIP_COUNTRY_CODE FJ AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE GR AllowCountry
Allow from env=AllowCountry
À placer tout en haut de votre « .htaccess »
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(FJ|GR)$
RewriteRule ^(.*)$ - [F,L]
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 :
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 sur https://community.ovh.com.
N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.
Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !
Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .
Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..
Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.
Echanger sur OVHcloud Community