137 votes

Que fait réellement l'option "Require all granted" d'Apache ?

Je viens de mettre à jour mon serveur Apache vers Apache/2.4.6 qui fonctionne sous Ubuntu 13.04. Avant, j'avais un fichier vhost qui contenait ce qui suit :

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
</Directory>

Mais quand je l'ai lancé, j'ai eu un "Forbidden. Vous n'avez pas la permission d'accéder à /"

Après avoir fait un peu de recherche sur Internet, j'ai découvert que pour que mon site fonctionne à nouveau, je devais ajouter la ligne suivante "Require all granted" de sorte que mon serveur virtuel ressemble à ceci :

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
    Require all granted
</Directory>

Je veux savoir si cela est "sûr" et ne pose pas de problèmes de sécurité. J'ai lu sur le site d'Apache page que cela "imite la fonctionnalité qui était auparavant fournie par les directives 'Allow from all' et 'Deny from all'. Ce fournisseur peut prendre l'un des deux arguments suivants : 'accordé' ou 'refusé'. Les exemples suivants accorderont ou refuseront l'accès à toutes les demandes."

Mais il n'a pas dit s'il s'agissait d'un problème de sécurité ou pourquoi nous devons maintenant le faire alors que ce n'était pas le cas auparavant.

113voto

Shane Madden Points 112034

La configuration du contrôle d'accès a changé dans la version 2.4, et les anciennes configurations ne sont pas compatibles sans quelques modifications. Voir ici .

Si votre ancienne configuration était Allow from all (aucune adresse IP n'est bloquée pour accéder au service), alors Require all granted est le nouvel équivalent fonctionnel.

28voto

Je sais que c'est un vieux post mais je pense que je peux aider davantage avec un exemple fonctionnel que j'utilise toujours !

Dans apache 2.2 ce serait comme :

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

Dans apache 2.4 ce serait comme :

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require ip myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>

Soyez prudent lors de l'utilisation de l'authentification htacess cette nouvelle syntaxe peut faire des choses mauvaises et inattendues Si c'est votre cas, lisez ce qui suit : https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user et vous devriez vous en sortir !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X