Crear usuarios y grupos en Apache
Para configurar el servidor Apache para que pueda autenticar a los usuarios y verificar la autorización es necesario realizar una serie de acciones
- Crear un fichero de usuarios
- Crear un fichero de grupos
- Definir las directivas en el fichero de configuración
Para que nadie pueda acceder a los ficheros de usuarios y grupos, debemos almacenarlos fuera de los directorios publicados. El control de acceso puede hacerse para todos los ficheros del sitio web o para algunos ficheros mediante la directiva <Files> o <Directory>.
Autenticación Basic y Digest en Ubuntu
Son los dos modos de autenticación de los que dispone Apache. La diferencia entre ambos es que en el modo Basic, las contraseñas se envían sin cifrar, mientras que en Digest se envían cifradas.
El módulo de Apache que controla la autenticación Basic es auth_basic, y está habilitado por defecto. En cambio, el módulo auth_digest está deshabilitado.
Creación de usuarios
Para crear el fichero de usuarios utilizamos el comando htpasswd (si es autenticación Basic) ó htdigest (si es Digest).
La primera vez que utilicemos el comando, tanto htpasswd como htdigest, debemos ponerle la opción -c para que cree el archivo. Si creamos más usuarios debemos omitir ésta opción para no sobrreescribir el archivo de usuarios.
Para utilizar la autenticación de usuarios debe estar instalado el módulo authz_user, que por defecto lo está.
- Con autenticación Basic
htpasswd -c /etc/apache2/contr_basic nombreUsuario
- Con autenticación Digest hay que indicar además el dominio (grupo) al que pertenece el usuario.
htdigest -c /etc/apache2/contr_digest nombreDominio nombreUsuario
Creación de grupos
Para poder utilizar la autenticación por grupos debe estar habilitado el módulo authz_groupfile, que por defecto en Ubuntu no lo está. En cambio en Windows Server sí está habilitado por defecto, es decir, en el fichero «httpd.conf» la línea «authz_groupfile» está descomentada por defecto.
Lo habilitamos en Ubuntu con el comando
//Nos situamos en el directorio
/etc/apache2/mods-available
//Y ejecutamos el comando
a2enmod authz_groupfile
Para crear los grupos debemos crear un fichero con un grupo por línea.
nombreGrupo: nombreUsuario1 nombreUsuario2 ...
Ejemplos usuarios y grupos Basic:
Vamos a crear un archivo para dos usuarios, profesor1 y profesor2. Debemos indicar la contraseña para cada usuario
Si abrimos el archivo contr_basic podemos ver que están los dos usuarios
Vamos a crear ahora el grupo profesores, en el que incluiremos a profesor1 y profesor2. Comprobamos primero si el módulo authz_groupfile está habilitado listando el contenido del directorio /etc/apache2/mods-enabled
El siguiente paso es crear un fichero en /etc/apache2 llamado grupos y dentro escribiremos una línea con el grupo profesores
Vamos a crear el directorio «profesores» en /var/www/html en el que crearemos un fichero html
Editamos el fichero de configuración /etc/apache2/sites-enabled/000-default.conf y añadimos las directivas para que pueda acceder «profesor1» pero no «profesor2«
Ahora vamos a editar el fichero para que puedan acceder ambos profesores
Ahora que puedan acceder todos los miembros del grupo «profesores«
Para que pueda acceder cualquier usuario válido
Ejemplos usuarios y grupos Digest
Crearemos un archivo para dos usuarios «admin1» y «admin2«, que pertenecen al dominio «xestion«.
Creamos el fichero para los dos usuarios
Creamos el directorio /var/www/html/administradores con un fichero html
Comprobamos que el módulo «auth_digest» no está habilitado listando el contenido de /etc/apache2/mods-enabled, lo habilitamos con el comando a2enmod auth_digest y reiniciamos apache con service apache2 restart
Editamos el fichero 000-default.conf para que pueda acceder el usuario «admin1» pero no «admin2«
Ahora lo modificamos para que puedan acceder los dos usuarios
Modificamos el fichero para que pueda acceder cualquier usuario válido
Si te ha gustado no olvides compartir en redes sociales.
Espero que te haya servido. Cualquier duda deja un comentario. Un saludo