ENTRAR
UNIRSE AL CLUB

Autenticación y autorización en Apache Ubuntu Server 20.04

Marçal Alarcón

-

25 octubre 2021

-

5/5

Bienvenido a este tutorial, donde aprenderás a proteger cualquier página con autenticación y autorización en Apache de Ubuntu Server 20.04.

En Apache, podemos crear autenticación a través de Basic, Digest o con .htaccess, así que a continuación te enseñaré a crear la autenticación y autorización de las dos formas diferentes.

# Contenidos del tutorial

1. Autenticación con Basic

Para configurar la autenticación con Basic debemos de:

Paso2Actualizar los repositorios de Ubuntu

apt-get update

Paso2Instalamos el paquete de apache2-utils:

apt-get install apache2 apache2-utils

Paso2Creamos un nuevo usuario y almacemanos la contraseña en el fichero  .htpasswd. En mi caso voy a crear un usuario llamado profesor1:

htpasswd -c /etc/apache2/.htpasswd profesor1

Paso2El sistema nos pedirá una contraseña para el usuario (este usuario y contraseña será el que usaremos para iniciar sesión a nuestro sitio restringido).

IMPORTANTE: Si queremos crear más usuarios, deberemos de escribir el siguiente comando (yo por ejemplo voy a crear un usuario llamado profesor2):

htpasswd /etc/apache2/.htpasswd profesor2

Paso2Creamos un nuevo directorio para el profesor que posteriormente lo vamos a restringir (en mi caso voy a llamar al directorio “profesor”):

mkdir /var/www/html/profesor

Paso2Entramos en el fichero de configuración 000-default.conf:

nano /etc/apache2/sites-enabled/000-default.conf

Paso2Dentro del documento, en la virtualzone añadiremos las siguientes líneas:

<Directory /var/www/html/profesor>
      AuthType Basic
      AuthName "Secure area - Authentication required"
      AuthUserFile /etc/apache2/.htpasswd
      Require user profesor1 mab55
</Directory>

En la sección Directory, debemos de poner la ruta de la carpeta que queremos restringir (en mi caso es /var/www/html/profesor).

En AuthUserFile, debemos de poner la ruta del fichero donde están los usuario y contraseñas (en mi caso es /etc/apache2/.htpasswd).

Por último en Require user, debemos de escribir el nombre de los usuarios que solo tendrán acceso a ese directorio (en mi caso es profesor1 y mab55).

Paso2Guardamos los cambios realizados (Ctrl + O) + Enter y salimos del documento (Ctrl + X).

Paso2Reiniciamos el servidor de Apache

service apache2 restart

Paso2Entramos con el cliente a la carpeta profesor, y podemos ver que nos pide autenticación:

NOTA: Si no te aparece el formulario de inicio de sesión, debes de abrir la web en modo incognito.

Paso2Ingresamos los datos de profesor1 y vemos que podemos entrar correctamente.

Paso2En cambio, si probamos a entrar con profesor2, no entra.

TUTORIAL RECOMENDADO PARA Windows

Añadir Apache a las Variables de Entorno de Windows Server 2019

2. Autenticación con Digest

Ahora vamos a realizar la misma autenticación pero con Digest, para ello:

Paso2Activamos el módulo de digest.

a2enmod auth_digest

Paso2Creamos un directorio para restringirle el acceso (en mi caso voy a crear un directorio llamado “departamento).

mkdir /var/www/html/departamento

Paso2Reiniciamos el servidor de Apache para aplicar los cambios.

service apache2 restart

Paso2Creamos un nuevo usuario y almacemanos la contraseña en el fichero  digest. En mi caso voy a crear un usuario llamado admin1:

htdigest -c /etc/apache2/digest departamento admin1

Paso2El sistema nos pedirá una contraseña para el usuario (este usuario y contraseña será el que usaremos para iniciar sesión a nuestro sitio restringido).

IMPORTANTE: Si queremos crear más usuarios, deberemos de escribir el siguiente comando (yo por ejemplo voy a crear un usuario llamado admin2):

htdigest /etc/apache2/digest departamento admin2

Paso2Entramos en el fichero 000-default.conf:

nano /etc/apache2/sites-available/000-default.conf

Paso2Dentro del documento, en la virtualzone añadiremos las siguientes líneas:

<Directory /var/www/html/departamento>
        Options Indexes FollowSymLinks
        AllowOverride None
        AuthType Digest
        AuthName "departamento"
        AuthDigestProvider file
        AuthUserFile /etc/apache2/digest
        Require valid-user
</Directory>

En la sección Directory, debemos de poner la ruta de la carpeta que queremos restringir (en mi caso es /var/www/html/profesor).

En AuthName, debemos de poner el nombre del grupo que le hemos puesto al usuario.

En AuthUserFile, debemos de poner la ruta del fichero donde están los usuario y contraseñas (en mi caso es /etc/apache2/digest).

Paso2Guardamos los cambios realizados (Ctrl + O) + Enter y salimos del documento (Ctrl + X).

