Contenido verificado asociado a este RA
Fundamentos del Servidor Web, Protocolos HTTP/HTTPS e Instalación Inicial
Esta unidad trabaja el CE a (describir fundamentos y protocolos del servidor web) apoyándose en una instalación práctica que introduce el CE b. Se explica el papel de TCP/IP y DNS como base de comunicación, el ciclo completo de petición-respuesta HTTP, los códigos de estado agrupados por familias, la diferencia entre HTTP y HTTPS, y se guía la instalación y verificación de Apache en Debian/Ubuntu como ejemplo profesional habitual (no exigido literalmente por la norma).
Configuración de Sitios Virtuales y Discriminación de Tráfico
Esta unidad enseña a configurar múltiples sitios web en un único servidor mediante sitios virtuales y a dirigir el tráfico entrante al sitio correcto basándose en el nombre de host o la dirección IP, optimizando el uso de recursos.
Asegurando el Servidor Web y Controlando el Acceso
Esta unidad se centra en la implementación de medidas de seguridad esenciales para proteger el servidor web y sus contenidos, configurando mecanismos de autenticación y autorización para controlar el acceso de los usuarios y garantizar la integridad de la información.
Gestión de Módulos y Ejecución de Código en Servidores Web
Esta unidad diferencia la ejecución de código en el servidor y en el cliente, y enseña a instalar y configurar módulos adicionales para extender la funcionalidad del servidor web, permitiendo la implementación de aplicaciones dinámicas.
Asegurando las Comunicaciones con SSL/TLS
Esta unidad se enfoca en establecer mecanismos para asegurar las comunicaciones entre el cliente y el servidor mediante la implementación de SSL/TLS, garantizando la confidencialidad, integridad y autenticidad de los datos transmitidos.
Conceptos clave
Ciclo petición-respuesta HTTPTCP/IP como transporteResolución DNSCódigos de estado HTTP (2xx-5xx)HTTP vs HTTPS y TLSApache HTTP ServerPuerto 80 y 443Firewall (ufw)systemctl / systemdVirtual HostServerNameDocumentRootServerAliasDNSEncabezado Hosta2ensitea2dissiteAutenticación
Errores que conviene evitar
- No distinguir el nivel del fallo (DNS, TCP o HTTP): un técnico diagnostica 'no funciona la web' sin comprobar primero si resuelve el dominio, luego si el puerto responde y solo después si Apache devuelve error. Corrección: comprobar por capas con `ping`/`dig`, `telnet host 80` y logs de Apache.
- No abrir el puerto en el firewall del sistema operativo aunque el servicio esté activo: el proceso funciona pero el tráfico entrante se bloquea antes de llegar. Corrección: revisar reglas con `ufw status` o `firewall-cmd --list-all` tras instalar el servicio.
- Confundir instalación correcta con accesibilidad real: ver 'active (running)' no garantiza que el sitio sea visible desde otra máquina de la red. Corrección: siempre validar el acceso desde un cliente externo, no solo desde el propio servidor con `curl localhost`.
- **DNS mal configurado**: Si el registro A o CNAME del dominio no apunta a la IP correcta del servidor, el cliente no llegará al servidor. Corrección: Verificar la configuración DNS en el proveedor de dominio.
- **`ServerName` incorrecto o ausente**: Si el `ServerName` en el Virtual Host no coincide con el dominio solicitado, el servidor puede servir el sitio predeterminado o un sitio incorrecto. Corrección: Asegurarse de que `ServerName` y `ServerAlias` estén correctamente definidos para cada dominio.
- **Orden de carga de Virtual Hosts**: En algunos servidores (especialmente Apache), el orden en que se procesan los Virtual Hosts puede importar si hay solapamientos. Corrección: Asegurarse de que el Virtual Host predeterminado (si existe) sea el último en ser evaluado o que los Virtual Hosts específicos estén bien definidos para evitar ambigüedades.
- **Permisos de archivos demasiado laxos**: Dar permisos de escritura a `www-data` en directorios no necesarios puede permitir a un atacante subir código malicioso. Corrección: Aplicar el principio de mínimo privilegio, solo escritura donde sea estrictamente necesario.
- **Credenciales débiles o por defecto**: Usar contraseñas fáciles de adivinar o las que vienen por defecto en aplicaciones web. Corrección: Exigir contraseñas robustas y cambiarlas inmediatamente después de la instalación.