Proteger carpeta con htaccess y .htpasswd

Una forma básica de ofrecer seguridad sobre directorios web en Linux es utilizando el archivo de Apache htaccess. Este se combina con el archivo .htpasswd, o como lo queramos llamar, para ofrecer seguridad y la posibilidad de denegar el acceso a carpetas o directorios que queremos ofrecer un nivel adicional de seguridad.

Para proteger, primero colocaremos el archivo oculto .htaccess en la raiz del directorio que queremos proteger.

Editando con nuestro editor preferido empezamos
[code]
# vi /var/www/mi_web/administracion/.htaccess
[/code]

Insertamos lo siguiente en el archivo .htaccess

[code]
AuthUserFile /home/pedro/.htpasswd
AuthName "Panel para identificar usuario"
AuthType Basic
require valid-user
[/code]

AuthUserFile indica donde se encuentra el archivo que contiene los usuarios y las contraseñas codificadas en md5 contra las que nos logearemos. Hay que indicar el path completo.

AuthName, es el titulo que contendrá la ventana emergente donde introduciremos las credenciales para logearnos y poder acceder a nuestra carpeta protegida.

en required, se puede poner valid-user, esta sentencia indica que cualquier usuario que aparezca en el archivo .htpasswd se puede logear o se puede poner directamente un usuario o serie de usuarios separados por espacios forzando así que usuarios son los permitidos.

Bueno ahora continuamos editando y creando nuestro archivo que contiene los usuarios que tendrán acceso.
[code]
# cd /home/pedro/
#touch .htpasswd
[/code]

Con el comando htpasswd creamos usuarios para archivos de autenticación. El comando permite varios modificadores.
El uso básico es el siguiente:
[code]
# htpasswd .htpasswd usuario_pepito
New password:
Re-type new password:
Adding password for user usuario_pepito
[/code]

O bien para hacerlo todo seguido creando usuario y contraseña todo desde tan solo una linea

Otro artículo de Interés:  RabbitVCS alternativa a TortoiseSVN para Linux. Soporta Subversion y Git

[code]
# htpasswd -bc /home/pedro/.htpasswd usuario_pepito xxxx
[/code]
El modificador-b es para que acepte la password que hemos metido después del usuario.
-c es para crear el fichero .htpasswd (o el que queramos definir), lo crea desde cero y sobre-escribe lo que haya. Cuidado con este modificador, si ya existe un fichero con usuarios.

Ahora si comprobamos el contenido del fichero con los usuarios disponibles para autenticación podremos ver lo siguiente:
[code]
# more /home/pedro/.htpasswd
usuario_pepito:dDYIlDNOpNcX2
[/code]

También se puede especificar reglas para proteger carpetas directamente desde un virtualhost

[code]
<Directory "/var/www/mi_web/administracion/">
AuthName "Panel para identificar usuario"
AuthType Basic
AuthUserFile /home/pedro/.htpasswd
require valid-user
</Directory>
[/code]

5 comentarios en «Proteger carpeta con htaccess y .htpasswd»

  1. Falto agregar algo pequeño, pero sin lo cual esto no funcionaría, y esto es ir a la configuracion del httpd y hacer el cambio a “AllowOverride”, el cual apache usa para determinar si debe buscar este tipo de proteccion o no, en el caso de que no este activa la anterior, y realicemos todo el procedimiento, pues sencillamente no funcionara.

    Saludos

    Responder
  2. Como el profesor que tengo es incompetente, lo preguntaré aquí

    porque cuando visualizo la carpeta con htpasswd le introduzco el usuario y pass creados me dice internal server error?
    tengo las mismas opciones en el con la ruta de la carpeta

    Responder
  3. Muchísimas Gracias Pedro ! !

    Como siempre, cuando tenemos alguna duda acudimos a tu Blog y además de encontrar lo que necesitamos rápidamente, funciona 100% a la perfección ;))

    Un Saludo desde Barcelona ! !

    Responder

Deja un comentario

Enable Notifications    Ok No thanks