Linux en español
Directorio apache
Tutoriales

Proteger un directorio apache con contraseña

3 minutos de lectura

Aprenda cómo proteger con contraseña un directorio utilizando la autenticación HTTP básica de Apache. Este método le permitirá configurar un área restringida de su sitio web que requerirá un nombre de usuario y una contraseña para acceder.

Tabla de contenidos

HIT Closer

Requerimientos

  • Un servidor en la nube que ejecuta Linux (CentOS 7 o Ubuntu 16.04).
  • Servidor web Apache instalado y en ejecución.

Crear el archivo de contraseña

El primer paso es crear un archivo de contraseña que Apache usará para verificar el nombre de usuario y la contraseña. Este archivo se nombrará .htpasswdy colocará en una ubicación segura: /etc/apache2en Ubuntu 16.04 y /etc/httpden CentOS 7.

El htpasswdcomando se puede utilizar para crear un archivo de contraseña o agregarle una entrada. Por primera vez, usaremos la -cbandera para crear el archivo y agregar el nombre de usuario jdoe:

  • CentOS 7:sudo htpasswd -c /etc/httpd/.htpasswd jdoe
  • Ubuntu 16.04:sudo htpasswd -c /etc/apache2/.htpasswd jdoe

Se le solicitará que ingrese y confirme la nueva contraseña para el usuario.

Agregar un nuevo usuario a un archivo existente

Para agregar un nuevo usuario a un archivo de contraseña existente, use el mismo comando sin la -cbandera. Por ejemplo, para agregar un usuario janedoeel comando es:

  • CentOS 7:sudo htpasswd /etc/httpd/.htpasswd janedoe
  • Ubuntu 16.04:sudo htpasswd /etc/apache2/.htpasswd janedoe

Se le solicitará que ingrese y confirme la nueva contraseña para el usuario.

Habilitar restricción de directorio

Antes de que pueda restringir un directorio, deberá configurar Apache para permitir .htaccessarchivos.

CentOS 7

Abra el archivo de configuración principal de Apache para editarlo con el comando:

sudo nano /etc/httpd/conf/httpd.conf

Desplácese hasta la <Directory>sección "/var/www/html"y cambie AllowOverrideAll.

Guardar y salir del archivo. Luego reinicie Apache para que los cambios surtan efecto:

sudo systemctl restart httpd

Ubuntu 16.04

Abra el archivo de configuración principal de Apache para editarlo con el comando:

sudo nano /etc/apache2/apache2.conf

Desplácese hasta la <Directory>sección "/var/www"y cambie AllowOverrideAll.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Guardar y salir del archivo. Luego reinicie Apache para que los cambios surtan efecto:

sudo systemctl restart apache2

Crear el área restringida

Vaya al directorio que desea proteger. Por ejemplo:

cd /var/www/html/admin

Cree un archivo llamado .htaccessy ábralo para editarlo:

sudo nano .htaccess

Pon lo siguiente en este archivo:

CentOS 7:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/httpd/.htpasswd

Ubuntu 16.04:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

Prueba la autentificación

Para probar la autenticación, visite la URL protegida por contraseña en un navegador. Aparecerá una ventana emergente que le pedirá que ingrese un nombre de usuario y contraseña para continuar.

Nota: si su navegador tiene un bloqueador de ventanas emergentes, deberá configurarlo para permitir ventanas emergentes para este dominio.

5/5 - (3 votos)

Entradas relaccionadas

Monitorear archivos y carpetas en tu Linux con incron && incrontab

Diego García Cuesta

Comando htop: Instalación y uso desde línea de comandos

Diego García Cuesta

Cómo instalar MariaDB en CentOS 8

Diego García Cuesta

Administración de usuarios y grupos en linux

Linux en Español

Cómo cambiar el tema de la aplicación Snap en Ubuntu (con ejemplos)

Linux en Español

Las tareas programadas no se inician automáticamente en Plesk para Linux

Diego García Cuesta

Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que está de acuerdo con esto, pero puede optar por no participar si lo desea. Aceptar Leer más

Política de privacidad y cookies