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

# vi /var/www/mi_web/administracion/.htaccess

Insertamos lo siguiente en el archivo .htaccess

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

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.

# cd /home/pedro/
#touch .htpasswd

Con el comando htpasswd creamos usuarios para archivos de autenticación. El comando permite varios modificadores.
El uso básico es el siguiente:

# htpasswd .htpasswd usuario_pepito
New password:
Re-type new password:
Adding password for user usuario_pepito

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

# htpasswd -bc /home/pedro/.htpasswd usuario_pepito xxxx 

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:

# more /home/pedro/.htpasswd
usuario_pepito:dDYIlDNOpNcX2

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

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

5 opiniones 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

  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

  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 ! !

Deja un comentario

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