Vous utilisez peut-être le module proxy d'Apache (mod_proxy) comme reverse proxy. Il permet de rendre accessible des pages web situées sur des machines sans les exposer directement.

Voyons comment transposer les directives Apache 2.2 vers 2.4 au travers d'exemples pratiques.

Pourquoi migrer ?

Suite au passage de la version d'Apache 2.2 vers 2.4 les directives ont changé. Certes elles sont rétrocompatibles, mais autant passer sur la nouvelle syntaxe, radicalement différente.

Apache 2.4 est nativement proposé dans les dépôts de Debian 8.x, ainsi que dans de nombreuses distributions. La branche Apache 2.2 continue d'être maintenue jusqu'en Juin 2017 et les patchs de sécurité jusqu'en décembre 2017. En clair, il est temps de passer sur Apache 2.4, sorti en 2012 (2.2 sortait en 2005!).

Pour la migration sous Debian un "simple" apt-get dist-upgrade vous fera passer de 2.2 à 2.4. Avant pensez aux backup (snapshot) et travaillez plutôt sur un clone que sur la prod', n'est-ce pas...

Ce qui change

Avant de vous lancer prenez connaissance de ce document résumant les évolutions et changements.

Avec Apache 2.4 de nouveaux mécanismes de contrôle d'accès impactent l'ordre dans lequel les directives d'autorisations sont appliquées. Le module mod_access_compat assure la rétrocompatibilité avec les anciennes configurations, mais Apache déconseille vivement de mélanger d'anciennes directives et de nouvelles. Ce module est là pour assurer la transition et évitez la prise de tête en cas de mise à jour de Apache 2.2 vers 2.4 pour assurer la continuité de service.

Exemple de configuration Apache 2.2

Pour faciliter la compréhension je vous donne un exemple de configuration que j'ai utilisé avec Apache 2.2. Ce fichier est stocké sur une distribution Debian dans /etc/apache2/mods-available/proxy.conf

Cet exemple autorise toutes les connexions sauf les plages internes définies dans la RFC1918. Ceci pour éviter du trafic interzone DMZ inutile. En effet si les machines sont situées sur le même réseau que la machine cible il est inutile de faire transiter ces flux via le pare-feu.

Exemple de configuration Apache 2.4

Voici l'équivalent pour Apache 2.4 :

Si j'ai besoin d'autoriser une machine dans la plage à accéder à la proxification c'est assez simple :

Les directives sont bien plus explicites dans les "allow, deny" et l'ordre interprétation que j'ai toujours trouvé imbuvable.

Ah oui vous pouvez aussi afficher le contenu d'une page pour l'erreur 403 plutôt qu'un message :

Ceci fonctionne en 2.2 et 2.4. Vous devrez stocker la page à la racine de votre répertoire www (/var/www/html par défaut).

2 alias

Petit bonus pour Debian 8, j'utilise deux alias pour éditer rapidement le contenu du proxy.conf, à placer dans ~/.bashrc :

Et n'oubliez pas de tester votre configuration avant de un fâcheux restart :

A vos MàJ, partez !

Doc Apache : authentification et autorisation, authentification et autorisation

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter