944 063 154

¿Cómo proteger directorios con .htpasswd y .htaccess?

Si necesitas proteger un determinado directorio con usuario y contraseña, dispones de dos opciones: .htpasswd y .htaccess. El archivo .htaccess tiene múltiples funciones, entre las que se encuentra limitar el acceso a un directorio; mientras que .htpasswd permite almacenar los nombres de usuarios y sus contraseñas para cada una de las restricciones establecidas. Ten en cuenta que es .htaccess tiene que estar ubicado dentro del directorio que queremos proteger.

 

Configurar .htaccess

Para establecer restricciones en .htaccess deberás indicar algo similar a lo siguiente:

AuthUserFile /var/www/vhosts/dominio.com/private/.htpasswd
AuthName DirectorioProtegido
AuthType Basic
require user UsuarioDominio

Donde en cada línea deberemos indicar: 

  • AuthUserFile, la ruta absoluta del servidor que apunte al archivo .htpasswd, es decir, el lugar en el que se almacenarán los datos de accesos de los usuarios que podrán acceder al directorio protegido. Este archivo nunca debe ubicarse en una carpeta pública, como httpdocs o public, ya que expondría los datos de los usuarios y provocaría un grave problema de seguridad. En caso de que tenga que estar en un contenido público, modifica el nombre del archivo para que no pueda relacionarse con facilidad.
  • AuthName, para acceder al directorio a través de un navegador y donde se solicitará indicar un usuario válido y su contraseña. Para configurarlo, solo tienes que sustituir DirectorioProtegido por el directorio que necesites.
  • AuthType, para mostrar el tipo de autenticación.
  • Require user, donde se indicará el usuario que puede tener acceso al directorio. Si quieres añadir usuarios adicionales, podrás hacerlo en la misma línea separándolos por un espacio.

 

Configurar .htpasswd

Como hemos comentado, en este archivo se almacenan los usuarios con acceso al directorio protegido o los ficheros restringidos en .htaccess. Todos los datos que se almacenen en .htpasswd deben seguir la sintaxis usuario:contraseña, indicando siempre un usuario por línea. Ejemplo:

Usuario1:123456789
Usuario2:987654321

Si recurres al comando htpasswd en Apache las contraseñas estarán cifradas por defecto. También puedes modificar el archivo a través de SSH. Así, en caso de que quieras que se genere de forma automática el fichero o consultar datos del .htpasswd deberás ejecutar: 

htpasswd -nb UsuarioDominio contraseña

Si quieres escribir estos datos directamente en el archivo, deberás realizar lo siguiente: 

htpasswd -cb .htpasswd UsuarioDominio contraseña

Con el usuario .htpasswd creado y habiendo indicado cuál es el directorio protegido en .htaccess, dicho directorio solo estará accesible para los usuarios autorizados y sus claves de acceso. 

Artículos relacionados