Pregunta ¿Qué hace realmente el "Requerir todo otorgado" de Apache?


Acabo de actualizar mi servidor Apache a Apache / 2.4.6 que se ejecuta en Ubuntu 13.04. Solía ​​tener un archivo vhost que tenía lo siguiente:

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

Pero cuando lo ejecuté obtuve un mensaje "Prohibido. No tienes permiso para acceder /"

Después de hacer un poco de googlear, descubrí que para hacer que mi sitio volviera a funcionar, necesitaba agregar la siguiente línea "Requerir todo otorgado" para que mi vhost se pareciera a esto:

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

Quiero saber si esto es "seguro" y no presenta ningún problema de seguridad. Leo en apache página que esto "imita la funcionalidad que fue proporcionada anteriormente por las directivas 'Permitir de todos' y 'Denegar de todas'. Este proveedor puede tomar uno de los dos argumentos que son 'concedidos' o 'denegados'. Los siguientes ejemplos otorgarán o denegarán Acceso a todas las solicitudes.

Pero no dijo si este era un problema de seguridad de algún tipo o por qué ahora tenemos que hacerlo cuando en el pasado no tenía que hacerlo.


81
2017-10-29 21:51


origen


Los documentos de actualización explican los cambios de 'Control de acceso' en detalle. httpd.apache.org/docs/2.4/upgrading.html - John Magnolia


Respuestas:


La configuración de control de acceso cambió en 2.4, y las configuraciones antiguas no son compatibles sin algunos cambios. Ver aquí.

Si tu antigua configuración era Allow from all (no hay direcciones IP bloqueadas para acceder al servicio), entonces Require all granted Es el nuevo funcional equivalente.


81
2017-10-30 02:31



Sin mencionar, el método antiguo era terriblemente confuso y hacía mucho tiempo que debía ser reemplazado por algo más sensato. - Michael Hampton♦
Para un cambio tan importante, esperaría algún tipo de soporte para migrar automáticamente los archivos de configuración o al menos mostrar todos los puntos donde se necesita un cambio. - Wolfgang Fahl
Sería bueno ver una demostración de trabajo de Require all denied . - Kraang Prime
No creo que esto sea equivalente a Allow from all. Tienes que "fusionar" Require all granted con otro existente Require reglas. En mi caso una existente. Require valid-user se ignoró al convertir a ciegas la configuración como se recomienda en todas partes. Esto fue lo peor que pudo pasar ... - rudimeier
Sería bueno tener una respuesta adecuada a la pregunta del OP. "Permitir de todo equivalente" no es muy satisfactorio. - Sharcoux


Sé que es una publicación antigua, pero creo que puede ayudar más con un ejemplo funcional que siempre uso.

En apache 2.2 sería como:

    <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>

En apache 2.4 sería como:

   <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>

Se cuidadoso  cuando se utiliza la autenticación htacess, esta nueva sintaxis puede hacer algo cosas malas e inesperadas, si ese es tu caso por favor lee: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user y deberias estar bien!


9
2017-12-08 12:02