Вы находитесь на странице: 1из 4

4 Servicio HTTP

Caso prctico b Autenticacin HTTP bsica en Apache2


Duracin: 30 min. Dificultad: media

Objetivos
Configurar un directorio, servido por Apache2, con autenticacin bsica, es decir, mediante el uso de credenciales.

Consideraciones
1. El servidor web Apache est instalado y configurado correctamente dentro del dominio servidor.aulaSER.com. 2. El administrador ha creado un directorio dentro de /var/www llamado directorio_privado, que se convierte en el objeto de la autenticacin bsica. 3. En el sistema existe tan solo el usuario alumno1, el nico que podr acceder al contenido de dicho directorio. 4. Se supone que la red, con equipos Windows XP y Ubuntu GNU/Linux del aula, funciona correctamente.

Autenticacin HTTP bsica El mdulo que controla este mtodo de autenticacin es mod_auth_basic. La operacin se lleva a cabo mediante el mtodo de codificacin Base64 (no encriptacin) que permite obtener la contrasea de cualquier usuario con Perl y haciendo uso de la funcin decode_base64. En el archivo /etc/apache2/sites-available/default o en el archivo relativo al host virtual correspondiente, habr que aadir un bloque <Directory>...</Directory> por cada directorio que se quiera proteger: <Directory "/var/www/directorio_privado"> AuthType Basic AuthName "Directorio privado" AuthUserFile /etc/apache2/passwd/.htpasswd Require valid-user </Directory> Donde: Directory: indica que las directivas siguientes actan sobre el directorio /var/www/privado y sus subdirectorios, de ah que estn protegidos. AuthName: nombre del dominio de autenticacin. Define el conjunto de recursos que estarn sujetos a los mismos requisitos. Tambin es el texto que aparecer en la ventana que solicita el nombre del usuario y la clave correspondiente e indica el nombre del dominio de autenticacin (realm). El navegador web lo utiliza para determinar qu contrasea se enva para un dominio de autenticacin dado.

Servicios en red

1-4

4 Servicio HTTP
AuthType: tipo de autenticacin. Basic: la contrasea se negocia sin encriptar. Digest: la contrasea se negocia encriptada. AuthUserFile: archivo de texto que contiene los nombres de usuario y las contraseas usadas en la autenticacin HTTP bsica. Se suele llamar .htpasswd. Previamente hay que crear el directorio /etc/apache2/passwd. AuthGroupFile: ubicacin del archivo de texto que contendr los nombres de los grupos y los usuarios asociados a ellos usados en la autenticacin HTTP bsica. Se suele llamar .htgroup. AuthAuthoritative: toma los valores on (por defecto) y off. En el caso de que se utilicen varios mtodos de autenticacin en un mismo directorio y falle el primero, permite que se pase al segundo. Require: se aplica a los usuarios que tienen acceso a los recursos especificados. Existen varias opciones disponibles: valid-user: cualquier usuario incluido en el archivo de contraseas .htpasswd. user <lista de usuarios>: lista de usuarios de .htpasswd a los que se permite el acceso. Al especificar sus nombres, deben aparecer separados por un espacio. Si se incluye esta opcin, habr que incluir tambin la directiva AuthUserFile para indicar dnde se encuentra el archivo con la definicin de los usuarios usados en la autenticacin HTTP bsica. group <lista de grupos>: lista de los grupos a los que se permite el acceso. Al igual que en el caso anterior, los nombres deben aparecer separados por un espacio. En estos casos hay que incluir tambin la directiva AuthGroupFile para indicar dnde se encuentra el archivo en el que figura la definicin de los grupos empleados en la autenticacin HTTP bsica. Satisfy: al utilizar esta directiva, se determina si se deben cumplir todos los requisitos (all) o cualquiera (any).

Tareas a realizar
1. Creacin de un usuario Para empezar, se utilizar la orden htpasswd de la forma siguiente: $ sudo su # htpasswd -c /etc/apache2/passwd/.htpasswd nombre_usuario

