Limiter l’accès à l’administration ou à une URL par adresse IP

Hey ! Bonjour vous !

Ah ! Je me rappelle de vous Antoine ! Vous m’offrez un verre ?
Ah non pardon, euh, oui on s’est bien connus il y a quelques années Laurent, j’ai juste confondu votre prénom ! Alors ?! Je prendrai bien une petite Grimbergen blanche !
Non ? Ah mais oui, ça me revient maintenant, David ! Mais je vous jure on s’était croisé, vous vous souvenez pas ? Vous savez le jour où il y avait du soleil, c’était quelque part dehors, y’avait même un arbre ! Alors on se le boit ce verre ou pas ?
Hahaha ! Bon je plaisantais Éric ! Donc je disais…

C’est énervant hein ?! Et bien c’est ce qui se passe probablement constamment avec votre site internet et c’est encore pire ! Ce monsieur, bon il est très collant et manifestement il a très soif, mais il est pas méchant et en plus il aime bien la Grimbergen blanche. Comment en vouloir à quelqu’un qui aime cette bière ?? Mais contrairement à nous, votre site web est beaucoup plus patient. Il va continuer à répondre poliment encore et encore à ce type qui vient essayer toutes les combinaisons possibles pour peut-être trouver un accès là où il ne devrait pas. C’est ce qu’on appelle l’attaque par bruteforce.

Une solution efficace contre le bruteforce, c’est de fermer purement et simplement la porte d’entrée aux personnes qui n’ont pas à y accéder. C’est une bonne solution pour assurez une meilleure sécurité pour une boutique en ligne ou un site d’entreprise avec des informations sensibles. Dans cet article je vais vous expliquer comment le faire avec votre adresse IP.

Tout d’abord, il faut savoir que votre adresse IP peut vous être attribuée par votre FAI (adresse IP fixe) ou changer au cours du temps (adresse IP dynamique). Cela va dépendre de votre abonnement et vous pouvez consulter votre FAI pour le savoir. Ceci dit, de ce que j’ai constaté, les IP dynamiques changent rarement et peuvent rester les mêmes des mois voir des années, à moins d’éteindre votre internet box régulièrement.

C’est aussi parfaitement compatible avec un abonnement chez un prestataire VPN (de confiance!), ce qui est de plus en plus courant aujourd’hui. Vous pourrez donc choisir de prendre toujours le même serveur VPN (et donc la même adresse) pour vous ouvrir un accès direct, et chiffré sur votre réseau, entre votre ordinateur et votre site internet.

Je précise ceci parce qu’en suivant ce tutoriel, la partie de votre site internet que vous décidez de limiter, ne répondra alors qu’aux adresses IP que vous aurez saisies. C’est toutefois une solution viable si le changement de votre adresse est rare, parce qu’il suffit de modifier un fichier pour retrouver un accès complet à votre administration.

Tout d’abord, il faut connaître votre adresse IP externe pour pouvoir ensuite la noter dans les instructions suivantes à la place de ###.###.###.###. Pour faire ceci, vous pouvez vous rendre sur ce site internet : http://www.ifconfig.io/ et noter la valeur IP Address.

Pour la quasi totalité des hébergements, les sites internet fonctionnent avec Apache et c’est dans la configuration de ce système que nous allons agir ici. Pour cela, rendez-vous à la racine de votre site internet et ouvrez le fichier .htaccess ou créez-le si il n’existe pas encore.

Maintenant que c’est fait, voici ce que vous devrez ajouter à la fin de ce fichier dans les différents cas de figures:

Protéger l’administration de WordPress

Pour un site WordPress, nous pouvons simplement interdire l’accès au fichier wp-login.php ainsi qu’à xmlrpc (qui est un protocole très rarement utilisé et potentiellement une faille de sécurité).

<FilesMatch "^(wp-login)|(xmlrpc).php$">
 Require all denied 
 Require ip ###.###.###.### #votre adresse IP
 Require ip ###.###.###.### #une seconde adresse IP
 Require local 
</FilesMatch>

 

Protéger un répertoire ou l’administration de Prestashop

Nous pouvons limiter l’accès à un répertoire privé ou protéger l’administration de Prestashop. En l’occurrence, il s’agit du répertoire dont le nom est le même que le chemin d’accès que vous utilisez pour accéder à l’administration de votre boutique en ligne.
(par ex. https://www.monecommerce.com/admin1234 -> dossier admin1234 situé à la racine de votre hébergement)

Vous pouvez donc adapter le code qui suit:

<LocationMatch "^/admin1234">
 Require all denied 
 Require ip ###.###.###.### #votre adresse IP
 Require ip ###.###.###.### #une seconde adresse IP
 Require local 
</LocationMatch>

ou dans le cas d’un sous-répertoire privé par exemple:

<LocationMatch "^/repertoire/prive">
 Require all denied 
 Require ip ###.###.###.### #votre adresse IP
 Require ip ###.###.###.### #une seconde adresse IP
 Require local 
</LocationMatch>

 

Protéger un script ou un fichier

Vous pourriez aussi vouloir protéger un script en particulier.

<FilesMatch "^index.php$">
 Require all denied 
 Require ip ###.###.###.### #votre adresse IP
 Require ip ###.###.###.### #une seconde adresse IP
 Require local 
</FilesMatch>

 

Explication du code

FilesMatch et LocationMatch indiquent respectivement le fichier ou le dossier sur lesquels l’instruction doit être active. Require all denied signifie qu’on souhaite y bloquer tout accès, Require ipajoute une exception pour l’adresse IP mentionnée et Require localindique qu’on accepte les connexions locales (c’est à dire le serveur lui-même, ce qui est facultatif mais peut être nécessaire pour des outils dans certains hébergements).

 

Pour ne pas rendre trop confus cet article j’ai préféré vous indiquer des solutions simples, mais c’est à savoir que vous pouvez placer un fichier .htaccess sous n’importe quel répertoire de votre site, ce qui le rendra actif uniquement pour le contenu de ce dossier. Par exemple, placer ce dernier exemple ci-dessus dans le répertoire d’administration « admin1234 », aurait le même effet que l’exemple précédent de Prestashop puisqu’il bloque l’accès sur n’importe quel fichier sous ce répertoire dont le nom est « index.php », et donc /admin1234/index.php qui affiche l’administration.

Vous avez maintenant un accès uniquement attribué à votre IP et votre site est maintenant protégé d’attaques potentielles. Ceci dit, il s’agit bien sûr d’une solution parmi d’autres et aucune solution n’est parfaite. En matière de protection de site web, il existe tout un panel de possibilités pour renforcer la sécurité pour différentes techniques de piratage de site: les vulnérabilités de CMS mais aussi de frameworks comme Laravel par exemple, les attaques par injection SQL, les failles de sécurité et donc le bruteforce dont nous avons parlé ici.

À propos, tant que vous êtes encore sur ce fichier .htaccess, j’ai écrit un autre article qui peut vous intéresser ! En effet, il arrive qu’un document qui ne devrait pas être consultable par tout le monde, puisse atterrir sur un site web, j’ai une solution toute prête pour vous protéger de ce cas de vulnérabilité et elle se trouve ici :  Protéger vos documents d’un accès depuis internet.

Voilà ! Si vous avez besoin d’assurer une sécurité optimale pour votre site ou boutique en ligne, d’un dépannage ou d’un audit de sécurité, n’hésitez par à prendre contact ou à consulter les offres de maintenance et même d’hébergement. C’est avec plaisir que nous trouverons la solution la plus sûre et la plus efficace pour vous !