How to Set up Password Protect Web Directory in Apache

Cómo configurar el directorio web protegido con contraseña en Apache

Apache es uno de los servidores web más utilizados y populares del mundo, por lo que es importante mantener sus sitios web privados de usuarios no autorizados. La autenticación de Apache se puede configurar para solicitar a los visitantes del sitio web que inicien sesión con un ID de usuario y una contraseña. Hay muchas maneras de proteger con contraseña los directorios en un servidor web Apache.

Este artículo describe una manera fácil de proteger con contraseña un directorio web en Apache usando un .htaccess expediente.

Nota: este tutorial se realiza en un servidor Ubuntu con Apache instalado.

Instalación del paquete de utilidades de Apache

En primer lugar, debe instalar el apache2-utils paquete que proporciona una utilidad llamada htpasswd para crear un archivo de contraseñas.

Puede instalarlo ejecutando el siguiente comando:

sudo apt-get install apache2-utils

Configure Apache para permitir la autenticación .htaccess

De forma predeterminada, Apache no permite el uso de un archivo .htaccess en Ubuntu 14.04. Deberá configurar el archivo de configuración de Apache para permitir la autenticación basada en .htacces.

Puede hacer esto editando el archivo de configuración de Apache:

sudo nano /etc/apache2/apache2.conf

Encuentra la sección que comienza con el Directory "/var/www/html" y cambiar la línea de AllowOverride none a AllowOverride AuthConfig

Options Indexes FollowSymLinks
    AllowOverride AuthConfig
    Require all granted

Guarde y cierre el archivo.

Crear el archivo de contraseña

Puedes usar el htpasswd utilidad de línea de comandos para crear un archivo de contraseña que Apache puede usar para autenticar a los usuarios. Ahora, cree un archivo .htpasswd oculto en el directorio de configuración «/etc/apache2».

sudo htpasswd -c /etc/apache2/.htpasswd authuser1

Esto le pedirá que proporcione y confirme una contraseña para authuser1.

Si desea agregar otro usuario, omita el -c argumento con htpasswd dominio.

Ahora, para crear otra autenticación para un segundo usuario, authuser2:

sudo htpasswd /etc/apache2/.htpasswd authuser2

Puede ver el nombre de usuario y la contraseña cifrada de cada registro ejecutando:

sudo cat /etc/apache2/.htpasswd

apache_auth_passwdfile

Debe otorgar permiso al usuario «www-data» para poder leer el archivo .htpasswd.

sudo chown www-data:www-data /etc/httpd/.htpasswd
sudo chmod 0660 /etc/httpd/.htpasswd

Configurar la autenticación de contraseña de Apache

Debe crear un archivo «.htaccess» en el directorio web que desea restringir. En este ejemplo, crearé un archivo «.htaccess» en el directorio «/var/www/html/» para restringir la raíz del documento completo.

sudo nano /var/www/html/.htaccess

Agrega el siguiente contenido:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Esto es lo que significa el código anterior:

  • Tipo de autenticación: Esta opción define el tipo de autenticación.
  • nombre de autenticación: Este es el contenido que se muestra en la página web cuando se le solicita el nombre de usuario y la contraseña.
  • AuthUserFile: esta opción especifica la ubicación de las credenciales de usuario.
  • requiere usuario válido: Esto indica que solo las solicitudes autenticadas exitosas pueden cargar la página.

Guarde y cierre el archivo y reinicie Apache para que estos cambios surtan efecto.

sudo /etc/init.d/apache2 restart

Prueba de autenticación de contraseña

Ahora en una máquina remota, acceda a su sitio web en un navegador web. Se le solicitará un nombre de usuario y una contraseña para acceder a la página web.

apache_auth_passwd_prompt

Si ingresa las credenciales de usuario correctas, se le permitirá acceder al contenido. Si ingresa las credenciales de usuario incorrectas o presiona «Cancelar», verá el No autorizado página de error

apache_auth_passwd_error

Conclusión

Ahora debería tener suficiente conocimiento para configurar la autenticación básica para su servidor web Apache. Recuerde también que la protección por contraseña debe combinarse con el cifrado SSL para que sus credenciales no se envíen al servidor en texto sin formato.

Deja un comentario

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

Experto Geek - Tu Guía en Tendencias Tecnológicas