htpasswd autenticación apache authentication basic-authentication

htpasswd - Autenticación básica de Apache, excepto para aquellos permitidos



autenticación en apache (4)

Así es como se hace para Apache 2.4+ (ya que Satisfy Any ya no es compatible).

<Directory /var/www/files/> AuthType Basic AuthName "Please enter your username and password" AuthUserFile /var/www/files/.htpasswd <RequireAny> Require ip 22.33.44.55 Require valid-user </RequireAny> </Directory>

Si desea <RequireAny> tanto la dirección IP -y- Login / Contraseña, cambie <RequireAny> a <RequireAll>

Espero que esto ayude a alguien, ya que me tomó un tiempo darme cuenta.

Problema: Tengo algunos archivos en / var / www / files / que quiero que se acceda desde direcciones IP específicas SIN requerir usuario / contraseña. Sin embargo, me gustaría que cualquier otra dirección IP DEBE requerir inicio de sesión para obtener acceso.

Esto está en mi httpd.conf:

<Directory /var/www/files/> Order deny,allow Deny from all Allow from 192.168 AuthUserFile /etc/apache2/basic.pwd AuthName "Please enter username and password" AuthType Basic Require user valid-user </Directory>

Pero, si lo entendí correctamente, esto significa que cualquier cliente que provenga de 192.168. * Tendrá acceso a ese directorio, PERO requerirá que un usuario válido vea su contenido. Y cualquier otra dirección IP será denegada. ¿derecho?

Gracias de antemano.


Si su servidor está detrás de un proxy, no puede confiar directamente en el Require ip . Sin embargo, puede usar el Require env :

<Directory /var/www/files/> AuthType Basic AuthName "Please enter your username and password" AuthUserFile /var/www/files/.htpasswd SetEnvIF X-Forwarded-For "22.33.44.55" AllowIP <RequireAny> Require env AllowIP Require valid-user </RequireAny> </Directory>

La fuente de la idea


editar : esto puede ser aceptado como respuesta, pero viejo. Para las nuevas instalaciones de Apache, use la respuesta de Brians aquí

Agregue esto: Satisfy Any (lo que significa que cualquiera de esos 2 debe pasarse).

Y la sintaxis es:

Require valid-user

O:

Require user <userid>


SetEnvIF X-Forwarded-For "192.168.135.159" AllowIP SetEnvIF X-Forwarded-For "192.168.135.135" AllowIP AuthType Basic AuthName "admin" AuthUserFile "/var/www/domain.com/cms/.htpasswd" <RequireAll> Require env AllowIP require valid-user </RequireAll>

También compruebe muchas variantes. este código funciona con la versión 2.4 de apache 100%