[Docs] Armonización integral de bitácoras y protocolo ADN

This commit is contained in:
Ricardo Monla
2026-02-19 23:56:25 -03:00
parent 5b11dc167a
commit ca715aee69
37 changed files with 15223 additions and 235 deletions
+4 -3
View File
@@ -1,15 +1,16 @@
# Índice de Bitácoras del Proyecto srv-NS8
# Índice de Bitácoras del Proyecto srv-ns8
El registro detallado de eventos se ha segmentado por fecha para mejor organización.
| Fecha | Eventos Clave | Resumen de Actividad |
| :--- | :--- | :--- |
| [**19/02/2026**](../bitacoras/2026-02-19.md) | Registro Procedimientos, Backup Proxmox. | Implementación del sistema de procedimientos y lanzamiento del primer ciclo de backup automatizado (Ruby). |
| [**18/02/2026**](../bitacoras/2026-02-18.md) | Recuperación Proxmox, DASU, Alta Nodos. | Recuperación Proxmox SSH, implementación VPN Tailscale, alta usuarios DC y carga calendario Posgrado. |
| [**16/02/2026**](../bitacoras/2026-02-16.md) | Hardening SSH, Expansión Grid. | Hardening masivo de SSH en el Grid y expansión del relevamiento a nuevos nodos LXC/VM. |
| [**15/02/2026**](../bitacoras/2026-02-15.md) | Tailscale Server. | Implementación de Tailscale y RustDesk como solución estratégica de acceso remoto. |
| [**11/02/2026**](../bitacoras/2026-02-11.md) | Servicios Base (Nginx, SSL). | Configuración de servicios base, establecimiento de protocolos de seguridad y red híbrida. |
| [**08/02/2026**](../bitacoras/2026-02-08.md) | Solución Licencia FENIX. | Resolución del incidente de apagado automático en `srvv-FENIX` por causa de licencia. |
| [**07/02/2026**](../bitacoras/2026-02-07.md) | Incidentes apagado srvv-FENIX. | Investigación forense intensiva ante apagados recurrentes de `srvv-FENIX`. |
| [**08/02/2026**](../bitacoras/2026-02-08.md) | Solución Licencia FENIX. | Resolución del incidente de apagado automático en `srvv-fenix` por causa de licencia. |
| [**07/02/2026**](../bitacoras/2026-02-07.md) | Incidentes apagado srvv-fenix. | Investigación forense intensiva ante apagados recurrentes de `srvv-fenix`. |
| [**14/01/2026**](../bitacoras/2026-01-14.md) | Gestión Digital CD (Video). | Gestión y publicación de grabaciones de Consejo Directivo en YouTube. |
> **Nota**: Los archivos fuente se encuentran en el directorio `/bitacoras`.
+72 -94
View File
@@ -1,117 +1,95 @@
# 01 - Ontología del Sistema: srv-NS8
# 01 - Ontología del Sistema: srv-ns8
Este documento define la identidad, propósito y componentes principales del servidor `srv-NS8`.
Este documento define la identidad, propósito y componentes principales del servidor `srv-ns8`.
## Identidad
- **Nombre**: `srv-NS8`
- **Hostname**: `srv-NS8`
## Responsable
**Lic. Ricardo MONLA**
*Departamento Servidores*
Dirección de TIC
Facultad Regional La Rioja
**Universidad Tecnológica Nacional**
---
## Identidad del Sistema
- **Nombre**: `srv-ns8`
- **Hostname**: `srv-ns8`
- **Rol Principal**: Workstation / Híbrido (Docker Host + VirtualBox Hypervisor).
- **Sistema Operativo**: Debian GNU/Linux 12 (bookworm).
- **Kernel**: 6.1.0-28-amd64.
- **Ubicación de Red**: `10.0.10.8/24`.
- **IP**: `10.0.10.8/24`.
## Nodos de la Red (Grid)
---
| Nodo | IP / Ubicación | Descripción / Rol |
## Nodos de la Red (Árbol de Dependencia)
### 🖥️ srv-ns8 (Physical / Hybrid)
- **CPU**: AMD Ryzen (16 hilos) | **RAM**: 15 GiB
| Nodo | IP | Rol |
| :--- | :--- | :--- |
| **[srv-NS8](../nodos/srv-NS8.md)** | `10.0.10.8` | Workstation / Híbrido |
| **[srv-pmox1](../nodos/srv-pmox1.md)** | `10.0.10.201` | Nodo Proxmox de Virtualización |
| **[srv-pmox2](../nodos/srv-pmox2.md)** | `10.0.10.202` | Nodo Proxmox de Virtualización |
| **[srv-pmox3](../nodos/srv-pmox3.md)** | `10.0.10.203` | Nodo Proxmox de Virtualización (High RAM) |
| **[srvv-SITIO](../nodos/srvv-SITIO.md)** | `10.0.10.18` `190.114.205.20` | VM Ubuntu / Docker Host |
| **[srvv-SITIO0](../nodos/srvv-SITIO0.md)** | `10.0.10.119` | VM Debian 12 (`srvv-SCERO`) |
| **[srvv-DTIC](../nodos/srvv-DTIC.md)** | `10.0.10.4` | VM Debian 12 / Docker Host |
| **[srvv-DOCs](../nodos/srvv-DOCs.md)** | `10.0.10.14` | VM Debian 12 / Docker Host |
| **[srvv-KOHA](../nodos/srvv-KOHA.md)** | `10.0.10.130` | VM Debian 11 / Librería |
| **[srvv-UPTIME](../nodos/srvv-UPTIME.md)** | `10.0.10.9` | LXC Debian 12 / Monitorización (⚠️ Disk 77%) |
| **[srvv-DATA](../nodos/srvv-DATA.md)** | `10.0.10.13` | LXC Debian 12 / Datos |
| **[srvv-SITIO2](../nodos/srvv-SITIO2.md)** | `10.0.10.19` | LXC Debian 12 / Web Secundario (Acceso `root`) |
| **[srv-xen01](../nodos/srv-xen01.md)** | `10.0.10.23` | **Citrix XenServer 7.0** / Hypervisor (4 Cores Xeon) |
| **[cam-hikvision-24](../nodos/cam-hikvision-24.md)** | `10.0.10.24` | Disp. Hikvision / Cámara o DVR (Detectado vía HTTP) |
| **[srvv-DNS](../nodos/srvv-DNS.md)** | `10.0.10.2` | VM Debian 12 / Servidor DNS |
| **[srv-ns8](../nodos/srv-ns8.md)** | `10.0.10.8` | **Gateway / Workstation** |
## Nodos Externos / Satélites
### ☁️ Cluster Proxmox
| Nodo | Ubicación | Descripción / Rol |
| :--- | :--- | :--- |
| **[pc-DASU0](../nodos/pc-DASU0.md)** | Oficina DASUTEN | Win10 Físico / Acceso Usuarias (Tailscale `100.65.62.44`) |
| **[pcv-DASU1](../nodos/pcv-DASU1.md)** | Facultad (`srv-pmox2`) | Win10 VM / Sistema DASU (Tailscale `100.100.145.51`) |
| **[srvv-MAURIK](../nodos/srvv-MAURIK.md)** | *Desconocida* | Windows Server / DC `utnlarioja.intranet` |
## Incidentes Recientes (Trazabilidad)
| ID | Nodo | Resumen | Estado |
#### **[srv-pmox1](../nodos/srv-pmox1.md)** (`10.0.10.201`)
*Proxmox VE 8.2.2 | i5-6500 (4C) | 16GB RAM*
| VMID | Nodo | IP | Rol |
| :--- | :--- | :--- | :--- |
| **[260218_1940](../incidentes/260218_1940_cronograma_posgrado.md)** | srv-NS8 | Extracción Cronograma Posgrado 2026 | ✅ Carga Exitosa |
| **[260218_1005](../incidentes/260218_1005_proxmox-ssh-cluster.md)** | srv-pmox* | Reparación Trust Cluster Proxmox (SSH) | ✅ Resuelto |
| **[260218_0829](../incidentes/260218_0829_conectividad-dasu.md)** | pc-DASU0 | Bypass AnyDesk via Tailscale/RustDesk | ✅ Implementado |
| **[260207_2100](../incidentes/260207_2100_srvv-fenix-recurrence.md)** | srv-pmox3 | Investigación Forense srvv-FENIX (Recurrencia) | ✅ Licencia OK |
| 101 | **[srvv-sitio](../nodos/srvv-sitio.md)** | `10.0.10.18` | VM Ubuntu / Docker Host |
| 102 | **[srvv-sitio0](../nodos/srvv-sitio0.md)** | `10.0.10.119` | VM Debian 12 |
| 103 | **[srvv-dtic](../nodos/srvv-dtic.md)** | `10.0.10.4` | VM Debian / Servicios |
| 104 | **[srvv-docs](../nodos/srvv-docs.md)** | `10.0.10.14` | VM Debian / Docs |
| 112 | **[srvv-dns](../nodos/srvv-dns.md)** | `10.0.10.2` | VM Debian / Servidor DNS |
#### **[srv-pmox2](../nodos/srv-pmox2.md)** (`10.0.10.202`)
*Proxmox VE (Estable) | i5-6500 (4C) | 16GB RAM*
| VMID | Nodo | IP | Rol |
| :--- | :--- | :--- | :--- |
| 105 | **[srvv-koha](../nodos/srvv-koha.md)** | `10.0.10.130` | VM Librería |
| 108 | **[pcv-dasu2](../nodos/pcv-dasu2.md)** | *DHCP* | Win10 VM / Sistema DASU |
| - | **[pcv-dasu1](../nodos/pcv-dasu1.md)** | *Tailscale* | Win10 VM / Sistema DASU |
#### **[srv-pmox3](../nodos/srv-pmox3.md)** (`10.0.10.203`)
*Proxmox VE (Estable) | AMD A10-9700 (4C+6G) | 64GB RAM*
| VMID | Nodo | IP | Rol |
| :--- | :--- | :--- | :--- |
| 111 | **[srvv-fenix](../nodos/srvv-fenix.md)** | *Interna* | Sistema Académico Legacy |
| 106 | **[srvv-uptime](../nodos/srvv-uptime.md)** | `10.0.10.9` | LXC Monitorización |
| 107 | **[srvv-data](../nodos/srvv-data.md)** | `10.0.10.13` | LXC Datos |
| 113 | **[srvv-sitio2](../nodos/srvv-sitio2.md)** | `10.0.10.19` | LXC Web Secundario |
### 🏔️ Citrix XenServer
#### **[srv-xen01](../nodos/srv-xen01.md)** (`10.0.10.23`)
*Citrix XenServer 7.0.0 | Xeon E3-1230 (4C) | Hypervisor Legacy*
| VMID | Nodo | IP | Rol |
| :--- | :--- | :--- | :--- |
| - | **[srvv-sysacadweb](../nodos/srvv-sysacadweb.md)** | *Interna* | Web SysACAD |
| - | **[srvv-maurik](../nodos/srvv-maurik.md)** | *Desconocida* | Domain Controller |
### 🛰️ Nodos Externos / Satélites
| Nodo | Ubicación | Descripción |
| :--- | :--- | :--- |
| **[cam-hikvision-24](../nodos/cam-hikvision-24.md)** | `10.0.10.24` | Cámara / DVR |
| **[pc-dasu0](../nodos/pc-dasu0.md)** | Oficina DASUTEN | Win10 Físico (Ryzen 5) |
## Hardware
- **CPU**: AMD Ryzen (16 hilos).
- **RAM**: 15 GiB Total.
- **Almacenamiento**: 438 GB (Root partition).
---
## Servicios Críticos (ADN Detectado)
### 1. Virtualización (Prioridad Alta)
- **Motor**: VirtualBox.
- **Carga**: VM `PCV_DTIC-RRHH_W732`.
- **Directiva**: **CRÍTICO / PERMANENTE**. Debe priorizarse el uso de RAM para esta VM.
- **Estado**: Ejecutándose (`Ssl`).
- **Carga**: VM `pcv-dtic-rrhh-w732`.
### 2. Contenedores Docker (En Optimización)
- **Motor**: Docker + Docker Compose.
- **Objetivo**: Optimizar despliegue y consumo de recursos.
- **Estado de Armonía**: ✅ **Consistente**.
- **Configuración Centralizada**: `dtic-srv-NS8/servicios/`.
- **Servicios Activos**:
- `portainer` (Gestión)
- **`nginx` (Nativo - Proxy Reverso)**
- `bitacoras` (App + DB)
- `sysacad` (App + Nginx interno)
- **`homepage` (Dashboard Unificado)**
- **Protección de Recursos**: Límites de RAM aplicados.
### 3. Acceso Remoto Seguro (Capa de Invisibilidad)
- **Capa de Red**: Tailscale (VPN Mesh).
- **IP Tailscale**: `100.88.252.26`.
- **Propósito**: Acceso cifrado a servicios internos y administración SSH sin exposición a la WAN.
- **Capa Gráfica**: RustDesk (Nativo).
- **Propósito**: Soporte remoto visual optimizado sobre el túnel de Tailscale.
### 4. Puntos de Acceso (URLs)
| Servicio | URL Pública (SSL) | URL Interna (Tailscale) | Descripción |
| :--- | :--- | :--- | :--- |
| **Portal Principal** | `https://ns8.frlr.utn.edu.ar` | `https://100.88.252.26` | **Dashboard Unificado (Homepage)** |
| **Portainer** | `https://ns8.frlr.utn.edu.ar/portainer/` | `http://100.88.252.26:9000` | Gestión de Contenedores |
| **SysACAD** | `https://ns8.frlr.utn.edu.ar/sysacad/` | `http://100.88.252.26:8080` | Sistema Académico |
| **Bitácoras** | `https://ns8.frlr.utn.edu.ar/bitacoras/` | `http://100.88.252.26:5173` | Sistema de Bitácoras |
### 4. Topología de Red (Híbrida / Policy Routing)
El servidor opera con una arquitectura de red avanzada que combina velocidad en LAN y visibilidad en WAN mediante **Policy Based Routing**.
- **Interfaz Física**: `enp38s0`
- **Direcciones IP**:
1. **Privada (Principal/Salida)**: `10.0.10.8/24` (Gateway: `10.0.10.1`). Priorizada para navegación rápida del servidor.
2. **Pública (Entrada)**: `190.114.205.18/24` (Gateway: `190.114.205.1`). Habilitada para acceso externo seguro.
- **Mecanismo de Enrutamiento**:
- Se utiliza una tabla de rutas secundaria (`190`) y una regla de política (`ip rule`) para asegurar que todo tráfico que entra por la IP pública responda por el Gateway público, evitando asimetría.
- **Optimización VPN (Tailscale)**: El tráfico saliente de la VPN utiliza el Gateway prioritario `10.0.10.1`, garantizando que el acceso remoto sea a través de la red de mayor velocidad disponible en el host.
- **Seguridad de Red**:
- **Protocolo "Hombre Muerto"**: Implementado en scripts de configuración para revertir cambios automáticamente en caso de pérdida de conexión.
- **SSL/TLS**: Terminación SSL en Nginx Nativo (Puerto 443) para todo el tráfico entrante.
- **Capa de VPN**: Tailscale actúa como capa de autenticación y cifrado adicional.
## Propósito
Servidor híbrido que garantiza la operatividad continua de la VM administrativa de RRHH, mientras aloja servicios de desarrollo DTIC gestionados por Nginx Nativo y Docker.
## Estado Actual
- **Estado General**: Operativo. VM y Servicios Docker ejecutándose simultáneamente.
- **Uso de Recursos**: ~7.5GB RAM Estimada (4GB VM + ~3.5GB Docker Max). Equilibrado.
### 2. Contenedores Docker (srv-ns8)
- **Estado**: ✅ **Consistente**.
- **Servicios Activos**:
- `nginx` (Proxy Reverso)
- `homepage` (Dashboard Unificado: `https://ns8.frlr.utn.edu.ar`)
- `bitacoras`
- `portainer`
### 3. Acceso Remoto Seguro
- **Tailscale**: `100.88.252.26` (Mesh VPN).
- **RustDesk**: Soporte remoto visual.
## Topología de Red
- **Híbrida**: `10.0.10.8` (LAN) + `190.114.205.18` (WAN) con Policy Routing.
+36 -23
View File
@@ -1,15 +1,15 @@
# 02 - Protocolo del Proyecto: Normas y Directivas
Este documento establece las reglas fundamentales para la interacción, documentación y desarrollo en el proyecto `srv-NS8`.
Este documento establece las reglas fundamentales para la interacción, documentación y desarrollo en el proyecto `srv-ns8`.
## 1. Idioma
## 1. Idioma y Nomenclatura
- **Directiva**: **Todo el contenido debe estar en español.**
- **Nomenclatura de Nodos**: Estrictamente **minúsculas** en nombres de archivo y referencias (ej: `srv-ns8`, `pc-dasu0`, `srvv-maurik`).
- **Alcance**:
- Interacciones con el asistente (chat).
- Documentación (archivos `.md`).
- Mensajes de Commit (Git).
- Comentarios en el código (scripts, configs).
- Nombres de archivos y directorios (preferentemente, salvo estándares técnicos estrictos).
## 2. Formato de Documentación
- **Estilo**: Markdown estándar.
@@ -17,27 +17,40 @@ Este documento establece las reglas fundamentales para la interacción, document
## 3. Armonía y Auto-optimización
- **Principio**: La documentación (ADN) debe mantenerse como un todo coherente y libre de contradicciones.
- **Alcance Global**: Esta directiva aplica a **TODOS** los directorios del proyecto, incluyendo `adn/`, `bitacoras/`, `nodos/`, y `procedimientos/`.
- **Directiva**:
- **Consistencia**: No deben existir discrepancias entre diferentes hebras (archivos `.md`). Si se actualiza una definición en `01_ontologia.md`, debe reflejarse en los protocolos y bitácoras correspondientes.
- **Consistencia**: No deben existir discrepancias entre diferentes hebras. Si se actualiza una definición en `01_ontologia.md`, debe reflejarse en los protocolos y bitácoras correspondientes.
- **Trazabilidad**: Los IDs y estados deben ser consistentes a través del tiempo.
- **Auto-corrección**: Al detectar una inconsistencia, es prioritario resolverla para restaurar la armonía del sistema documental.
## 4. Estructura de Registro (Centralizada)
- **Principio**: **Bitácora Única**.
- `adn/00_bitacora.md` es la **Fuente de Verdad Histórica** del Grid completo.
- Se prohíben bitácoras dispersas en archivos individuales.
- **Formato**: Tabla Markdown con columnas: `| Hora | Nodo | Detalle |`.
- **Hora**: `HH:MM` (Hora Local).
- **Nodo**: Hostname del equipo afectado (e.g. `srv-pmox1`, `srvv-SITIO`).
- **Detalle**: Descripción consisa. Uso de Emojis para estado visual (✅, ⚠️, ❌, 🔧).
## 4. Estructura de Bitácora (Flujo Diario)
- **Principio**: **Orden Inverso Cronológico** (Lo más nuevo SIEMPRE ARRIBA).
- **Archivo Diario**: `bitacoras/YYYY-MM-DD.md`.
- **Secciones Obligatorias**:
### 4.1 Control de Gestión
- **Pendientes**: Tabla de tareas por hacer (ID | NODO | DETALLE).
- **En Proceso**: Tabla de tareas activas (ID | NODO | DETALLE).
- **Resumen de Actividades**:
- **Formato**: Tabla (NODO | RESUMEN INTEGRAL).
- **Estilo**: **Narrativa Sintética e Integral**. SIN TÍTULOS NI ESTADOS en el texto. Solo la historia consolidada del día para ese nodo.
- **Regla**: **Una sola fila por Nodo**.
### 4.2 Actividades Detalladas
- **Subdivisión**: Encabezados por Nodo (`### srv-ns8`).
- **Formato**: Tabla detallada (Tema | Detalle | Ini | Fin).
- **Estilo**: **Narrativa Generosa y Técnica**. Aquí se explican los "qué", "cómo" y "por qué".
- **Estados**: Uso de iconos (✅, 🧹, 🔧) para visualización rápida.
### 4.3 Footer de Mantenimiento (IA)
- Al final de cada bitácora, incluir el bloque de comentarios HTML con las **Premisas de Trabajo** (Orden inverso, Nomenclatura, Flujo de Carga: Detalle -> Resumen).
## 5. Documentación de Nodos (Snapshots)
- **Ubicación**: `adn/nodos/<HOSTNAME>.md`.
- **Ubicación**: `nodos/<hostname>.md` (Raíz del proyecto).
- **Contenido**: Representa el **Estado Actual** (Snapshot) del nodo.
- **Actualización**: Solo se modifica cuando cambia la configuración o estado del nodo (no se usa como log histórico).
- **Actualización**: Solo se modifica cuando cambia la configuración o estado del nodo. No duplicar información dinámica de la bitácora.
## 5. Protocolo de Seguridad de Red (Hombre Muerto)
## 6. Protocolo de Seguridad de Red (Hombre Muerto)
- **Problemática**: La administración remota del servidor implica el riesgo de desconexión total ante cambios erróneos en la configuración de red.
- **Directiva**: **Toda modificación de red debe incluir un mecanismo de reversión automática.**
- **Implementación**:
@@ -48,22 +61,22 @@ Este documento establece las reglas fundamentales para la interacción, document
3. **Si no hay confirmación**: Revertir cambios inmediatamente y restaurar estado anterior.
4. **Si hay confirmación**: Hacer cambios persistentes.
## 6. Referencia de Estados (Bitácora)
Para optimizar espacio horizontal, la columna `Estado` utiliza los siguientes iconos:
## 7. Referencia de Estados (Bitácora Detallada)
Para optimizar espacio horizontal en tablas de detalle:
| Icono | Significado | Descripción |
| :---: | :--- | :--- |
| ✅ | **Completado** | Tarea finalizada o problema solucionado exitosamente. |
| ⏳ | **En Proceso** | Tarea iniciada pero pendiente de cierre. |
| 🟢 | **Operativo** | Servicio funcionando correctamente tras intervención. |
| 🔧 | **Mantenimiento** | Acción técnica de configuración o ajuste. |
| 🧪 | **Verificado** | Validación técnica o prueba superada. |
| ⚠️ | **Alerta** | Problema detectado, riesgo o atención requerida. |
| 📍 | **Definido** | Hito establecido o prioridad fijada sin ejecución inmediata. |
| 📍 | **Definido** | Hito establecido o prioridad fijada. |
## 7. Resguardo del Repositorio (Safeguard)
## 8. Resguardo del Repositorio (Safeguard)
- **Objetivo**: Asegurar la integridad y el historial de cambios del proyecto.
- **Directiva**:
- **Frecuencia**: Al finalizar una tarea significativa o conjunto de tareas relacionadas (hito).
- **Alcance**: Todo cambio en `adn/`, `servicios/config`, `scripts/` y documentación `docs/`.
- **Formato Mensaje**: `[Categoría] Descripción breve del cambio`.
- Categorías: `Feat` (Nueva funcionalidad), `Fix` (Corrección), `Docs` (Documentación), `Refactor` (Mejora de código/estructura), `Chore` (Mantenimiento).