Contenido verificado asociado a este RA
Fundamentos y Configuración Básica del Servidor Web
Esta unidad introduce los conceptos esenciales de un servidor web, sus parámetros de administración clave y cómo realizar una configuración inicial para el despliegue de aplicaciones, sentando las bases para una gestión eficiente y segura.
Extensión de Funcionalidad y Gestión de Sitios Virtuales
Esta unidad explora cómo ampliar las capacidades de un servidor web mediante la activación y configuración de módulos, y cómo alojar múltiples sitios web en un único servidor utilizando la configuración de sitios virtuales.
Seguridad I: Autenticación y Control de Acceso
Esta unidad se centra en la implementación de mecanismos de autenticación y control de acceso para proteger recursos sensibles en el servidor web, explicando cómo restringir el acceso a usuarios autorizados y direcciones IP específicas.
Seguridad II: Certificados Digitales y Comunicaciones Seguras (HTTPS)
Esta unidad aborda la obtención e instalación de certificados digitales y la configuración de HTTPS para asegurar las comunicaciones entre el cliente y el servidor, protegiendo la integridad y confidencialidad de los datos.
Monitorización, Rendimiento y Documentación del Servidor Web
Esta unidad cubre la importancia de realizar pruebas de funcionamiento y rendimiento del servidor web, así como la elaboración de documentación exhaustiva para su configuración, administración segura y recomendaciones de uso, asegurando la estabilidad y mantenibilidad.
Conceptos clave
Servidor WebApache HTTP ServerNginxPuerto de escuchaDocument RootArchivos de configuraciónLogs de acceso y errorPermisos de archivosDespliegue de aplicacionesMódulos del servidor webmod_rewriteVirtual HostName-based Virtual HostServerNameDocumentRootDirectivas de configuraciónAutenticación HTTP BásicaAutenticación Digest
Errores que conviene evitar
- **Permisos de archivos incorrectos:** Causa: Asignar permisos excesivos (777) por desconocimiento o insuficientes (solo lectura para el usuario del servidor en directorios de escritura). Corrección: Aplicar el principio de mínimo privilegio; el usuario del servidor web solo necesita leer archivos estáticos y escribir en directorios específicos (cache, uploads) con permisos como 755 para directorios y 644 para archivos.
- **DocumentRoot mal configurado:** Causa: Apuntar el DocumentRoot a la raíz del proyecto en lugar del directorio público de la aplicación. Corrección: Identificar el directorio que contiene el `index.php` o `index.html` principal de la aplicación y configurarlo como DocumentRoot para evitar la exposición de archivos sensibles.
- **Conflictos de ServerName:** Causa: Dos o más Virtual Hosts comparten el mismo ServerName o ServerAlias en el mismo puerto. Corrección: Asegurar que cada Virtual Host basado en nombre tenga un ServerName único y que el DNS apunte correctamente a la IP del servidor.
- **Módulo no activado:** Causa: Intentar usar directivas de un módulo (ej. RewriteRule) sin haber cargado el módulo (`LoadModule`) previamente. Corrección: Verificar la activación del módulo y reiniciar el servidor.
- **Credenciales en texto plano:** Causa: Usar autenticación básica sin HTTPS, exponiendo nombres de usuario y contraseñas a la interceptación. Corrección: Siempre usar autenticación básica junto con HTTPS para cifrar la comunicación.
- **Permisos laxos en .htaccess:** Causa: Permitir `AllowOverride All` en el Virtual Host principal, lo que permite a los usuarios sobrescribir directivas de seguridad en sus propios `.htaccess`. Corrección: Limitar `AllowOverride` a `AuthConfig` o `Limit` según sea necesario, o deshabilitarlo completamente si no se necesita.
- **Certificado caducado:** Causa: Olvidar la renovación periódica de los certificados SSL/TLS. Corrección: Implementar la renovación automática (ej. con Certbot y cron) y monitorizar las fechas de caducidad.
- **Mixed Content:** Causa: Servir una página HTTPS que carga recursos (imágenes, scripts, CSS) a través de HTTP. Corrección: Asegurarse de que todos los recursos se cargan vía HTTPS, actualizando las URLs en el código de la aplicación o usando cabeceras como `Content-Security-Policy`.