Apache: permitir acceso a un directorio con autenticación para una IP / CIDR

ApacheEn su día, en el artículo de trucos sobre .htaccess vimos como configurar la autenticación (solicitando usuario y password) para un directorio dentro de un website (o para el website completo). En este caso lo que vamos a hacer es proteger un directorio pero excluir una IP o rango CIDR para que pueda acceder al mismo saltando esta protección.

Partimos de la base de que tenemos configurado en nuestro website, dentro del fichero .htaccess (o a nivel de virtualhost) la autenticación para todos los usuarios:

AuthType Basic
AuthName “Prompt”
AuthUserFile /var/webs/test.com/.htpasswd
Require valid-user

Ahora queremos que todos los visitantes se autentiquen excepto los que provengan de la IP 192.168.1.128:

AuthType Basic
AuthName “Prompt”
AuthUserFile /var/webs/test.com/.htpasswd
Require valid-user
Order allow,deny
allow from 192.168.1.128
satisfy any

La directiva satisfy any permite, tanto para la autenticación como el acceso, que en el momento que se cumpla uno de los requerimientos se permita la petición, haciendo así bypass de la autenticación. Si por el contrario, se quisiera que se cumplieran todos los requerimientos para acceder usaríamos satisfy all.

Podríamos tambien permitir rangos completos, denegar a IPs o CIDR, etc

allow from 192.168.1
allow from 192.168.1.0/24
...

Un comentario en “Apache: permitir acceso a un directorio con autenticación para una IP / CIDR

Comments are closed.