Autenticación Apache

Las Directivas de autenticación Apache sirven para controlar los usuarios y equipos que pueden acceder a nuestro sitio web Apache.

 

Podemos aplicar directivas de permisos sobre los Directorios de nuestro sitio. Lo haremos con la directiva <Directory/>.

Autenticación Usuarios y Grupos Apache

 

CONTENIDOS:

 

 

Dentro de las directivas para autenticación Apache , tenemos:

 

  • AuthUserFile nombrearchivo : Hemos de colocar una ruta, que será la del fichero que contiene la lista de usuarios y contraseñas.
  • AuthGroupFile nombrearchivo : Aquí veremos los grupos.
  • Require user usuario usuario2 : para un/uno/s usuarios concretos
  • Require group nombregrupo : equivalente, para grupos
  • AuthName : El mensaje que aparece al conectarse.
  • Allow|Deny : de esta forma especificaremos los equipos a los que se les permite o deniega el acceso al sitio.
  • Order : Indica el orden de ejecución de las directivas Allow y Deny

 

 

Hay dos formas de utilizar estas directivas:

 

  1. Sin archivo .htaccess : Es mejor utilizar los archivos de configuración para administrar nuestro servidor .
  2. Con archivo .htaccess : suele utilizarse cuando los usuarios deben tener el control de sus propios archivos .htaccess .

 

 

Primero vamos a hacer un repaso de cómo crear los usuarios en Linux

 
Archivos importantes :
–> el archivo /etc/passwd
–> el archivo /etc/group
 

En nuestro ejercicio vamos a utilizar el archivo .htpasswd:

htpasswd /var/www/.htpasswd pruebas

 
Si el archivo no está creado todavía, tendremos que crearlo:

htpasswd -c /var/www/.htpasswd jefeuser

 
o si ya estamos dentro del directorio /var/www/

htpasswd -c .htpasswd jefeuser

 

*CUIDADO* : (si utilizamos la opción -c , creamos un fichero nuevo, con lo que se eliminan los usuarios anteriores, así que cuidado, después de creado el primero, para añadir más usuarios, hacemos lo mismo pero sin -c)


 
De esta forma hemos creado el archivo .htpasswd, y creado en él un password de acceso para el usuario jefeuser.

Este usuario y password, serán utilizados por la directiva AuthUserFile

htpasswd apache directorio usuario
 

–> para hacer login con el nuevo usuario: login

–> para salir de la sesión y hacer login con uno diferente :exit

 

 

Los grupos a los que pertenece un usuario

 

Añadir un usuario a un grupo, por ejemplo añadir usuario pruebas al grupo admin:

adduser pruebas admin

 

Otras cosillas importantes para funcionar:

– Para ver los usuarios del sistema:

cat /etc/passwd

 

– Salir de sesión:

logout

o

exit

 
Y ahora sigamos con las formas de utilizar las Directivas de Autenticación en Apache.
 

 

Tipos de Autenticación Apache

 

1. Sin archivo .htaccess

 
Vamos a crear un directorio privado dentro del sitio1.

Comenzamos.

En nuestro archivo de VirtualHost, situado en /etc/apache2/sites-enabled/nombre-del-archivo-del-sitio

añadimos lo siguiente:

<Directory /var/www/sitio1/privado>
AuthName "Lo siento. ACCESO RESTRINGIDO."
AuthUserFile /var/www/.htpasswd
AuthType Basic
require valid-user
</Directory>

 

  • Vemos que se mostrará un mensaje (directiva AuthName) cuando se intente acceder
  • El tipo de autenticación (AuthType Basic)
  • Podemos ver la ruta del archivo que contiene la lista de usuarios y contraseñas (directiva AuthUser File )

 

Vamos a ver la otra forma de utilizar las Directivas de Autenticación Apache:

 

2. Utilizando un archivo .htaccess

 
Debe estar activa la directiva AllowOverride AuthConfig.

Por tanto,  cuando no usemos htaccess, usaremos AllowOverride None

 
Añadir en nuestro archivo de virtualhost, en el sitio concreto, en la directiva Directory:

<Directory /var/www/sitio1/privado>
AllowOverride AuthConfig
</Directory>

 

Luego hay que crear un archivo .htaccess en la raíz del sitio  en   /var/www/sitio1/privado  y lo rellenamos con esto:

AuthName "Acceso restringido"
 
AuthUserFile /var/www/.htpasswd
 
AuthType Basic
 
require valid-user

 

–> Creamos el archivo htpasswd y damos de alta un usuario:

htpasswd -c /var/www/.htpasswd usuario

(de esta forma creamos el fichero htpasswd y el usuario con nombre “usuario“)

Y funcionará la autenticación mostrando el formulario de login de la misma forma.
 

Recordemos que si utilizamos la opción -c al usar htpasswd, creamos un fichero nuevo, con lo que se eliminan los usuarios anteriores, así que cuidado, después de creado el primero, para añadir más usuarios, hacemos lo mismo pero sin -c
 

 

PRUEBAS de LOGIN y Autenticación de usuarios en Apache, usando el navegador web

 
Como hemos estado haciendo varias pruebas y actualizaciones del servidor apache, además de reiniciar la configuración del servidor Apache,  es necesario limpiar la caché del navegador , por si estuviera utilizando una copia de la caché reciente pero no la actual.
 

Limpiamos la caché y las cookies

 

 

Y ahora comprobamos, entrando a nuestro dominio, que la autenticación por usuario funciona.

 

Al intentar acceder , nos aparece el formulario de identificación requerida, con los campos nombre de usuario y contraseña

autenticacion apache