Restringir el acceso dependiendo de la variable de entorno

Restringir el acceso dependiendo de la variable de entorno

Intentando ser inteligente y permitir el acceso dependiendo de una variable de entorno. No parece funcionar (no hay errores, la expresión siempre es falsa).


Lo que probé:

<VirtualHost *:80>

  ...

  <Directory /var/www/html>
    Options       Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order         allow,deny

    <If "reqenv('ENVIRONMENT_STATE') == 'dev'">
      allow from 1.22.333.0/24
      deny from all
    </If>
    <Else>
      allow from all
    </Else>
  </Directory>
</VirtualHost>

Comportamiento esperado:

Si ENVIRONMENT_STATEestá configurado en 'dev', restringirá todo el acceso excepto el de la IP mencionada.


Fuentes:

http://httpd.apache.org/docs/2.4/mod/core.html#else
https://httpd.apache.org/docs/2.4/expr.html

Respuesta1

Usaría el archivo .htaccess para restricciones de IP. Las razones son:

  • Puedes controlarlo en origen.
  • No es necesario reiniciar el servidor al agregar o eliminar direcciones IP.
  • Si accidentalmente se bloquea, siempre puede ingresar por FTP y editar el archivo para restaurar el acceso.

Mira estopreguntapara un ejemplo.

información relacionada