Restrictions d’accès dans Apache 2.4

Apache 2.4 lorsqu’il est arrivé a amené avec lui toute une série de bouleversements dans sa configuration. Certaines directives ont changé de nom et des règles ne s’écrivent plus du tout comme dans le vénérable Apache 2.2. Si vous aviez mis en places des restrictions d’accès vous pouvez vous retrouver chamboulés, je vous aide à y voir plus clair.

Restrictions sur les répertoires

Les restrictions sur les répertoire se font en partie grâce à la directive <Directory> qui permet de définir le répertoire dont on parle comme par exemple:

<Directory /var/www/html>

Puis à l’intérieur on va définir nos règles à l’aide de l’instruction Require.
Par exemple pour définir l’accès a un répertoire comme autorisé pour une seule ip on va lui dire qu’il autorise pour l’IP A.B.C.D mais qu’il interdit pour toutes les autres. Voici ce que ça donne:

Require all denied
Require ip A.B.C.D.

C’est assez différent de l’ancienne syntaxe mais c’est aussi beaucoup plus compréhensible pour les humains. L’ordre des instructions est très important on commence du plus restrictif au moins restrictif. Ici d’abord on interdit tout puis on autorise une IP en particulier.

Restriction sur les fichiers

Dans cette nouvelle version j’utilise pour ma part la directive qui en gros veut dire « tout les fichiers ressemblant à: » Donc par exemple pour interdire l’accès aux fichiers jpg:
<FilesMatch "^.*\.jpg$">
Dans le cas d’un fichier particulier cela marche aussi:
<FilesMatch "login.php">
Et pour la restriction d'accès cela fonctionne comme pour les répertoires:
<FilesMatch "login.php">
Require all denied
Require ip A.B.C.D

Il suffit de construire les expressions régulières que vous voulez et qui correspondent à votre besoin.

Et voilà ! Assez simple finalement mais cela peut être très utile pour renforcer la sécurité de vos applications.