diff --git a/adn/00_bitacora.md b/adn/00_bitacora.md index 67d761a3..7f9b192f 100644 --- a/adn/00_bitacora.md +++ b/adn/00_bitacora.md @@ -8,6 +8,8 @@ Este documento registra la evolución, cambios y eventos significativos en el se | Hora | Nodo | Detalle | | :--- | :--- | :--- | +| 14:00 | srv-NS8 | ✅ **Conectividad DASU**: Bypass Exitoso. Instalación de **Tailscale** en `pc-DASU0` (Remoto, IP `100.65.62.44`) y `pcv-DASU1` (Interno, IP `100.100.145.51`). AnyDesk configurado para conectar vía LAN (VPN), eliminando límite de tiempo. | +| 11:00 | srv-pmox* | ✅ **Incidencia Crítica Resuelta**: **Cluster Proxmox SSH**. Se restauró la confianza entre nodos cambiando `PermitRootLogin prohibit-password` y regenerando certificados (`pvecm updatecerts`). Consolas VNC recuperadas. | | 00:55 | Grid | ✅ **Documentación ONTO**: Se actualiza `01_ontologia.md` y se crean fichas para `srv-xen01` y `cam-hikvision-24`. | | 00:45 | cam-hikvision-24 | ⚠️ **Sonda de Campo**: **Detección HTTP**. IP `10.0.10.24`. Puerto 80 abierto (Hikvision Login), SSH cerrado. Rol: Cámara/DVR. | | 00:35 | srv-xen01 | ✅ **Sonda de Campo**: **Corrección de Rol**. IP `10.0.10.23`. Identificado como **Citrix XenServer 7.0** (previamente catalogado como Debian). Evidencia forense de procesos Xen y Open vSwitch. | diff --git a/adn/01_ontologia.md b/adn/01_ontologia.md index 8d48ee10..9732cf31 100644 --- a/adn/01_ontologia.md +++ b/adn/01_ontologia.md @@ -11,21 +11,31 @@ Este documento define la identidad, propósito y componentes principales del ser - **Ubicación de Red**: `10.0.10.8/24`. ## Nodos de la Red (Grid) -- **srv-NS8** (Local): 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`): VM Ubuntu / Docker Host (IP Pública `190.114.205.20`). -- **[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. + +| Nodo | IP / Ubicación | Descripción / Rol | +| :--- | :--- | :--- | +| **srv-NS8** (Manual) | `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 | + +## Nodos Externos / Satélites + +| 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`) | diff --git a/incidentes/00_template.md b/incidentes/00_template.md new file mode 100644 index 00000000..68b15580 --- /dev/null +++ b/incidentes/00_template.md @@ -0,0 +1,38 @@ +# Incidente: [Título Descriptivo] + +| ID | Estado | Fecha de Inicio | Fecha de Cierre | Severidad | +| :--- | :--- | :--- | :--- | :--- | +| **INC-[YYYYMMDD-HH]** | ✅ Resuelto | YYYY-MM-DD HH:MM | YYYY-MM-DD HH:MM | Alta/Media/Baja | + +## 1. Resumen Ejecutivo +Breve descripción del problema y su impacto en el negocio/operación. + +## 2. Detalles del Incidente +- **Detectado por**: [Nombre/Rol] +- **Sistemas Afectados**: [Lista de nodos/servicios] +- **Síntomas Observados**: + - [Detalle 1] + - [Detalle 2] + +## 3. Diagnóstico y Causa Raíz +- **Investigación**: ¿Qué pasos se siguieron para encontrar el problema? +- **Causa Raíz (RCA)**: ¿Cuál fue el origen técnico real? (e.g., Configuración errónea, Fallo de HW, Bug). + +## 4. Solución Implementada +Pasos técnicos ejecutados para resolver el incidente: +1. [Paso 1] +2. [Paso 2] + +## 5. Actores Intervinientes +- **[Nombre]** ([Rol]): [Acción principal] +- **Agente (A.I.)**: Soporte diagnóstico y ejecución. + +## 6. Resultado y Verificación +- **Estado Final**: [Descripción del estado post-fix] +- **Pruebas de Validación**: + - [Prueba 1] + - [Prueba 2] + +## 7. Lecciones Aprendidas / Mejoras Futuras +- [Lección 1] +- [Mejora sugerida para evitar recurrencia] diff --git a/incidentes/260218_0829_conectividad-dasu.md b/incidentes/260218_0829_conectividad-dasu.md new file mode 100644 index 00000000..dddaf4da --- /dev/null +++ b/incidentes/260218_0829_conectividad-dasu.md @@ -0,0 +1,27 @@ +# Incidente/Proyecto: Conectividad Segura DASU (Bypass AnyDesk Free) + +| ID | Estado | Fecha Reporte | Fecha Solución | Severidad | +| :--- | :--- | :--- | :--- | :--- | +| **260218_0829_dasu** | ✅ Implementado | 2026-02-18 08:29 | 2026-02-18 12:45 | ⚡ Media | + +## 1. Cronología de Actores +- **08:29** - **Andrea ALMIRON** (Usuaria) reporta problemas para acceder al sistema DASU desde la oficina externa debido a limitaciones de tiempo en AnyDesk. +- **09:27** - **Cristian GATICA** recepciona la consulta. Al no poder resolverla inmediatamente, deriva el caso al soporte de nivel superior. +- **10:05** - **Ricardo MONLA** toma el control del incidente e inicia el trabajo técnico junto con **Antigravity** (Agente AI). + +## 2. Diagnóstico del Problema +- **Escenario**: + - **pc-DASU0** (Oficina DASUTEN, Externa): PC Física. + - **pcv-DASU1** (Facultad, Interna): VM en `srv-pmox2`. +- **Bloqueo**: La conexión por AnyDesk se cortaba por detección de uso comercial en versión gratuita. + +## 3. Solución Técnica (Ricardo MONLA + Antigravity) +Se decidió **reemplazar la herramienta de acceso remoto** para eliminar la dependencia de licencias propietarias. +1. **Red Base**: Implementación de **Tailscale** (VPN Mesh) para conectividad directa (`100.x`). +2. **Migración de Herramienta**: + - **RustDesk**: Se instaló y configuró como herramienta principal (Open Source). + - **AnyDesk**: Se **desinstaló** del equipo origen (`pc-DASU0`) para evitar conflictos y restricciones futuras. + +## 4. Resultado +- Conectividad restablecida sin limitaciones de tiempo. +- Documentación actualizada en `nodos/`. diff --git a/incidentes/260218_1005_proxmox-ssh-cluster.md b/incidentes/260218_1005_proxmox-ssh-cluster.md new file mode 100644 index 00000000..a74bd274 --- /dev/null +++ b/incidentes/260218_1005_proxmox-ssh-cluster.md @@ -0,0 +1,25 @@ +# Incidente: Pérdida de Confianza SSH en Cluster Proxmox + +| ID | Estado | Fecha de Inicio | Fecha de Cierre | Severidad | +| :--- | :--- | :--- | :--- | :--- | +| **260218_1005_proxmox-ssh** | ✅ Resuelto | 2026-02-18 10:05 | 2026-02-18 11:00 | 🔥 Alta | + +## 1. Cronología y Actores +- **10:05** - **Ricardo MONLA** inicia revisión de rutina/mantenimiento en la infraestructura. +- **10:15** - **Ricardo MONLA** descubre el bloqueo SSH entre nodos del clúster al intentar operar consolas VNC. + +## 2. Resumen Ejecutivo +Hallazgo y resolución de bloqueo en la administración remota del clúster. + +## 3. Detalles del Incidente +- **Sistemas Afectados**: `srv-pmox1`, `srv-pmox2`, `srv-pmox3`. +- **Síntomas**: Error `Permission denied` detectado por el Administrador al operar sobre el clúster. + +## 4. Diagnóstico y Causa Raíz +- **Causa Raíz**: **Hardening Excesivo**. Se configuró `PermitRootLogin no` en `/etc/ssh/sshd_config`, bloqueando la comunicación interna del clúster. + +## 5. Solución Implementada +- **Antigravity (Agente)** asistió a **Ricardo MONLA** para revertir la configuración a `PermitRootLogin prohibit-password` y regenerar certificados (`pvecm updatecerts`). + +## 6. Resultado +- Acceso SSH y Consolas VNC restaurados. diff --git a/adn/nodos/cam-hikvision-24.md b/nodos/cam-hikvision-24.md similarity index 100% rename from adn/nodos/cam-hikvision-24.md rename to nodos/cam-hikvision-24.md diff --git a/nodos/pc-DASU0.md b/nodos/pc-DASU0.md new file mode 100644 index 00000000..0ecb74f7 --- /dev/null +++ b/nodos/pc-DASU0.md @@ -0,0 +1,19 @@ +# Nodo: pc-DASU0 + +## Información General +- **Hostname**: `pc-DASU0` (Prev: `UTNLR32120`) +- **Patrimonio**: `32120` +- **Ubicación**: Oficina DASUTEN (Externa a Facultad) +- **Tipo**: PC Física +- **Rol**: Estación de Trabajo Remota (Usuarios: Andrea/Romina) +- **Sistema Operativo**: Windows 10 +- **Conectividad**: Tailscale (`100.65.62.44`) - ✅ ONLINE + +## Credenciales de Gestión (Tailscale Admin) +- **Cuenta Maestra**: `pcdasu0@frlr.utn.edu.ar` +- **Pass (Ref)**: `UTN$larioja00` +- **Propósito**: Esta cuenta gestiona la red Tailscale que une a `pc-DASU0` con `pcv-DASU1`. + +## Servicios +- **RustDesk**: ID `398 699 016` (Acceso Remoto Principal). Password: `UTNlarioja00` + diff --git a/nodos/pcv-DASU1.md b/nodos/pcv-DASU1.md new file mode 100644 index 00000000..0968672a --- /dev/null +++ b/nodos/pcv-DASU1.md @@ -0,0 +1,17 @@ +# Nodo: pcv-DASU1 + +## Información General +- **Hostname**: `pcv-DASU1` (Prev: `pcvDASU2`) +- **Ubicación**: Interna (Facultad / srv-pmox2) +- **Tipo**: Máquina Virtual (VM) +- **Rol**: Estación de Trabajo Objetivo (Hosting del Sistema DASU) +- **Sistema Operativo**: Windows 10 +- **Conectividad**: Tailscale (`100.100.145.51`) - ✅ ONLINE + +## Servicios +- **Sistema DASU**: Aplicativo legacy/interno. +- **AnyDesk**: Servidor de acceso (Escuchando conexiones LAN/Tailscale). +- **RustDesk**: ID `290 015 364` (Acceso Remoto Principal). Password: `UTNlarioja00` + +## Estrategia de Acceso +Este nodo debe tener Tailscale instalado y logueado con la cuenta `pcdasu0@frlr.utn.edu.ar` (o validado en la misma red) para recibir conexiones directas desde `pc-DASU0`. diff --git a/adn/nodos/srv-pmox1.md b/nodos/srv-pmox1.md similarity index 100% rename from adn/nodos/srv-pmox1.md rename to nodos/srv-pmox1.md diff --git a/adn/nodos/srv-pmox2.md b/nodos/srv-pmox2.md similarity index 100% rename from adn/nodos/srv-pmox2.md rename to nodos/srv-pmox2.md diff --git a/adn/nodos/srv-pmox3.md b/nodos/srv-pmox3.md similarity index 100% rename from adn/nodos/srv-pmox3.md rename to nodos/srv-pmox3.md diff --git a/adn/nodos/srv-xen01.md b/nodos/srv-xen01.md similarity index 100% rename from adn/nodos/srv-xen01.md rename to nodos/srv-xen01.md diff --git a/adn/nodos/srvv-DATA.md b/nodos/srvv-DATA.md similarity index 100% rename from adn/nodos/srvv-DATA.md rename to nodos/srvv-DATA.md diff --git a/adn/nodos/srvv-DNS.md b/nodos/srvv-DNS.md similarity index 100% rename from adn/nodos/srvv-DNS.md rename to nodos/srvv-DNS.md diff --git a/adn/nodos/srvv-DOCs.md b/nodos/srvv-DOCs.md similarity index 100% rename from adn/nodos/srvv-DOCs.md rename to nodos/srvv-DOCs.md diff --git a/adn/nodos/srvv-DTIC.md b/nodos/srvv-DTIC.md similarity index 100% rename from adn/nodos/srvv-DTIC.md rename to nodos/srvv-DTIC.md diff --git a/adn/nodos/srvv-KOHA.md b/nodos/srvv-KOHA.md similarity index 100% rename from adn/nodos/srvv-KOHA.md rename to nodos/srvv-KOHA.md diff --git a/adn/nodos/srvv-SITIO.md b/nodos/srvv-SITIO.md similarity index 100% rename from adn/nodos/srvv-SITIO.md rename to nodos/srvv-SITIO.md diff --git a/adn/nodos/srvv-SITIO0.md b/nodos/srvv-SITIO0.md similarity index 100% rename from adn/nodos/srvv-SITIO0.md rename to nodos/srvv-SITIO0.md diff --git a/adn/nodos/srvv-SITIO2.md b/nodos/srvv-SITIO2.md similarity index 100% rename from adn/nodos/srvv-SITIO2.md rename to nodos/srvv-SITIO2.md diff --git a/adn/nodos/srvv-UPTIME.md b/nodos/srvv-UPTIME.md similarity index 100% rename from adn/nodos/srvv-UPTIME.md rename to nodos/srvv-UPTIME.md diff --git a/scripts/sonda_windows.ps1 b/scripts/sonda_windows.ps1 new file mode 100644 index 00000000..9365c12a --- /dev/null +++ b/scripts/sonda_windows.ps1 @@ -0,0 +1,61 @@ +<# +.SYNOPSIS + Sonda de Relevamiento para Nodos Windows (Compatible con Agente srv-NS8) +.DESCRIPTION + Recopila información de hardware, red y software para generar un perfil JSON compatible. +.USAGE + .\sonda_windows.ps1 +#> + +$ErrorActionPreference = "SilentlyContinue" + +# --- 1. System Info --- +$os = Get-CimInstance Win32_OperatingSystem +$cs = Get-CimInstance Win32_ComputerSystem +$cpu = Get-CimInstance Win32_Processor +$mem = Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum + +# --- 2. Network --- +$net = Get-NetIPAddress | Where-Object { $_.AddressFamily -eq 'IPv4' -and $_.InterfaceAlias -notlike '*Loopback*' } | Select-Object IPAddress, InterfaceAlias + +# --- 3. Disks --- +$disks = Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size + +# --- 4. Software (Specific Checks) --- +$anydesk = Get-Process -Name "AnyDesk" -ErrorAction SilentlyContinue +$tailscale = Get-Service -Name "Tailscale" -ErrorAction SilentlyContinue + +# --- Construct JSON --- +$payload = @{ + timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss zzz") + connector = @{ + hostname_detected = $env:COMPUTERNAME + user = $env:USERNAME + platorm = "Windows" + } + cpu = @{ + model = $cpu.Name + cores = $cpu.NumberOfCores + arch = $os.OSArchitecture + } + ram = @{ + total_gb = [math]::Round($mem.Sum / 1GB, 2) + raw = $mem.Sum + } + os = @{ + edition = $os.Caption + version = $os.Version + build = $os.BuildNumber + } + network = $net + disks = $disks + services = @{ + anydesk_running = [bool]$anydesk + tailscale_status = if ($tailscale) { $tailscale.Status } else { "Not Installed" } + } +} + +# --- Output --- +Write-Host "---START_PAYLOAD---" -ForegroundColor Cyan +$payload | ConvertTo-Json -Depth 3 +Write-Host "---END_PAYLOAD---" -ForegroundColor Cyan