¿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. 

  • 0 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Related Articles

Configurar una página web por defecto - Directory Index (Windows)

En el siguiente tutorial, veremos cómo podemos configurar cuál será el archivo por defecto al...

Redirección 301 mediante .htaccess (Linux)

Creamos un archivo .htaccess con el siguiente contenido, para hacer una redirección 301 de...

Modo de ejecución de PHP: FastCGI

Existen varias formas de ejecutar PHP. Desde el panel de control Plesk, podemos seleccionar...

Configurar una página web por defecto - Directory Index (Linux)

En el siguiente tutorial, veremos cómo podemos configurar cuál será el archivo por defecto al...

Migraciones: cómo previsualizar un dominio antes de cambiar los DNS

Para previsualizar un dominio, un este tutorial vamos a recurrir al archivo hosts. Este archivo...