La opcin -c permite crear el archivo .htpasswd con el primer usuario dado de alta, que no tiene por qu existir antes en el sistema. A la hora de conceder permisos al archivo .htpasswd, habr que especificar la clave 644 (lectura y escritura para el dueo, y root y lectura para el grupo y los dems usuarios). En el caso de que se desee dar de alta a otros usuarios, no es preciso incluir en cada ocasin el argumento -c.

2. Creacin de un grupo Para crear grupos primero hay que crear el archivo de texto /etc/apache2/passwd/.htgroup con el formato para cada lnea: nombreGrupo: user1 user2 user3

Servicios en red

2-4

4 Servicio HTTP
La directiva AuthGroupFile indica la ruta completa donde se encuentra el archivo que hemos creado con la definicin de los grupos. AuthGroupFile /etc/apache2/passwd/.htgroup Cada usuario del grupo lo aadiremos al archivo de contraseas segn el paso 1. Tambin se puede indicar cualquier usuario, siempre que est en el archivo de contraseas, utilizando la directiva Require: Require valid-user

3. Creacin del sitio directorio_privado restringido a alumno1 La operacin consta de los pasos siguientes: Se crea directorio_privado con acceso restringido al usuario alumno1. # mkdir /var/www/directorio_privado A continuacin, se copia una pgina web sencilla identificada con index.html. Se genera un directorio para almacenar las contraseas en el caso de que no exista ninguno: # mkdir /etc/apache2/passwd Se da de alta al usuario alumno1 en el archivo de contraseas: # htpasswd -c /etc/apache2/passwd/.htpasswd New password:XXXXXX Re-type new password:XXXXXX Adding password for user alumno1 Por ltimo, se comprueba que se ha dado de alta el usuario alumno1 en .htpasswd: # more /etc/apache2/passwd/.htpasswd alumno1:Uc2mbt97WwWCE alumno1

4. Establecer dos formas diferentes de autenticacin Para hacerlo de manera global, basta con utilizar el archivo de configuracin /etc/apache2/sites-available/default, en el que debera aadirse un bloque <Directory>...</Directory> para el directorio que queremos proteger: Alias /privado /var/www/directorio_privado

<Directory "/var/www/directorio_privado"> AuthType Basic AuthName "Directorio privado" AuthUserFile /etc/apache2/passwd/.htpasswd Require user alumno1 </Directory> No obstante, es preciso tener en cuenta que se debe forzar a Apache2 a que lea sus archivos de configuracin con force-reload. A continuacin, probamos la configuracin desde el navegador (http://servidor.aulaSER.com/directorio_privado/) y visualizamos el contenido del archivo index.html creado en dicho directorio.

Servicios en red

3-4

4 Servicio HTTP
Para realizar la autenticacin utilizando los archivos .htaccess las directivas incluidas en el archivo se aplicarn solo al directorio que lo contiene as como a los respectivos subdirectorios. Los archivos .htaccess se leen cada vez que se solicitan pginas. No hay que reiniciar el servidor web para que se activen los cambios realizados. Creamos en /var/www/directorio_privado/ el archivo .htaccess con el contenido siguiente: # gedit /var/www/directorio_privado/.htaccess AuthType Basic AuthName "Directorio privado" AuthUserFile /etc/apache2/passwd/.htpasswd Require user alumno1

Ahora habra que comentar en /etc/apache2/sites-available/default el grupo de directivas que se encargan de la autenticacin global as como incluir un grupo <Directory></Directory> con la directiva AllowOverride que habilita la utilizacin de archivos .htaccess con autenticacin: Alias /privado /var/www/directorio_privado

<Directory "/var/www/directorio_privado"> AllowOverride AuthConfig </Directory> Probamos la configuracin desde el navegador mediante .htaccess. Por ltimo, nos dirigimos a la URL http://servidor.aulaSER.com/directorio_privado/. Se abrir una ventana que solicita la identificacin del usuario.

Servicios en red

4-4

Вам также может понравиться