Estado actual de las reglas de firewall de cada servidor — quién puede llegar a qué, y desde dónde.
Cada servidor sigue una política whitelist: todo bloqueado por default, solo se permite explícitamente lo necesario. Hay tres capas independientes que se combinan:
ufw en Linux, Windows Firewall en Windows) — la capa principal./etc/pve/firewall/<ID>.fw) — capa adicional, actualmente desactivada en la mayoría de los LXC por un bug de NAT (ver Bug de NAT con firewall=1).| ID | Nombre | IP | Reglas de entrada permitidas |
|---|---|---|---|
| 103 | nginx-proxy | 192.168.100.103 | 80, 443 (público), 22 y 81 (solo admin PC .35 + WireGuard .105) |
| 107 | RustDesk | 192.168.100.107 | 21115, 21116 (tcp/udp), 21117 (público), 22 (solo admin) |
| 150 | zammad-producción | 192.168.100.150 | 8080 (solo desde nginx-proxy .103), 22 (solo admin) |
| 152 | SQL-Server-Produccion | 192.168.100.152 | 1433 (solo desde IIS .153), 3389 (solo admin PC .35 + WireGuard .105) |
| 153 | IIS-GeneXus-Produccion | 192.168.100.153 | 80, 443 (solo desde nginx-proxy .103), 3389 (solo admin) |
| 105 | WireGuard | 192.168.100.105 | Firewall de Proxmox desactivado a propósito — maneja su propio filtrado con nft |
| 160 | wazuh-manager | 192.168.100.160 | 443, 22 (solo admin/WireGuard), 1514, 1515 (abiertos a toda la LAN, para agentes) |
| 171 | wiki (Wiki.js) | 192.168.100.171 | 3000, 22 (solo admin PC .35 + WireGuard .105) |
ufwapt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow <puertos públicos según servicio>
ufw allow from 192.168.100.35 to any port 22 # admin PC
ufw allow from 192.168.100.105 to any port 22 # vía WireGuard
ufw --force enable
New-NetFirewallRule -DisplayName "Nombre descriptivo" -Direction Inbound -Protocol TCP -LocalPort <PUERTO> -RemoteAddress <IP_ORIGEN> -Action Allow
Verifica el comportamiento default del perfil (si dice NotConfigured, el sistema bloquea todo lo no permitido explícitamente, no hace falta regla de bloqueo adicional):
Get-NetFirewallProfile | Select-Object Name, DefaultInboundAction
Solo usar en servidores que no necesiten salida constante a Internet (ver el bug documentado en Bug de NAT con firewall=1).
# Habilitar en la interfaz
pct set <ID> -net0 name=eth0,bridge=vmbr0,ip=<IP>/24,gw=192.168.100.10,firewall=1
# Crear el archivo de reglas
nano /etc/pve/firewall/<ID>.fw
Estructura base:
[OPTIONS]
enable: 1
policy_in: DROP
[RULES]
IN ACCEPT -source <IP_ORIGEN> -p tcp -dport <PUERTO> -log nolog # comentario
Aplicar:
pve-firewall compile