Tema
Reglas de Firewall — Detalle Completo
Última revisión: 2026-03-13
Plataforma activa: DigitalOcean
Total de firewalls en producción: 8
Detalle exhaustivo de todas las reglas de firewall activas en producción,
cubriendo los requisitos PCI DSS 1.2, 1.3 y 1.4.
1. Resumen de Capas de Firewall
| Capa | Tecnología | Cantidad | Alcance |
|---|---|---|---|
| 1 | DO Cloud Firewalls | 4 | DMZ, CDE, App, Mgmt |
| 2 | DO Database Firewall | 1 | Managed PostgreSQL |
| 3 | K8s NetworkPolicies | 12 políticas | Namespaces cde, app, monitoring, kafka |
| 4 | DOKS Node Pool Isolation | 3 pools | system, CDE, app |
| 5 | Compliance VM Firewalls | 3 | Collector, VAPT, CDD |
2. Cloud Firewalls — Zona DMZ
Nombre: fintrix-production-dmz-fw
Archivo Terraform: digitalocean/modules/networking/main.tf
Ingress
| Protocolo | Puerto | Origen | Descripción |
|---|---|---|---|
| TCP | 443 | 0.0.0.0/0, ::/0 | HTTPS desde internet |
| TCP | 80 | 0.0.0.0/0, ::/0 | Health checks (Load Balancer) |
Egress
| Protocolo | Puerto | Destino | Descripción |
|---|---|---|---|
| TCP | 1–65535 | cde_cidr, app_cidr | Solo a zonas internas |
| UDP | 53 | 0.0.0.0/0 | DNS |
Principio
Solo HTTPS/HTTP desde internet. El egress solo permite tráfico hacia las zonas CDE y App internas.
3. Cloud Firewalls — Zona CDE
Nombre: fintrix-production-cde-fw
Tags: fintrix-cde
Archivo Terraform: digitalocean/modules/networking/main.tf
Ingress
| Protocolo | Puerto | Origen | Descripción |
|---|---|---|---|
| TCP | 443 | 10.100.1.0/24 (DMZ) | HTTPS desde DMZ |
| TCP | 8000 | 10.100.1.0/24 (DMZ) | Kong proxy desde DMZ |
| TCP | 3700 | App + CDE CIDRs | auth-service |
| TCP | 3600 | App + CDE CIDRs | tokenization-service |
| TCP | 3510 | 10.100.10.0/24 SOLO | card-vault-service (solo CDE) |
| TCP | 10250–10255 | 10.100.0.0/16 (VPC) | K8s internal |
| TCP/UDP | ALL | tag: compliance-scanner | Escáner de cumplimiento |
| ICMP | — | tag: compliance-scanner | Ping desde escáner |
Egress
| Protocolo | Puerto | Destino | Descripción |
|---|---|---|---|
| TCP | 5432 | 10.100.10.0/24 (CDE) | PostgreSQL |
| TCP | 9092 | 10.100.20.0/24 (App) | Kafka |
| UDP | 53 | 0.0.0.0/0 | DNS |
| TCP | 443 | 0.0.0.0/0 | HTTPS (webhooks, APIs externas) |
Punto crítico
El servicio card-vault-service (puerto 3510) SOLO es accesible desde el CIDR CDE. Ni la zona DMZ ni la zona App pueden alcanzarlo.
4. Cloud Firewalls — Zona App
Nombre: fintrix-production-app-fw
Tags: fintrix-app
Archivo Terraform: digitalocean/modules/networking/main.tf
Ingress
| Protocolo | Puerto | Origen | Descripción |
|---|---|---|---|
| TCP | 3000–4200 | CDE + DMZ + App CIDRs | Puertos de aplicación |
| TCP | 9092 | CDE + App CIDRs | Kafka |
| TCP | 2181 | 10.100.20.0/24 (App) | Zookeeper |
| TCP | 5432 | 10.100.20.0/24 (App) | PostgreSQL no-PCI |
| TCP | 10250–10255 | 10.100.0.0/16 (VPC) | K8s internal |
| TCP/UDP | ALL | tag: compliance-scanner | Escáner de cumplimiento |
| ICMP | — | tag: compliance-scanner | Ping desde escáner |
Egress
| Protocolo | Puerto | Destino | Descripción |
|---|---|---|---|
| TCP | 3600–3700 | 10.100.10.0/24 (CDE) | Servicios CDE |
| TCP | 5432 | App + CDE CIDRs | PostgreSQL |
| TCP | 9092 | 10.100.20.0/24 (App) | Kafka |
| TCP | 443 | 0.0.0.0/0 | HTTPS externo |
| UDP | 53 | 0.0.0.0/0 | DNS |
5. Cloud Firewalls — Zona Mgmt
Nombre: fintrix-production-mgmt-fw
Tags: fintrix-mgmt
Archivo Terraform: digitalocean/modules/networking/main.tf
Ingress
| Protocolo | Puerto | Origen | Descripción |
|---|---|---|---|
| TCP | 22 | allowed_admin_cidrs | SSH (IPs autorizadas) |
| UDP | 51820 | allowed_admin_cidrs | WireGuard VPN |
| TCP | 9090 | 10.100.0.0/16 (VPC) | Prometheus |
| TCP | 3000 | 10.100.30.0/24 (Mgmt) | Grafana |
| TCP | 9093 | 10.100.30.0/24 (Mgmt) | Alertmanager |
| TCP | 10250–10255 | 10.100.0.0/16 (VPC) | K8s internal |
Egress
| Protocolo | Puerto | Destino | Descripción |
|---|---|---|---|
| TCP | 1–65535 | 10.100.0.0/16 (VPC) | Monitoreo interno completo |
| TCP | 443 | 0.0.0.0/0 | HTTPS externo |
| UDP | 53 | 0.0.0.0/0 | DNS |
Acceso administrativo
allowed_admin_cidrs está vacío por defecto ([]). Se configura explícitamente en producción con las IPs del equipo autorizado. Sin esta configuración, SSH y VPN no son accesibles desde ninguna IP.
6. Database Firewall — Managed PostgreSQL
Archivo Terraform: digitalocean/modules/managed_postgres/main.tf
| Tipo de regla | Valor | Descripción |
|---|---|---|
k8s | ID del clúster DOKS | Permite acceso desde Kubernetes |
ip_addr | 10.100.10.0/24 | Permite acceso desde CDE CIDR |
Restricción estricta
La base de datos SOLO acepta conexiones desde el clúster K8s (verificado por ID) y la subred CDE. Ningún otro origen — ni App, ni DMZ, ni internet — puede conectarse.
Configuración del cluster:
- Bases de datos:
auth_db,vault_db,fintrix_payments - Usuarios:
fintrix_app(RW),fintrix_readonly(RO) - HA: 2 nodos (primario + standby)
- Connection pooling: modo transacción
- Red: VPC privada (
private_network_uuid)
7. Kubernetes NetworkPolicies
Archivo: backend/infra/kubernetes/network-policies.yaml (326 líneas)
Plataforma: DOKS (DigitalOcean Kubernetes Service)
7.1 Namespace cde (pci-scope: true)
| Política | Tipo | Regla |
|---|---|---|
default-deny-all | Ingress + Egress | Deniega todo por defecto |
allow-from-kong | Ingress | Solo desde namespace kong o ingress-nginx |
allow-cde-internal | Ingress + Egress | Comunicación entre pods CDE |
allow-egress-pci-db | Egress | Solo a 10.100.10.0/24, puertos 25060/25061 |
allow-egress-kafka | Egress | Solo pods con label kafka-client: "true", puertos 9092/9093 |
allow-dns | Egress | Solo a kube-dns, puerto 53 |
Puertos DigitalOcean
Los puertos 25060/25061 son los puertos nativos de DO Managed PostgreSQL (no el 5432 estándar). Esto confirma que las policies están adaptadas a la plataforma actual.
7.2 Namespace app (pci-scope: false)
| Política | Tipo | Regla |
|---|---|---|
default-deny-all | Ingress + Egress | Deniega todo por defecto |
allow-from-kong | Ingress | Solo desde namespace kong |
allow-egress-cde | Egress | Solo a namespace CDE, puertos 3700 (auth), 3600 (tokenization) |
allow-app-internal-kafka | Ingress + Egress | Comunicación interna App + egress a kafka puerto 9092 |
allow-dns | Egress | Solo a kube-dns, puerto 53 |
7.3 Namespace monitoring
| Política | Tipo | Regla |
|---|---|---|
allow-prometheus-scrape | Egress | Pods app: prometheus pueden scrape en puertos 9100, 9090, 3000, 4000 |
8. Node Pool Isolation (DOKS)
Archivo Terraform: digitalocean/modules/doks/main.tf
| Pool | Tamaño | Nodos | Taint | Propósito |
|---|---|---|---|---|
| system | s-2vcpu-4gb | 2 | dedicated=system:NoSchedule | Ingress, monitoreo, sistema |
| cde | s-4vcpu-8gb | 2 | pci-scope=true:NoSchedule | Solo cargas PCI |
| app | s-4vcpu-8gb | 3 (2–6) | ninguno | Aplicaciones no-PCI |
Total: 7 nodos (escalable hasta 10)
Controles del clúster:
- HA control plane en producción
auto_upgrade = true— parches de seguridad automáticossurge_upgrade = true— actualizaciones sin downtime- Mantenimiento: domingos 4:00 AM
9. Compliance VM Firewalls
Archivo Terraform: digitalocean/modules/compliance/main.tf
9.1 Collector (fintrix-production-collector-fw)
| Dirección | Protocolo | Puerto | Origen/Destino | Descripción |
|---|---|---|---|---|
| Ingress | TCP | 22 | 0.0.0.0/0 | SSH admin |
| Ingress | TCP | 514, 1514, 5514–5516 | VPC | Syslog TCP |
| Ingress | UDP | 514, 1514, 5514–5516 | VPC | Syslog UDP |
| Ingress | TCP | 5508, 6608, 8037, 2024, 2028, 2030 | VPC | Agentes |
| Egress | TCP | 443 | 0.0.0.0/0 | HTTPS (ControlCase/Rapid7) |
| Egress | TCP | 1–65535 | VPC | Acceso interno |
| Egress | UDP | 53 | 0.0.0.0/0 | DNS |
9.2 VAPT (fintrix-production-vapt-fw)
| Dirección | Protocolo | Puerto | Origen/Destino | Descripción |
|---|---|---|---|---|
| Ingress | TCP | 22 | 0.0.0.0/0 | SSH admin |
| Egress | TCP | 1–65535 | VPC | Escaneo TCP |
| Egress | UDP | 1–65535 | VPC | Escaneo UDP |
| Egress | ICMP | — | VPC | Ping |
| Egress | TCP | 443 | 0.0.0.0/0 | HTTPS |
| Egress | UDP | 53 | 0.0.0.0/0 | DNS |
9.3 CDD (fintrix-production-cdd-fw)
| Dirección | Protocolo | Puerto | Origen/Destino | Descripción |
|---|---|---|---|---|
| Ingress | TCP | 22 | 0.0.0.0/0 | SSH |
| Ingress | TCP | 3389 | 0.0.0.0/0 | RDP (futuro Windows) |
| Egress | TCP | 1–65535 | VPC | Descubrimiento |
| Egress | TCP | 443 | 0.0.0.0/0 | HTTPS (ControlCase) |
| Egress | UDP | 53 | 0.0.0.0/0 | DNS |
Tag compliance-scanner
Las 3 VMs tienen el tag compliance-scanner, que les otorga acceso completo a los firewalls CDE y App para ejecutar escaneos autorizados de cumplimiento.
10. Cumplimiento PCI DSS
| Requisito | Descripción | Evidencia |
|---|---|---|
| 1.1 | Proceso de aprobación de cambios de FW | Terraform IaC + Git + plan/apply |
| 1.2.1 | Restricción ingress/egress al mínimo | 4 Cloud FW + DB FW + NetworkPolicies |
| 1.3.1 | DMZ limita tráfico entrante | DMZ FW: solo 443/80 |
| 1.3.2 | Ingress limitado a DMZ | CDE FW: ingress solo desde 10.100.1.0/24 |
| 1.3.4 | Sin tráfico directo CDE→internet | DB FW: solo K8s + CDE CIDR |
| 1.3.5 | Solo tráfico established | Cloud FW stateful + NP default-deny |
| 1.3.6 | CHD en zona interna | CDE namespace + node pool PCI |
| 1.3.7 | IPs privadas ocultas | BD y DOKS en VPC privada |
| 2.2.2 | Solo servicios necesarios | Puertos específicos por FW |
| 3.4 | Cifrado datos almacenados | Managed PG cifrado nativo |
| 4.1 | Cifrado en tránsito | TLS 1.3 + PostgreSQL SSL |
| 10.1–3 | Logs centralizados | VM Collector (syslog) |
| 11.2 | Escaneo de vulnerabilidades | VM VAPT + VM CDD |
11. Historial de Revisiones
| Fecha | Revisor | Cambios |
|---|---|---|
| 2026-03-13 | Equipo de Infraestructura | Documento inicial — detalle completo de reglas activas |
