Apache 2.4 : autoriser l’accès depuis une adresse IP avec « Require ip »
I. Présentation
Le serveur web Apache vous offre la possibilité de protéger l'accès à certains dossiers en appliquant un filtrage au niveau de l'adresse IP source de l'ordinateur qui se connecte. Cela permet de protéger à l'accès à des adresses ou fichiers sensibles.
Avant Apache 2.4, on utilisait la directive "Allow from" suivie des adresses IP, le tout précédé par la directive "Deny from all". Depuis Apache 2.4, la syntaxe a évoluée, nous allons voir cela ensemble dans ce tutoriel.
II. Apache 2.4 et Require ip
Avant la sortie d'Apache 2.4, une restriction sur une adresse IP était possible grâce à la directive "Allow from" précédée par "Deny from all", ce qui permettait de refuser tous les accès, puis d'autoriser uniquement certaines IP.
Ce qui nous donne, par exemple :
<Directory "/var/www/perso"> Order deny,allow Deny from all Allow from 14.14.14.14, 50.50.50.50 </Directory>
Désormais, si l'on veut avoir un équivalent pour Apache 2.4, il faudra utiliser "Require all denied" pour refuser toutes les requêtes. Puis, en remplacement de "Allow from", nous utiliserons "Require ip" suivi des adresses IP à autoriser.
Ce qui nous donne :
<Directory "/var/www/perso"> Require all denied Require ip 14.14.14.14 50.50.50.50 </Directory>
Grâce à ces deux lignes, cela vous permet de gérer le contrôle d'accès sur Apache pour sécuriser l 'accès à certaines ressources 😉
Si vous souhaitez autoriser, non pas une adresse IP, mais un hôte, alors utilisez "Require host" à la place de "Require ip". Par exemple :
<Directory "/var/www/perso"> Require all denied Require host mon-serveur-01 ma-machine </Directory>
Enfin, pensez à redémarre le service httpd sous CentOS ou Apache2 sous Debian :
systemctl restart httpd
Si vous tentez d'accéder à une ressource protégée, vous obtiendrez un message de refus de la part d'Apache :