lunes, 25 de julio de 2011

PROTEGER DIRECTORIOS DE UN SERVIDOR APACHE


Para proteger un directorio con usuario y contraseña en nuestro servidor apache hay que generar 2 archivos: .htaccess y .htpasswd 
Son 2 archivos de texto plano.
El primero establece el tipo de permiso y los usuarios que pueden acceder. Tiene que ir dentro de la carpeta a proteger. Tienen un punto delante puesto que en linux asi se ocultan los ficheros al hacer un simple "ls".
El segundo guarda el nombre de los usuarios y sus contraseñas encriptadas
.htaccess
Forma basica del archivo .htaccess puede ser:
AuthUserFile /path/absoluto/fuera/de/web/de/.htpasswd
AuthName Mensaje_a_mostrar_sin_espacios
AuthType Basic

require user usuario_autorizado
NOTAS:
  1. Hay que indicar la ruta absoluta al archivo .htpasswd
  2. Por seguridad que dicho archivo quede fuera de lo que se ve en la web
  3. Por seguridad también ponerle otro nombre.
  4. En los servicios de hosting suelen crear un directorio .htpasswd donde, en teoría poner dichos archivos. No es obligatorio usarlo.
  5. si deseamos poner mas de un usuario simplemente añadirlo así:

require user usuario_autorizado admin otro_tb_autorizado
O permitir el acceso a todos los usuarios del fichero .htpasswd:
require valid-user
.htpasswd
Este fichero tiene la lista de pares nombre:password autorizados por cada linea. La password va encriptada:
usuario_autorizado:]A/8syUggG3mv5a1
Para generar la contraseña encriptada en el fichero htpasswd ejecutamos en consola :
htpasswd -nb usuario contraseña
El usuario:passwd que nos muestra debemos copiarlo en el fichero .htpasswd
Finalmente
Una vez copiado el .htaccess en la carpeta o carpetas a proteger y el .htpasswd (con otro nombre) en la ruta deseada fuera del alcance web, veremos que al intentar entrar en dicha carpeta nos hacen la peticion de usuario y password.

1 comentario: