Mod_auth y apache2, poniendo password a tu sitio web

En ocasiones estamos desarrollando un proyecto y queremos tenerlo online o empezar a probarlo en nuestros servidores, pero sin que el gran público pueda acceder hasta que el sitio no esté completamente preparado.

Para requerir autenticación nos sirve el módulo del servidor Apache Mod_auth, que viene instalado y activado por defecto en todas las distribuciones GNU/Linux populares una vez hemos instalado Apache.

¿Cómo podríamos fácilmente poner contraseña a nuestro sitio web en construcción? Muy sencillo, aquí va una de las posible maneras.

Primero deberemos ver si el módulo mod_auth está habilitado. En Debian podemos cerciorarnos de este detalle si se encuentra mod_auth, auth_basic, o algún archivo de nombre parecido en /etc/apache2/mods-enabled (el directorio en otras versiones o en otras distros GNU/Linux podría ser modules.d).

En caso afirmativo, crearíamos un archivo .htaccess en el directorio del sitio que queremos cerrar (/srv/www/midominio.com) con contraseña con el siguiente contenido:

AuthType Basic

AuthName "Authentication required"

AuthUserFile /srv/www/midominio.com/.password

Require valid-user

Creo que las líneas son autoexplicativas. Tras esto bastaría con crear el archivo .password donde le hayamos dicho en la ruta anterior e introducir en este las tuplas del nombre de usuario y contraseña de la siguiente forma:

usuario1:$1$HmwZG55x$bC4F2/JUfEyl30K7.0ikl.

usuario2:$1$nZ1vx3dy$7D8r0fWEiynBbCUBsuJqs1

La contraseña va tras el nombre de usuario, y ambos están separados por dos puntos. La contraseña se puede generar fácilmente por consola con este comando (teniendo los paquetes para md5 de tu distribución instalados):

md5pass palabra

Donde palabra sería tu clave o password. Copiamos la salida del comando en el archivo .password al lado del nombre de usuario como he comentado anteriormente y listo. :-)

Javier Aguirre

Read more posts by this author.

comments powered by Disqus