Crear usuarios y grupos en Apache

Crear usuarios y grupos en Apache

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

Crear usuarios en Apache
Crear usuario 1
Crear usuarios en Apache
Crear usuario 2

Si abrimos el archivo contr_basic podemos ver que están los dos usuarios

Fichero contr_basic en Apache
Fichero contr_basic

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

Crear grupo en Apache
Crear grupo

El siguiente paso es crear un fichero en /etc/apache2 llamado grupos y dentro escribiremos una línea con el grupo profesores

Crear fichero grupos en Apache
Crear fichero

Vamos a crear el directorio «profesores» en /var/www/html en el que crearemos un fichero html

Crear directorio en Apache
Crear directorio

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«

Añadir directivas en Apache
Añadir directivas

Ahora vamos a editar el fichero para que puedan acceder ambos profesores

Permitir acceso en Apache
Permitir acceso

Ahora que puedan acceder todos los miembros del grupo «profesores«

Permitir acceso a grupo en Apache
Permitir grupo

Para que pueda acceder cualquier usuario válido

Permitir acceso a cualquier usuario en Apache
Permitir cualquier usuario

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

Crear ficheros usuarios en Apache
Crear ficheros

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

Comprobar si está habilitado el módulo auth_digest
Comprobar módulo

Editamos el fichero 000-default.conf para que pueda acceder el usuario «admin1» pero no «admin2«

Editar fichero de usuarios en Apache
Editar fichero

Ahora lo modificamos para que puedan acceder los dos usuarios

Permitir acceso a usuarios en Apache
Permitir acceso

Modificamos el fichero para que pueda acceder cualquier usuario válido

Permitir acceso a usuarios válidos en Apache
Permitir 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

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Translate »
Ir a la barra de herramientas