# Plan: Servidor Web NGINX en LXC con IP Pública **Código:** P2606.01 **Fecha:** 28 de marzo de 2026 **Autor:** Sistema ADN **Versión:** 1.1 **Estado:** 🚧 EN EJECUCIÓN ## 📋 Resumen Ejecutivo Desplegar un servidor web **NGINX** en contenedor **LXC** (Debian 12) sobre `srv-pmox3`, con **IP pública** asignada por redes UTN para exposición directa de servicios web. ## 📌 Prerequisitos - [x] IP pública: `190.114.205.17` — verificada libre y asignada al LXC. - [x] Bridge: `vmbr0` en srv-pmox3 soporta red pública y privada (capa 2 compartida). - [x] Firewall UTN: puertos 80 y 443 abiertos — confirmado vía acceso HTTP/HTTPS público. - [x] Nombre del nodo: `srvv-nginx-rm`. ## 🚀 Plan de Ejecución ### ✅ **FASE 1: Preparación e investigación** *(completada 2026-03-28)* - [x] **1.1:** IP pública: `190.114.205.17/24`, gw `190.114.205.1`. Verificada libre. - [x] **1.2:** Red compartida capa 2 — `vmbr0` sirve tanto red pública como privada. - [x] **1.3:** Template `debian-12-standard_12.7-1_amd64.tar.zst` disponible. - [x] **1.4:** Hostname: `srvv-nginx-rm`. IP privada: `10.0.10.117/23`. Host: `srv-pmox3`. ### ✅ **FASE 2: Creación del contenedor LXC** *(completada 2026-03-28)* - [x] **2.1:** LXC 116 creado en srv-pmox3 ✅ (2 cores, 2 GB RAM, 20 GB disco, Debian 12, unprivileged). - [x] **2.2:** Red configurada: eth0=`190.114.205.17/24` (pública), eth1=`10.0.10.117/23` (privada). - [x] **2.3:** Hostname `srvv-nginx-rm`, DNS `8.8.8.8`, timezone `America/Argentina/La_Rioja`. - [x] **2.4:** Sistema actualizado (`apt upgrade` — 91 paquetes). - [x] **2.5:** OpenSSH en puerto **7022** ✅. - [ ] **2.6:** Configurar Tailscale VPN (acceso remoto de gestión). ⏳ *Pendiente.* ### ✅ **FASE 3: Instalación y configuración NGINX** *(completada 2026-03-28)* - [x] **3.1:** NGINX 1.22.1 instalado ✅. Puerto 80 escuchando. Acceso público HTTP 200 verificado. - [x] **3.1b:** DNS DuckDNS: `rmonla.duckdns.org` → `190.114.205.17` ✅. ⚠️ DuckDNS no soporta wildcard (`*.rmonla.duckdns.org`). Subdominios requieren dominio propio o alternativa. - [x] **3.2:** Sitio `/vcby` configurado ✅. Repo `ricardomonla/assjdm-ViaCrusis` clonado en `/var/www/vcby`. PHP 8.2-FPM instalado. NGINX alias + fastcgi configurado. `http://rmonla.duckdns.org/vcby/` → HTTP 200. - [x] **3.3:** HTTPS con Let's Encrypt ✅. Certbot 2.1.0, cert `rmonla.duckdns.org` (expira 2026-06-26), redirect HTTP→HTTPS, renovación automática. - [ ] **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** *(en progreso 2026-03-28)* - [x] **5.1:** Test acceso web público: HTTP 200 ✅ y HTTPS `https://rmonla.duckdns.org/vcby/` → 200 ✅. - [ ] **5.2:** Test de rendimiento básico. - [x] **5.3:** Ficha de nodo creada: `nodos/srvv-nginx-rm.md` ✅. - [ ] **5.4:** Documentar en bitácora y marcar proyecto como operativo. ## 📝 Notas - **LXC 116** en srv-pmox3 (10.0.10.203). Autostart habilitado (`onboot: 1`). - **Clave root**: Guardada en candados (`srvv-nginx-rm:root`) ✅. - **Acceso SSH**: `ssh -p 7022 root@10.0.10.117` o `root@190.114.205.17`. - **Acceso Proxmox**: `pct exec 116 -- bash` desde srv-pmox3. - **DNS**: `rmonla.duckdns.org` → `190.114.205.17` (DuckDNS, no soporta wildcard). - **App desplegada**: `/vcby` → repo `ricardomonla/assjdm-ViaCrusis` (deploy key SSH). - **Referencia**: `srvv-sitio` en srv-pmox1 con IP `190.114.205.20`.