Architecture

Security Trust Zones & Permitted Flows

Target default-deny policy for WAN, management, services, workloads, DMZ, monitoring, backup, trusted, IoT, guest, storage, and inter-site traffic.

Trust follows function, not proximity. OPNsense mediates every routed transition, local switches carry only approved Layer 2 segments, and each permitted flow is narrow enough to name its source, destination, and service purpose.

Approved Target Policy, Not the Current Automation State

The repository's historical broad OPNsense baseline does not implement the 2026-07-26 Site A target. Final automation still must add the routed VLANs, aliases, DHCP, Unbound, NAT, default-deny rules, and tests that prove unrouted or retired VLANs are absent.

Trust-Zone Model

ZoneNetworksDefault postureIntended access
WANISP-facing interfacesDeny inboundExplicit DMZ publication and later WireGuard only
Network managementVLAN 10Restricted managementUOS, DNS, NTP, updates, approved recovery access
Proxmox managementVLAN 20Restricted administrationApproved admins, DNS/NTP, repositories, declared dependencies
VM servicesVLAN 30Service-specific allowDeclared clients reach named services only
KubernetesVLANs 40 and 50Closed until platform phaseControl-plane, node, ingress, and load-balancer flows added explicitly
DMZVLAN 70IsolatedPublished services plus declared internal dependencies
MonitoringVLAN 80Collector-initiatedCollectors poll explicit endpoints; no broad reverse access
BackupVLAN 90Protocol-specific allowPBS backup, replication, and approved migration traffic
Trusted clientsVLAN 100Trusted user zone, not admin-equivalentInternet and declared services; management remains explicit
IoTVLAN 110Restricted client zoneInternet, DNS, NTP, and explicit local exceptions only
GuestVLAN 120Internet-only client zoneInternet and local DNS; deny private ranges
Corosync and storageVLANs 25, 60, and Site B 65Unrouted Layer 2Directly attached members only
Native sinkSite A VLAN 999No service accessTrunk native VLAN and disabled ports only
Inter-siteWireGuard 10.255.0.0/24Explicit routed permitsNamed replication, management, and control flows

Management and Storage Never Face the WAN

OPNsense administration, Proxmox, IPMI, UOS, OpenBao, Corosync, storage, and switch management are never published to the internet. WAN inbound is denied unless an approved DMZ service or WireGuard rule states otherwise.

Permitted-Flow Matrix

SourceDestinationPermitted flow classEverything else
WANDMZ service on VLAN 70Explicit NAT and matching firewall rule for an approved serviceDeny
Approved admin aliases on VLAN 100 or recovery hostsOPNsense, VLANs 10 and 20Named administration endpoints onlyDeny unmanaged access
VLAN 10 devicesUOS, DNS, NTP, update servicesDevice control, name/time, and software updatesDeny general client reachability
VLAN 20 hostsAdmin services, DNS/NTP, repositoriesHost administration and declared dependenciesDeny undeclared service access
Declared client zonesNamed VLAN 30 servicesService-specific destination and portDeny lateral access across the zone
Kubernetes VLANs 40 and 50Required platform endpointsClosed until the Kubernetes phase defines exact flowsDeny
VLAN 70 servicesInternal servicesExplicit application dependency onlyDeny general internal access
VLAN 80 collectorsMonitored endpointsExplicit polling and ingestion flowsDeny broad endpoint-to-collector initiation
Proxmox hosts and PBS on VLAN 90PBS and replication peersBackup, restore, replication, approved migrationDeny non-backup use
VLAN 100 clientsInternet and declared internal servicesTrusted-client application accessNo implicit access to every management endpoint
VLAN 110 clientsInternet, DNS, NTP, exceptionsMinimum device operationDeny other private destinations
VLAN 120 clientsInternet and local DNSGuest egress and name resolutionDeny all private ranges
WireGuard peersNamed cross-site endpointsDNS replication, PBS copies, OpenBao transit, later UniFi L3 adoptionDeny other cross-site traffic

IPv6 and mDNS reflection remain off until equivalent explicit policies are designed. Trusted does not mean unrestricted, and a VLAN boundary alone is not a permit.

Unrouted Planes

No Gateway Means No Firewall Exception

VLAN 25, VLAN 60, Site B VLAN 65, and Site A VLAN 999 have no gateway, OPNsense interface, DHCP, NAT, or static route. Site A VLAN 65 is reserved and not carried. A request to route one of these networks is an architecture change, not a routine allow rule.

PlaneMembersPermitted behaviorProhibited behavior
Corosync, VLAN 25Local Proxmox cluster nodesSite-local heartbeatWAN, WireGuard, client, or routed access
Storage / Ceph public, VLAN 60Direct storage clients and serversSite-local storage client trafficGeneral routed access
Ceph cluster, Site B VLAN 65Site B OSD nodesReplication, backfill, heartbeatRouting to VLAN 60 or any other zone
Native sink, Site A VLAN 999Trunk native state and disabled portsNo endpoint trafficIP address, gateway, DHCP, or workload

Service-Specific Permit Anchors

These known application ports refine the zone matrix; they do not create blanket access to the containing VLAN.

ServiceSourceDestinationProtocol / portPurpose
DNS queriesApproved local client VLANsLocal Technitium resolversUDP/TCP 53Name resolution
DNS AXFRSite B DNS replicassa-dns-01TCP 53Pull authoritative zones
DNS NOTIFYsa-dns-01Site B DNS replicasUDP 53Signal zone changes
Technitium cluster APINamed DNS/OPNsense peersNamed Technitium nodesTCP 5380Configuration and catalog synchronization
UOS administrationApproved admin sourcessa-uos-01TCP 11443Controller UI and API
UniFi informAdopted UniFi devicessa-uos-01TCP 8080Device adoption and inform
UniFi STUNAdopted UniFi devicessa-uos-01UDP 3478Device communication
OpenBao APIApproved consumers and transit peersa-bao-01 / sb-bao-01TCP 8200Runtime secrets and transit unseal
step-caAdmin VLANs 10, 20, and 100; Site B DNS VMs10.10.30.30TCP 9000Internal certificate issuance
ACME DNS-01Approved certificate clientsLet's Encrypt and Cloudflare APIsTCP 443 outboundCertificate issuance without inbound exposure

OpenBao port 8200 never faces the internet and must not leave its local segment while TLS is disabled. Networking contains the address plan; service dependencies explains which permitted paths are required during startup.