Reescritura de ACL de Apache2.4 2.2
Servidor
Published: 2021-02-02

Notas que he hecho personalmetne en el pasado.
Con Apache 2.4, también se puede configurar ACL con Allow Deny utilizando mod_access_compat.

Reescritura de ACL de Apache2.2 a 2.4

Permitir todo

  • Apache 2.2
<Directory "/home/www">
    Order allow,deny
    Allow from all
</Directory>
  • Apache 2.4
<Directory "/home/www">
    Require all granted
</Directory>

Denegar todo

  • Apache 2.2
<Directory "/home/www">
    Order deny,allow
    Deny from all
</Directory>
  • Apache 2.4
<Directory "/home/www">
    Require all denied
</Directory>

Permitir una dirección IP específica

  • Apache 2.2
<Location /admin>
  Order allow,deny
  Deny from all
  Allow from 127.0.0.1
</Location>
  • Apache 2.4
<Location /admin>
  Require ip 127.0.0.1
</Location>

En el caso de un nombre de host, se puede escribir como Require Host example.jp.

Limitaciones utilizando variables de entorno

  • Apache 2.2
<Location /admin>
  SetEnvIf User-Agent ^IamAdmin/0¥.1 admin_ok
  Order deny,allow
  Deny from all
  Allow from env=admin_ok
</Location>
  • Apache 2.4
<Location /admin>
  SetEnvIf User-Agent ^IamAdmin/0¥.1 admin_ok
  Require env admin_ok
</Location>

Permitir si se cumple alguna de múltiples condiciones

  • Apache 2.2
<Location /admin>
  Order deny,allow
  Deny from all
  Allow from 192.168.1
  Require group admin
  Satisfy any
</Location>
  • Apache 2.4
<Location /admin>
  <RequireAny>
    Require ip 192.168.1
    Require group admin
  </RequireAny>
</Location>

Además de RequireAny, también existe RequireAll, que se utiliza cuando se cumplen todas las condiciones.

Enlaces de referencia