# P2606 - Servidor Web NGINX con IP Pública **Estado:** ⏳ En Ejecución **Fecha Inicio:** 2026-03-28 **Fecha Fin Estimada:** *Por definir* ## Objetivo Desplegar un nuevo servidor web basado en **NGINX** en un contenedor **LXC** dentro de la infraestructura Proxmox de la facultad, con asignación de **IP pública** para exposición directa de servicios web. ### Motivación - Necesidad de un servidor web dedicado con IP pública propia. - Los servidores web actuales (`srvv-sitio` con IP `190.114.205.20`, `srvv-sitio2` LXC) están en uso. - LXC ofrece menor overhead que VMs completas, ideal para un servidor web. ## Stakeholders | Rol | Nombre | Contacto | | :--- | :--- | :--- | | Responsable DTIC | Ricardo Monla | rmonla | ## 🌐 Topología y Contexto de Red ``` Internet │ Firewall/Router UTN │ ├── srv-pmox3 (10.0.10.203) ── Bridge vmbr0 ── Red interna 10.0.10.x │ │ │ └── srvv-web (LXC) ── IP Pública: (a asignar) │ IP Privada: 10.0.10.xx │ ├── srvv-sitio (190.114.205.20) ── Web existente (referencia) └── srvv-sitio2 (10.0.10.19) ── Web secundario LXC ``` ## Nodos Involucrados ### Nodos Exclusivos (Core) - `srvv-web` — Contenedor LXC con NGINX (a crear) ### Nodos de Soporte/Infraestructura - `srv-pmox3` (10.0.10.203) — Host Proxmox (64GB RAM, ~20GB libres) - `srvv-sitio` — Referencia de configuración con IP pública ## Herramientas - **Proxmox VE** — Creación y gestión del LXC - **NGINX** — Servidor web / reverse proxy - **Certbot** — Certificados HTTPS (Let's Encrypt) - **Tailscale** — Acceso remoto de gestión - **ADN Toolkit** — Gestión de nodos, bitácora, candados ## Recursos Estimados (LXC) | Recurso | Valor | |---------|-------| | CPU | 2 cores (compartido) | | RAM | 2 GB | | Disco | 20 GB | | Red | vmbr0 (bridge), IP pública + IP privada | | Template | `debian-12-standard` | ## Hitos Clave | ID | Hito | Estado | Fecha | | :--- | :--- | :---: | :--- | | 1 | IP pública asignada | ✅ | 2026-03-28 | | 2 | LXC creado y configurado | ✅ | 2026-03-28 | | 3 | NGINX operativo con HTTPS | ✅ | 2026-03-28 | | 4 | Seguridad y monitoreo | 📍 | *Pendiente* | | 5 | Validación y entrega | ⏳ | *En progreso* | --- ## 📊 Progreso ``` Fase 1: ██████████ 100% Preparación e investigación Fase 2: █████████░ 90% Creación del contenedor LXC (Tailscale pendiente) Fase 3: ████████░░ 80% Instalación y configuración NGINX (hardening pendiente) Fase 4: ░░░░░░░░░░ 0% Seguridad y monitoreo Fase 5: █████░░░░░ 50% Validación y documentación ``` --- ## Prerequisitos - [x] Confirmar IP pública disponible: `190.114.205.17` asignada. - [x] Verificar bridge en srv-pmox3: `vmbr0` capa 2 compartida. - [x] Confirmar reglas de firewall: puertos 80/443 abiertos (verificado HTTP/HTTPS público). - [x] Definir nombre del nodo: `srvv-nginx-rm`. ## Plan de Ejecución ### ⏳ **FASE 1: Preparación e investigación** - [ ] **1.1:** Solicitar/confirmar IP pública disponible al área de redes UTN. - [ ] **1.2:** Verificar configuración de red en `srv-pmox3` — bridges, VLAN, routing para IP pública. - [ ] **1.3:** Verificar template LXC Debian 12 disponible en srv-pmox3. - [ ] **1.4:** Definir hostname definitivo y esquema de red. ### ⏳ **FASE 2: Creación del contenedor LXC** - [ ] **2.1:** Crear LXC en srv-pmox3 (2 cores, 2 GB RAM, 20 GB disco, bridge con IP pública). - [ ] **2.2:** Configurar red: IP pública estática + gateway, IP privada 10.0.10.xx. - [ ] **2.3:** Configurar hostname, DNS, timezone (America/Argentina/La_Rioja). - [ ] **2.4:** Actualizar sistema base (`apt update && apt upgrade`). - [ ] **2.5:** Instalar y configurar OpenSSH (puerto personalizado, acceso por clave). - [ ] **2.6:** Configurar Tailscale VPN (acceso remoto de gestión). ### ⏳ **FASE 3: Instalación y configuración NGINX** - [ ] **3.1:** Instalar NGINX. - [ ] **3.2:** Configurar sitio por defecto (página de prueba). - [ ] **3.3:** Configurar HTTPS con Let's Encrypt (certbot + NGINX plugin). - [ ] **3.4:** Hardening: headers de seguridad, server tokens, rate limiting. - [ ] **3.5:** Configurar logs (access.log, error.log con rotación). ### ⏳ **FASE 4: Seguridad y monitoreo** - [ ] **4.1:** Configurar firewall local (ufw/nftables): solo puertos 80, 443, SSH. - [ ] **4.2:** Instalar fail2ban. - [ ] **4.3:** Configurar backup automático (vzdump en Proxmox). - [ ] **4.4:** Agregar al sistema de monitoreo existente. ### ⏳ **FASE 5: Validación y documentación** - [ ] **5.1:** Test de acceso web desde internet (HTTP y HTTPS). - [ ] **5.2:** Test de rendimiento básico. - [ ] **5.3:** Crear ficha de nodo en `nodos/` (vía `generar nodo`). - [ ] **5.4:** Documentar en bitácora y marcar proyecto como operativo. ## Referencias - `srvv-sitio` — Modelo de servidor web con IP pública (190.114.205.20) - `srvv-sitio2` — Referencia de LXC web existente --- *Manifiesto generado automáticamente el 2026-03-28 — completado con datos del proyecto*