Proteger una zona de nuestra web solicitando usuario y contraseña
Este texto pretende mostrar los pasos que seguí para protejer una serie de de directorios con la combinación .htpassd y .htaccess.
Necesitaremos
- Servidor Apache corriendo
- Un editor de texto
- Esta receta :-D
Importante: debemos tener acceso al directorio del servidor para subir los archivos .htaccess y .htpasswd.
Receta
Básicamente este documento está basado en ésta web, pero agrega algo que allí no se menciona y que me hizo doler bastante la cabeza :-P.
Creamos nuestro archivo con las claves encriptadas, para ello ejecutamos el siguiente comando:
fernando@www.aulasur.com.ar:/directorio/secreto/inaccesible$ htpasswd -c .htpasswd nombre_usuario
El /directorio/secreto/inaccesible es una ubicación dentro de nuestra máquina, no necesariamente accesible via web. La opción -c indica que es la primera vez que creamos el archivo, luego no la usaremos más. Debemos reemplazar el "nombre_usuario" por el usuario que queremos. Luego, por cada usuario, haremos:
fernando@www.aulasur.com.ar:/directorio/secreto/inaccesible$ htpasswd .htpasswd nombre_usuario2
fernando@www.aulasur.com.ar:/directorio/secreto/inaccesible$ htpasswd .htpasswd nombre_usuario3
....
fernando@www.aulasur.com.ar:/directorio/secreto/inaccesible$ htpasswd .htpasswd nombre_usuarioN
Con nuestro editor de texto preferido, creamos un archivo llamado .htaccess, y lo ubicamos en el directorio que queremos proteger, en nuestro caso /var/www/protegido
AuthUserFile /directorio/secreto/inaccesible/.htpasswd
AuthGroupFile /dev/null
AuthName AQUI PONER EL NOMBRE DEL RECURSO COMPARTIDO
AuthType Basic
require user nombre_usuario nombre_usuario3 nombre_usuarioN
Aquí AuthUserFile /directorio/secreto/inaccesible/.htpasswd le damos la ruta a nuestro .htpasswd y en require user nombre_usuario nombre_usuario3 nombre_usuarioN le decimos al Apache qué usuarios pueden acceder al recurso.
A tener en cuenta
- En mi /etc/apache/httpd.conf tenía la opción AllowOverride en none y tuve que cambiarla por all, quedando de esta manera:
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride all
Una vez que realizamos este cambio (esto era lo que no estaba en la web original!) reiniciamos Apache:
fernando@www.aulasur.com.ar:# invoke-rc.d apache restart
- Por cada directorio que queremos protejer debemos crear un .htaccess.
- Tambien podemos ir agregando usuarios a nuestro .htpasswd a medida que sea necesario.
- Para dar acceso a un usuario a una parte de nuestra web, sólo debemos agregarlo en el .htaccess de nuestro directorio, en la sección:
require user nombre_usuario nombre_usuario3 nombre_usuarioN ULTIMO_USUARIO_AGREGADO
Bueno, creo que eso era todo... dudas o preguntas en el foro!
Espero sea útil, saludos!
Mi empresa: NiuX.

No hay comentarios.:
Publicar un comentario