04Professional services

A flat network is one credential away from everything.

Segmentation, firewall policy, remote access, and load balancing. We design the network as zones with a written policy between them, because the question after an incident is never what the firewall allows. It is what the attacker could reach next.

0
Zones in a standard segmentation design
0
Rules kept without a written reason
0 days
Review cycle on every exception
0
Planned cutovers that need a full outage
The problem

Nobody designed the flat network. It just never stopped being one.

Networks are built once, under time pressure, and then extended. A VLAN gets added for the new office. A rule gets opened so a supplier can reach a server, and the supplier relationship ends but the rule does not. Guest Wi-Fi is on the same switch as the finance workstations because that is where the free ports were.

None of this is visible from inside. A firewall with 400 rules looks like a network with strong controls, and it usually is not: what it has is a lot of exceptions and no policy. The test is simple. If a laptop on the guest network gets malware, what does it reach? In most estates the honest answer is the database, eventually.

Segmentation is the control that changes the answer, and it is unglamorous work: mapping what actually talks to what, before you can safely deny anything else. We do that mapping with flow data rather than with a workshop, because the flows people remember and the flows that exist are different lists.

The design

Zones, and what is allowed between them.

Deny between zones, allow by exception, and every exception carrying the reason it exists. The matrix is the same policy in the form people argue about it in.

Segmentation443deny543254328080Office / VPN10.10.0.0/16Guest Wi-Fi10.90.0.0/16DMZweb, reverse proxyApplicationinternal onlyDatano egress
Policy matrix
from \ toDMZAppDataInternet
Office / VPNallowallowdenyallow
Guest Wi-Fidenydenydenyallow
DMZ-allowdenyallow
Applicationdeny-allowdeny
Datadenydeny-deny
Default posture

Deny between zones, allow by exception, and every exception written down with the reason it exists. A rule nobody can explain is a rule we remove.

The data zone has no route out to the internet at all, which is the control that turns a database compromise into a contained incident rather than an exfiltration.

Scope

What we take on

01

Segmentation design

Zones drawn from how traffic actually flows, not from the org chart.

Flow collection first, so the design is based on observed traffic rather than on what people believe the applications do. Then zones, a default deny between them, and a documented exception list. The data zone gets no route to the internet at all, which is what turns a database compromise into a contained incident rather than an exfiltration.

VLANmicrosegmentationNetFlowdefault deny
02

Firewall and rule hygiene

Shadowed, duplicated, and orphaned rules removed, and the rest explained.

Rule bases are audited for rules that can never match, rules that are broader than their comment claims, and any/any entries added during an outage and never revisited. Every surviving rule gets an owner and a review date, so the base stops growing in one direction only.

pfSenseFortiGatenftablesrule review
03

Remote access

Modern VPN with device identity, or a zero trust broker where that fits better.

WireGuard or IPsec with per-user keys, MFA, and split policy so a contractor's laptop reaches one application rather than the whole office subnet. Gateways deployed in pairs so patching the VPN is a maintenance task rather than an evening outage.

WireGuardIPsecMFATailscale
04

Load balancing and failover

Health checks that remove a bad node, and a failover you have watched work.

Layer 4 and layer 7 balancing with health checks that test the application rather than the port, TLS terminated where it makes sense, and a floating address or DNS failover with a documented recovery time. Failover is tested during the engagement, in daylight, with everyone watching.

HAProxynginxKeepalivedVRRPanycast
05

Routing and interconnects

BGP, multiple transit, and the config that stops a leak becoming an outage.

Multi-homed routing with filters and prefix limits so a mistake upstream does not become your incident, plus RPKI and route object hygiene where you announce your own space. Site to site and cloud interconnects included where the estate spans both.

BGPRPKIprefix filterstransit
06

Visibility

Flow data and IDS where the traffic crosses a boundary.

Flow export from the boundary devices and inspection where it is worth the throughput cost, so that after an incident there is a record of what moved and where. Feeds into the same timeline PulseGuard already keeps for findings, DNS changes, and deployments.

NetFlowSuricataZeekPulseGuard timeline
How it runs

Map it, agree it, cut it over quietly.

Weeks 1 to 2

Map

Flow collection across the existing network, plus a read of the current rule base, producing what talks to what rather than what people think does.

Week 3

Design

Zones, the policy matrix, and the exception list, agreed in a document before a single interface is touched.

Weeks 4 to 6

Cut over

New policy in monitor mode first, so the would-have-blocked list is reviewed before enforcement. Migration runs zone by zone, in windows.

Quarterly

Review

Exceptions revisited on a cycle, new flows checked against the policy, and anything nobody can justify removed.

Tools we work in
pfSenseOPNsenseFortiGateMikroTikCisco IOSnftablesWireGuardIPsecOpenVPNHAProxynginxKeepalivedBGPVLANNetFlowSuricataZeekTailscale

Find out what the guest network reaches.

The mapping phase answers that in two weeks, with flow data rather than an opinion, and the report stands on its own.