Paso2Para aplicar los cambios reiniciamos el servidor de Apache.

service apache2 restart

Paso2Entramos con un cliente al directorio “departamento” y podemos ver que nos aparece la autenticación.

NOTA: Si no te aparece el formulario de inicio de sesión, debes de abrir la web en modo incognito.

Paso2Entramos por ejemplo con el usuario admin1 y vemos que hemos podido entrar correctamente.

TUTORIAL RECOMENDADO PARA Windows

Cambiar archivo por defecto de Apache en Windows Server 2019

3. Autenticación con .htaccess

Por último, vamos a aprender a hacer la autenticación con -htaccess, para ello debemos de:

Paso2Crear un nuevo usuario en el sistema (en mi caso voy a llamar al usuario profesor):

adduser profesor

Paso2Entramos en el fichero de configuración 000-default.conf

nano /etc/apache2/sites-available/000-default.conf

Paso2Dentro del documento añadiremos las siguientes líneas dentro del virtualzone:

Alias /blog /home/profesor/blog
<Directory /home/profesor/blog>
        AllowOverride All
</Directory>

En alias colocaremos primero el nombre del alias (en mi caso /blog) y luego colocaremos la ruta donde se encuentra ese directorio (en mi caso /home/profesor/blog).

En la sección Directory, debemos de poner la ruta de la carpeta que queremos restringir (en mi caso es /home/profesor/blog).

Paso2Guardamos los cambios realizados (Ctrl + O) + Enter y salimos del documento (Ctrl + X).

Paso2Salimos de Root y de nuestro usuario actual usando 2 veces el comando exit.

exit

Paso2Entramos con el usuario que hemos creado previamente (en mi caso es profesor).

Paso2Creamos el directorio blog con  un archivo html dentro (debemos de crear el directorio dentro de la carpeta del usuario profesor).

mkdir /home/profesor/blog
nano /home/profesor/blog/index.html

Paso2Creamos un usuario (en mi caso le llamaré blog) y le establecemos una contraseña:

htdigest -c /home/profesor/.htdigest blog blog

Paso2Creamos el fichero .htaccess dentro del directorio blog.

nano /home/profesor/blog/.htaccess

Paso2Dentro del documento, añadimos las siguientes líneas:

Options Indexes
AuthType Digest
AuthName "blog"
AuthDigestProvider file
AuthUserFile /home/profesor/blog/.htdigest
Require user blog

En AuthName debemos de escribir el nombre del grupo del usuario (en mi caso es “blog”).

En AuthUserFile debemos de escribir la ruta de donde se encuentra el fichero .htdigest (en mi caso está en /home/profesor/blog/.htdigest).

Por último, en Require user debemos de colocar el nombre del usuario que queremos dar acceso (en mi caso es el usuario “blog”).

Paso2Guardamos los cambios realizados (Ctrl + O) + Enter y salimos del documento (Ctrl + X).

Paso2Entramos en el directorio /blog de nuestro servidor y podemos ver que nos pide los datos para iniciar sesión.

NOTA: Si no te aparece el formulario de inicio de sesión, debes de abrir la web en modo incognito.

Paso2Introducimos los datos y listo, ya estamos dentro del directorio /blog.

TUTORIAL RECOMENDADO PARA Windows

Instalar Symfony en Windows 10

Espero que hayas podido proteger tus directorios de Apache con un usuario y contraseña… Para cualquier  duda puedes escribirme en el formulario de contacto pulsando aquí.

Un saludo Mab55

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on whatsapp
WhatsApp
Share on telegram
Telegram
Share on reddit
Reddit
Share on email
Email

Marçal Alarcón Brugal

Soy Técnico en Desarrollo de Aplicaciones Web con más de 5 años de experiencia en el sector informático. En los últimos años, me he centrado en enseñar mis conocimientos de informática a través de cursos, tutoriales… 

# ¿Te ha sido útil? Escribe una reseña

{{ reviewsTotal }} Review
{{ reviewsTotal }} Reviews
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}

📕 Tutoriales

📕 Tutoriales

🔸 Linux

🔹 Mac

🔸 Windows

También te puede interesar

Crear y configurar certificado SSL en Apache Windows Server 2019

5/5

Cambiar archivo por defecto de Apache en Windows Server 2019

0.0/5
Aprende a cambiar el archivo por defecto de Apache en Windows Server 2019, así conseguirás un servidor…

Comprobaciones de Apache, PHP y MySQL en WAMP Server Windows 11

0.0/5

Instalar Symfony en Windows 10

5/5

Instalar y configurar servidor DNS en Windows Server 2022

0.0/5
Aprende a instalar y configurar un servidor DNS de forma fácil y rápida en Windows Server 2022. En este tutorial usaremos la herramienta…

Activar y desactivar módulos de Apache Windows Server 2019

5/5
Aprende a activar y desactivar módulos de Apache en Windows Server 2019. Aprende todo sobre los módulos…
Este contenido está restringido, SOLO está disponible para los miembros del club de Flota Digital.