Restringiendo acceso a website con .htpasswd

Esta mañana he tenido la necesidad de restringir el acceso a una determinada web mediante .htpasswd, lo cual no deja de ser un archivo de texto plano que contiene los usuarios y las contraseña cifradas que se pone a disposición de Apache para que solo permita el acceso a usuarios debidamente identificados.

Como normas de seguridad el archivo .htpasswd no debería guardarse en una carpeta publica de nuestro dominio, así como su nombre deberia modificarse para poner un poco mas complicado a usuarios no autorizados averiguar que nombre tiene el fichero (por ejemplo, podemos llamarlo .56hh7j)

Con el siguiente comando crearemos un nuevo archivo .htpasswd con nombre .56hh7j que se guardara en el directorio /home/usuario/ y que contendrá al usuario Robert. Hecho esto se nos preguntara dos veces la password del usuario.

htpasswd  -c /home/usuario/.56hh7j Robert

Si lo que deseamos es añadir un nuevo usuario al fichero debemos cambiar el parametro -c por el parametro -nb

htpasswd  -nb /home/usuario/.56hh7j Mike

Una vez creado el archivo .htpasswd debemos editar la configuración del archivo conf en Apache para que solicite el usuario y contraseña; en mi caso uso Centos 7 por lo que imaginemos que tenemos un archivo miweb.conf dentro de /etc/httpd/conf.d/ el cual editaremos para añadir las siguientes lineas

<Location />
AuthType Basic
AuthName "Protegido"
AuthUserFile /home/usuario/.56hh7j
Require valid-user
</Location>

Hecho esto reiniciamos Apache y ya deberia de funcionar.

systemctl restart httpd

Como explicación a las lineas que debemos indicar en el archivo .conf …

AuthType Basic indica que el tipo de autentificación es básico, lo cual significa básicamente que el usuario y la contraseña se transmiten en claro. Otra forma de autentificación es Digest la cual realiza la transmisión de forma cifrada.

AuthName «Protegido» es un campo totalmente personalizable. Cuando intentas entrar en la web protegida te aparece una ventana donde debes de introducir el usuario y contraseña. Ademas de eso te aparecerá «Protegido». Puedes cambiar este texto por lo que desees que se muestre.

AuthUserFile /home/usuario/.56hh7j es la ruta donde se encuentra el fichero .htpasswd

Require valid-user indica que se requiere un usuario valido, pero podríamos indicar también Require Robert por lo que solo se aceptaría como valido al usuario Robert o Require Robert Mike con lo que se aceptarían únicamente a Robert y a Mike.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.