¿Tienes un directorio en tu servidor web que no debería ser accesible para todo el mundo? Con Webmin puedes proteger cualquier carpeta de Apache con un usuario y una contraseña en pocos pasos, sin tocar archivos de configuración. Es una forma rápida de añadir autenticación básica a archivos internos, paneles de administración o secciones privadas de tu sitio.
🤔 ¿Qué vamos a conseguir?
- Proteger una carpeta con autenticación básica (usuario + contraseña) desde la interfaz de Webmin.
- Crear usuarios de Apache específicos para esa carpeta.
- Verificar que al acceder a la ruta desde el navegador aparece el cuadro de autenticación.
- Entender cómo funciona la autenticación básica de Apache y sus limitaciones.
🧰 Prerrequisitos
- Un servidor con Apache instalado y funcionando.
- Webmin instalado y accesible (normalmente en
https://ip_del_servidor:10000). - Un directorio existente en el servidor web que quieras proteger (por ejemplo,
/var/www/html/client). - Un navegador web para probar la protección.
🛠️ Instalar Webmin (si no lo tienes)
# Añade el repositorio oficial de Webmin
sudo sh -c 'echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list'
wget -q -O - https://www.webmin.com/jcameron-key.asc | sudo apt-key add -
sudo apt update
sudo apt install webmin
Accede desde el navegador en https://ip_del_servidor:10000. Acepta el certificado autofirmado y entra con tu usuario root o un usuario con permisos sudo.
🚀 Proteger una carpeta desde Webmin
Paso 1 — Acceder a Directorios Protegidos
- Entra en Webmin con tu navegador.
- Ve a Otros → Directorios Protegidos (en la sección de módulos).
- Si el módulo no aparece, instálalo desde Webmin → Webmin Configuration → Webmin Modules buscando “apache”.
Paso 2 — Crear el directorio protegido
- En Directorios Protegidos, haz clic en Agregar protección para un directorio.
- Rellena los campos:
- Nombre de la protección: un nombre descriptivo (ej.
client_area). - Ruta del directorio: la ruta completa del directorio a proteger, por ejemplo
/var/www/html/client. - Nombre de dominio: el dominio o IP de tu servidor (ej.
www.beneyto.como192.168.101.1).
- Nombre de la protección: un nombre descriptivo (ej.
- Pulsa Crear.

Paso 3 — Crear usuarios de autenticación
Una vez creado el directorio protegido:
- Haz clic sobre el nombre de la protección que acabas de crear (ej.
client_area). - Pulsa Crear usuario de este directorio.
- Rellena:
- Nombre de usuario: el usuario que accederá a la carpeta (ej.
admin). - Contraseña: una contraseña segura.
- Confirmar contraseña: repite la contraseña.
- Nombre de usuario: el usuario que accederá a la carpeta (ej.
- Pulsa Crear.

Paso 4 — Verificar desde el navegador
Abre el navegador de un equipo cliente y navega a la carpeta protegida:
http://www.beneyto.com/~client/
Aparecerá un cuadro de diálogo pidiendo usuario y contraseña. Introduce las credenciales que creaste en Webmin y accederás al contenido.

🧪 Comprobar que funciona
- Con credenciales correctas: introduces usuario y contraseña y accedes al contenido de la carpeta.
- Con credenciales incorrectas: el navegador muestra
401 Unauthorizedo vuelve a pedir las credenciales. - Sin credenciales (navegador privado): al acceder a la ruta, aparece el cuadro de autenticación automáticamente.
- Desde la terminal (comprobación programática):
# Debería devolver 401 (Unauthorized) sin credenciales
curl -s -o /dev/null -w "%{http_code}" http://www.beneyto.com/~client/
# Debería devolver 200 con credenciales
curl -s -o /dev/null -w "%{http_code}" -u admin:contraseña http://www.beneyto.com/~client/
⚠️ Errores comunes
| Error | Causa | Solución |
|---|---|---|
403 Forbidden | El directorio no tiene un index.html o index.php, o permisos incorrectos | Crea un index.html en la carpeta o ajusta permisos: chmod 755 /var/www/html/client |
401 Unauthorized pero no pide usuario | Apache no está procesando la configuración de .htaccess | Verifica que el VirtualHost tiene AllowOverride All o que Webmin creó los archivos .htpasswd correctamente |
| El cuadro de autenticación no aparece | La ruta escrita en el navegador no coincide con la protegida | Revisa la ruta exacta en Webmin y asegúrate de que coincida con la URL |
Could not open password file | El archivo .htpasswd no tiene permisos de lectura para Apache | sudo chown www-data:www-data /etc/apache2/.htpasswd && sudo chmod 644 /etc/apache2/.htpasswd |
| Webmin no muestra el módulo de Directorios Protegidos | El módulo no está instalado | Ve a Webmin → Webmin Modules e instala el módulo “Apache” |
🪜 Siguiente nivel
Una vez domines la autenticación básica, la escalera natural es:
- Certificados SSL — cifra las conexiones para que las contraseñas no viajen en claro: Cómo obtener un certificado SSL.
- Servidor virtual con Apache — aloja múltiples sitios web en el mismo servidor: Cómo crear un servidor virtual.
- Protección avanzada — usa autenticación por certificados client TLS o integra LDAP para gestión centralizada de usuarios.
- Firewall y fail2ban — protege tu servidor de intentos de fuerza bruta contra la autenticación.
