Introducción
En este tutorial, verá los recursos de protección con contraseña en un servidor web de Apache ejecutándose en Ubuntu 18.04. Completar estos pasos le proporcionará una seguridad adicional para su servidor, de modo que se le prohíba a usuarios no autorizados acceder a determinadas partes de su página.
Para obtener una versión más detallada de este tutorial, con explicaciones más detalladas de cada paso, consulte Cómo configurar la autenticación con contraseña con Apache en Ubuntu 18.04.
Requisitos previos
Para completar este tutorial, necesitará acceso a lo siguiente en un servidor de Ubuntu 18.04:
Paso 1: Instalar el paquete de utilidades de Apache
Instalaremos una utilidad llamada htpasswd
, que forma parte del paquete apache2-utils
para administrar los nombres de usuarios y las contraseñas con acceso a contenido restringido.
- sudo apt update
- sudo apt install apache2-utils
Paso 2: Crear el archivo de contraseña
Crearemos el primer usuario de la siguiente manera (sustituya `first_username por el nombre de usuario que elija):
- sudo htpasswd -c /etc/apache2/.htpasswd first_username
Se le solicitará que proporcione y confirme una contraseña para el usuario.
Deje el argumento -c
para cualquier usuario adicional que desee añadir, de manera de no tener que sobreescribir el archivo:
- sudo htpasswd /etc/apache2/.htpasswd another_user
Paso 3: Configurar la autenticación con contraseña de Apache
En este paso, debemos configurar Apache para que verifique este archivo antes de divulgar nuestro contenido protegido. Haremos esto usando el archivo de host virtual del sitio, pero existe otra opción detallada en el tutorial más extenso si es que no tiene acceso o prefiere usar archivos .htaccess
en su lugar.
Abra el archivo de host virtual al que quiera añadir una restricción con un editor de texto como nano:
- sudo nano /etc/apache2/sites-enabled/default-ssl.conf
La autenticación se realiza por directorio. En nuestro ejemplo, restringiremos el root de todo el documento, pero puede modificar este listado para apuntar solo a un directorio específico dentro del espacio web.
En este paso, añada las siguientes líneas resaltadas en su archivo:
/etc/apache2/sites-enabled/default-ssl.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Verifique la configuración con el siguiente comando:
Puede reiniciar el servidor para implementar su política de contraseña y luego verificar el estado de su servidor.
- sudo systemctl restart apache2
- sudo systemctl status apache2
Paso 4: Confirmar la autenticación con contraseña
Para confirmar que su contenido esté protegido, intente acceder a su contenido restringido desde un navegador web. Debería aparecer una solicitud de ingreso de nombre de usuario y contraseña:
Tutoriales relacionados
A continuación, se ofrecen los enlaces a más guías detalladas relacionadas con este tutorial: