S B W E B A G E N C Y

Le digital au service de votre métier ...

Limitation accès url par authentification basique "Basic Auth" et filtrage IP - SB WebAgency : Le digital au service de votre métier

mise en place d'une authentification basique "auth basic"

Limitation accès url par authentification basique “Basic Auth” et filtrage IP

Prérequis : avoir un accès ssh au serveur / sur un serveur Apache 2.4 ou 2.2

Nous disposons très souvent des zones sensibles sur nos sites, c’est le cas des urls de connexion administration site. Sur le CMS WordPress c’est très souvent l’url www.domaine-de-monsite.fr/wp-admin/ et la quasi totalité des CMS disposent d’une url d’administration.

L’authentification basique permet d’ajouter un niveau de difficulté supplémentaire formulaire de connexion administration rendant l’accès a ce dernier un peu plus complexe. L’authentification basique ou Basic Auth rajoute un formulaire d’authentification supplémentaire nom d’utilisateur et mot de passe avant d’accéder à la page de L’URL protégé (par exemple une url d’admin).

La mise en place de l’authentification basique “Basic Auth” est très simple sur un serveur Apache si vous avez un accès ssh.

Une fois connecté en ssh sur votre serveur (ssh votre-nom-d-utilisateur@nom-de-domaine-du-serveur.fr), vous devriez créer le fichier qui va contenir l’ensemble des utilisateurs (et les mots de passe) pouvant se connecter sur le formulaire de l’authentification basique “basic auth” avec la commande htpasswd.

htpasswd -c le-nom-de-votre-fichier-utilisateur.htpasswd nom-utilisateur

le-nom-de-votre-fichier-utilisateur.htpasswd => votre choix de nom est libre

nom-utilisateur => votre choix de nom d’utilisateur est libre

-c : option création

htpasswd : commande shell pour créer les utilisateurs de l’authentification basique et leur mot de passe.

Une fois le fichier htpasswd créé, vous pouvez ajouter de nouveaux utilisateurs et ou procéder à la mise à jour du mot de passe des utilisateurs existant avec la commande ci-dessous :

htpasswd le-nom-de-votre-fichier-utilisateur.htpasswd nom-utilisateur

La seule différence entre les deux commandes htpasswd ci-dessous est l’option -c (création).

La dernière étape consiste a modifier le fichier Vhost (fichier de configuration des sites dans Apache) du site dont vous souhaitez protéger une url.

Généralement dans les fichiers Vhost situe dans le répertoire /etc/apache2/sites-available/, il y’a une directive Directory en plus de ServerAdmin, ServerName, ServerAlias, DocumentRoot pour configurer l’accessibilité à un site web sur le serveur apache.

Pour mettre en place l’authentification basique, il faut ajouter une nouvelle directive Directory avec les directives AuthType, AuthUserFile, AuthName et RequireAny comme suit :

<Directory /var/www/repertoire-votre-site/repertoire-a-proteger>       
        #type d'authentification                                                                                                                                                                  
        AuthType Basic
        #chemin du fichier htpasswd crée précédemment
        AuthUserFile /var/www/sites.htpasswd 
        #un nom pour notre configuration Basic Auth
        AuthName "Protected gestion and admin Area"                                                                                                                                                                                
    <RequireAny>
        # Filtre des Adresses IP Authorisées                                                                                                                                                                                          
        Require ip 2.12.54.5
        # Autorisation des utilisateurs valides après authentification
        Require valid-user                                                                                                                                                                                                 
    </RequireAny>
</Directory> 

Le code ci-dessus est commenté, avec des explications de chaque ligne. Les informations qui peuvent être adaptées à votre configuration sont :

  • Le chemin (url) de votre repertoire à proteger dans la directive Directory /var/www/repertoire-votre-site/repertoire-a-proteger
  • Le chemin (url) du fichier des utilisateurs htpasswd dans la directive AuthUserFile /var/www/sites.htpasswd
  • La valeur de la directive AuthName
  • Require ip dans la directive RequireAny. Vous pouvez préciser ici la liste des adresses ip publique qui peuvent accéder à l’url protégée sans authentification basique “Basic Auth” (les ip doivent être séparées par des espaces).

Pour activer la prise en charge de vos modifications sur le serveur, exécuter la commande ci-dessous :

service apache2 reload 
ou 
systemctl reload apache2

L’authentification basique “basic auth” peut être mise en place avec le fichier .htaccess et aussi avec tous les serveurs web populaires notamment Nginx.

N’hésitez pas à complexifier les mots de passe des utilisateurs du fichier htpasswd.

laissez un commentaire