Mika A.

Restriction IP sur l'administration Drupal dans htaccess

January 16, 2015

Pour des raisons de sécurité, il est fréquent de limiter l’accès à l’administration d’un site depuis certaines adresses IP uniquement. Une manière simple d’effectuer cela est d’jouter la restriction dans le fichier .htaccess. Pour le cas de Drupal, nous allons filtrer l’accès aux URL admin/*en ajoutant les lignes suivantes au début du fichier .htaccess :

 order allow,deny
 SetEnvIf Request_URI "^(?!/admin)" allow
 allow from env=allow
 allow from X.X.X.X
 allow from Y.Y.Y.Y
 allow from Z.Z.Z.Z

Voyons rapidement ce que signifie ces instructions : order allow,deny Cette ligne indique l’ordre de traitement de la validation d’accès. SetEnvIf Request_URI "^(?!/admin)" allow Nous initialisons une variable allowquand l’url auquel accède l’utilisateur ne commence pas par admin. allow from env=allow Quand la variable allow est définie, l’accès est autorisée.   allow from X.X.X.X Enfin, nous listons les IP qui ont le droit d’accéder à l’administration. Pour chaque page, Apache va donc vérifier si une des conditions d’accès allow fromci-dessus est satisfaite. Si aucune ne répond aux critère, Apache applique alors un deny sur l’URL et la page affiche le message 403 Forbidden. En résumé, cette solution est simple et permet d’assurer une sécurité supplémentaire sur l’accès à l’administration d’un site Drupal. Il y a plusieurs amélioration possibles cependant, comme l’utilisation d’une page 403 “stylée” ou l’affichage d’un message personnalisé. Cette solution peut cependant ne pas convenir pour certains cas d’utilisation comme un administrateur “nomade” qui se déplace souvent par exemple. Ou dans le cas où un reverse proxy est utilisé sur le serveur. Il existe également des modules Drupal qui permettent d’avoir un comportement similaire comme Restrict IP


Written by @mikaoelitiana who lives and works in Paris, building useful things with React, Typescript and more.Follow me on Twitter or Github