Proteger un sitio web con contraseñas desde Apache.

Proteger un sitio web con contraseñas desde Apache.

Aunque podemos utilizar Allow y Deny en los Directory para permitir y denegar el acceso a la web, el servidor web Apache ofrece un mecanismo para proteger un directorio de nuestro sitio web de modo que sea necesario introducir un usuario y contraseña para acceder a las páginas que contiene. En este artículo se expone la manera de configurar el servidor para conseguir este objetivo.

Para ello, debemos crear un fichero “.htpasswd” (nota: el primer carácter es un punto)  en un directorio  de nuestro servidor que no sea accesible mediante una url (En el ejemplo var/www/prueba/.htpasswd”). Este fichero contendrá los usuarios definidos y sus contraseñas.

A continuación, creamos un fichero llamado “.htaccess” en el directorio que deseamos proteger, con el siguiente contenido:

 

AuthUserFile /ubicacion/de/.htpasswdAuthName «Introduzca su usuario y clave de acceso»AuthType Basic

require valid-user

Creación del fichero .htaccess

Este fichero se puede crear y actualizar con el comando ‘htpasswd’ que viene con el servidor apache.

Ejemplo: para crear un fichero .htpasswd que contenga un usuario llamado antonio:

123

4

5

6

7

# htpasswd -c .htpasswd antonioNew password: (teclear la contraseña. No se visualiza en pantalla)Re-type new password: (volver a teclear la contraseña)

Adding password for user antonio

# cat .htpasswd

antonio:W.jkhNqiOt3uw

Como vemos, el fichero .htpasswd creado es un fichero de texto que contiene una única línea con el nombre de usuario y la contraseña encriptada, separados por el carácter “:”

Una vez creados los ficheros .htpasswd y .htaccess, al intentar acceder a una url contenida en el directorio en donde se encuentra el fichero .htaccess, el servidor web nos solicita que nos validemos:

 

 

Para que el procedimiento de acceso descrito en este artículo funcione correctamente, el directorio debe disponer del permiso “AuthConfig”. Este permiso se otorga en el fichero de configuración de apache (en una instalación por defecto, el fichero de configuración se encuentra en /etc/apache2/httpd.conf).

En dicho fichero, se puede conceder explícitamente a un directorio el permiso AuthConfig mediante las directrices:

1

2

3

<Directory /directorio/protegido>

AllowOverride AuthConfig

</Directory>

 

 

Pero, si se tiene acceso al fichero de configuración del servidor apache, lo más sencillo puede ser prescindir completamente del fichero .htaccess, y poner toda la configuración en el fichero de configuración del servidor:

1

2

3

4

5

6

<Directory /var/www/prueba>

AuthUserFile /ubicacion/de/.htpasswd

AuthName «Introduzca su usuario y contraseña»

AuthType Basic

require valid-user

</Directory>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *