This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Inbound default-accept is the other Unix inheritance

Root Lock allowlists per-program outbound. Root Lock Firewall is the host-path stateful filter for a closed appliance.

Root Lock Firewall | Prototype


Overview: A listening service on a Linux host accepts inbound connections unless a packet filter refuses them. Root Lock Firewall is that filter on a closed HeartSuite appliance: observe real traffic, approve a finite allowlist, seal it.

Root Lock controls outbound destinations per program, at the kernel, using literal IP addresses. The two products address different layers and are designed to be used together on the appliance image.

In this section

1 - A listener will accept a stranger by default

Inbound default-accept is a different OS assumption from Root Lock’s outbound allowlist. How Root Lock Firewall addresses that hole.

Prototype: Content on this page reflects current design intent and will be updated as the product matures.

Overview: A process that is listening will accept a connection from anywhere the routing table can reach, unless a packet filter refuses the packet first.

Two different defaults

Root Lock by HeartSuite starts from one Unix inheritance: a program that can run may open files and make outbound connections as the user who launched it.

Root Lock Firewall starts from the other: a process that is listening will accept a connection from anywhere the routing table can reach, unless a packet filter refuses the packet first.

Those are independent controls. Approving 93.184.216.34 for /usr/bin/curl does not close port 22. Closing port 22 does not stop curl from calling an address you never reviewed.

What inbound default-accept enables

1. Unsolicited reachability

Any service that binds a port is reachable from every address that can route to the host. Installing the service rarely meant “the entire internet.”

Scanners, credential stuffing, and exploit kits treat that reachability as the starting condition.

2. Login and management planes on the filter itself

Campus and branch firewalls accumulated a second job: they became the remote-access concentrator and the administrative website. The packet filter then has to defend its own web VPN, SSO broker, and management GUI.

Incidents in 2024–2026 on Cisco Secure Firewall and FortiOS followed that surface. See Recent firewall campaigns.

3. Rules nobody can still explain

Stateful policy that is never observed, reviewed, and reduced becomes an any-any rule with exceptions stacked on top. The filter is “on.” The allowlist is not known.

Extra tools then appear to find which rules still matter.

What another NGFW blade answers

Application catalogs, TLS interception, URL clouds, and sandbox subscriptions answer a different question: what is inside a flow you already decided to accept. Root Lock Firewall answers which inbound sockets on this box a human approved, and whether that set is sealed.

They add policy surface. They also add a management and update plane that has to stay reachable.

Root Lock Firewall addresses the first question and refuses the second as product identity. Inspection stays stateful. Delivery is a closed image. You reach the Dashboard on the console or serial console.

What Root Lock already covers

Root Lock already blocks outbound connections to destinations that are not on a program’s allowlist, including from processes running as root. That is kernel grant policy. Inbound port policy is Root Lock Firewall.

Root Lock Lockdown can record a thin inbound permit for SSH scope and named services. That path is accept-only. Observation of real traffic, a reviewed allowlist of this box, and Firewall Lockdown are Root Lock Firewall.

Root Lock Firewall is the product that takes inbound (and this host’s path) as its job.

That is a smaller remote plane. An approved port stays an approved port. A wide seal stays a wide seal. The hypervisor console stays in the trust boundary. See Protection limits.

2 - Observe real traffic, approve a list, seal it

Host-shaped stateful filter on a closed appliance: observe real traffic, approve a finite allowlist for this box, then seal it. Root Lock is the OS under the filter.

Prototype: Content on this page reflects current design intent and will be updated as the product matures.

Overview: A listening service on a general-purpose host accepts inbound packets unless a filter refuses them. That is the Unix default this product closes.

Root Lock Firewall is the host-shaped stateful packet filter on a closed HeartSuite appliance. Root Lock by HeartSuite is the hardened OS under it. You receive an image.

The Dashboard shows traffic as it happens. You approve a finite allowlist for this box’s inbound and outbound path. Firewall Lockdown seals that set.

Packets are judged by connection state on Linux netfilter’s nft path. Execution, file access, and per-program outbound destinations remain Root Lock’s domain.

What you receive

You receive a virtual appliance (QCOW2 or OVA). Hardware follows later, after real deployments, and keeps the same inspection class.

The image is closed:

  • A custom Root Lock kernel is already the operating system.
  • The packet filter is already installed and constrained by that kernel.
  • You reach the box on the console or serial console. There is no public administrative SSH by default, and no Docker runtime.
  • HeartSuite is the update authority. Rules and reputation stay off a public CDN under seal.

Delivery is the closed image. Install scripts that appear in development trees are for laboratory layer installs on a test guest. They remain laboratory.

What the filter decides

Root Lock Firewall is a host-shaped stateful firewall.

  • Host-shaped. It filters traffic to and from this box. The workload runs on the image.
  • Stateful. Allow and deny follow connection state, not a stateless access list alone.
  • Literal addresses. Critical rules use IP addresses, not hostnames. DNS is not the enforcement mechanism.

Inspection stays connection state on the sealed allowlist. Application payloads, TLS termination for classification, and URL or sandbox clouds stay outside product identity.

Observation, approval, and Firewall Lockdown

You use the same observe → approve → seal path Root Lock already uses for programs and destinations:

observe what is real → approve what is necessary → seal what was earned.

StateTrustWhat you see
ObservingTraffic is logged so you can teach the allowlist. Rules are not fully enforced.The system strip reports traffic observation. Pending events accumulate on Firewall Rules.
ReviewingYou decide. The Dashboard does not auto-approve.Each event shows service, port, origin, and attempts. Approve creates an allowlist entry. Skip defers.
Firewall Lockdown appliedTrust is withdrawn from anything that is not on the sealed set.After you type YES and reboot the host, mutate keys are absent. The Dashboard does not reboot the host. The strip is quiet when the seal and Root Lock Lockdown are both in place.
MaintenanceYou deliberately reopen the box to change policy.Maintenance is the only supported change path. You re-observe if needed, then seal again.

Silence on the strip means Firewall Lockdown and Root Lock Lockdown are both in place.

Firewall Lockdown and Root Lock Lockdown are paired on the appliance. Firewall Lockdown seals the packet allowlist. Root Lock Lockdown seals the kernel allowlist (programs, files, outbound destinations).

Changing either after seal requires the maintenance path.

What stays on Root Lock

ControlProduct
May this program execute?Root Lock
Which files may it read or write?Root Lock
Which outbound IP may this program reach?Root Lock
Which packets may this box accept or send?Root Lock Firewall
Is the chosen packet allowlist sealed?Root Lock Firewall (Firewall Lockdown)

See Network and Remote Access for Root Lock’s outbound queue, and Protection limits for residuals.

3 - Where the packet boundary holds

Root Lock Firewall’s packet boundary, residuals, and which tool to put beside it for those gaps.

Prototype: Content on this page reflects current design intent and will be updated as the product matures.

Overview: A listening service accepts packets from anywhere the routing table can reach, unless a filter refuses them. Root Lock Firewall refuses inbound and this-host path traffic that is not on the sealed allowlist — including traffic aimed at services running as root.

An attacker who uses a port you approved is constrained by that rule. Application content on that port stays with a WAF and Root Lock.


An attacker uses a service you already approved

The scenario. You approved inbound HTTPS to the workload on this image. An attacker exploits a bug in that web application over the allowed port.

What Root Lock Firewall does. Packets to ports that are not on the allowlist still fail. Scanners probing closed ports still fail. A listener on a port that is not already in the sealed allowlist is not an approved path.

What it does not cover. If the attacker uses a port you already approved, this particular gate does not apply to application content on that port. Packets to ports off the allowlist still fail. A listener that binds a port the image already left open (including baseline ports open to any source) is still that approved path.

A WAF, application hardening, and Root Lock by HeartSuite (what that process may execute, read, write, and call outbound) address the blast radius inside the approved service.


Outbound destinations per program

The scenario. A compromised approved program opens an outbound connection to an address you never reviewed.

What Root Lock Firewall does. The host path is still subject to the sealed host filter. That is independent of per-program outbound policy.

What it does not cover. If a compromised approved program opens an outbound connection to an address you never reviewed, this particular gate does not apply to per-program destinations. The sealed host filter on this image still holds. Which program may reach which literal IP stays Root Lock.


Traffic through this box to another server

The scenario. You want to place the appliance in front of a backup server or a subnet and publish NAT or forwarded ports.

What Root Lock Firewall does. v1 filters INPUT and OUTPUT of this image. The workload is meant to run on the image.

What it does not cover. If you want this box in front of other hosts, this particular gate does not apply to FORWARD or NAT. v1 still filters INPUT and OUTPUT of this image. See Deployment scenarios.


Application identification, TLS interception, and URL clouds

The scenario. A buyer expects App-ID, TLS man-in-the-middle, URL categories, sandbox detonation, or SD-WAN on the same appliance.

What Root Lock Firewall does. Connection state and the allowlist you sealed.

What it does not cover. If the requirement is App-ID, TLS interception, or URL clouds, this particular gate does not apply to those blades. The sealed host allowlist on this image still holds. Keep the specialist tool for that inspection.


Physical access and the console

The scenario. Someone who can reach the serial console or the hypervisor console boots Maintenance and removes the seal.

What Root Lock Firewall does. Under Firewall Lockdown, an attacker who already has remote root cannot rewrite the sealed allowlist. Change goes through Maintenance on the console.

What it does not cover. If someone holds the serial console, a cloud serial console, or the hypervisor, this particular gate does not apply to that path. The sealed allowlist still holds against remote rewrite. Restrict console access in the hypervisor or cloud IAM.

A later hardware appliance removes the hypervisor residual. Physical presence stays a console path. See Architecture and compatibility.


An allowlist that is too wide

The scenario. Observation ran on a noisy network, a broad rule was approved to “make it work,” or the image already opened ports to any source, and then that set was sealed.

What Root Lock Firewall does. The sealed set, including the wide rule and any baseline ports that were never a discovery product. Critical rules use IP addresses, not hostnames. DNS is not the enforcement mechanism.

What it does not cover. If a broad rule was approved and sealed, this particular gate does not unsay that approval. The sealed set still holds until you unseal it. Inventory advisories can flag breadth. Re-enter Maintenance, reduce, and seal again.


Complementary tools

GapComplementary control
Per-program execution, files, and outbound IPsRoot Lock
Application payloads on an allowed portWAF or application hardening
Ports the image left open to any sourceNot produced by observation. Seal keeps them. Narrow through Maintenance.
Hostnames in a ruleUse literal IP addresses. DNS stays out of enforcement.
Fleet correlation and incident responseSIEM / NDR (forward structured events; the SOC console stays there)
Volumetric DDoS in front of the hostProvider or cloud perimeter — a host filter is the wrong layer
Publishing other hosts through this boxLater; keep the existing edge firewall or wait for an edge SKU
Encryption at restDisk encryption on the image (LUKS or the hypervisor’s disk encryption)
Who may sit at the consoleHypervisor / cloud IAM / locked rack

For how this sits next to campus NGFWs and cloud security groups, see How Root Lock Firewall compares.

4 - Walkthrough: observe, approve, seal

From first boot to Firewall Lockdown: observe, approve, seal. The intended Dashboard path on a Root Lock Firewall appliance.

Prototype: Keys, strip text, and ceremony steps shown here are the intended appliance path and may change. The screenshots are docs mock-ups of that path, not a capture of the shipping Root Lock TUI ([f] is still File Access there).

Root Lock Firewall ships as the closed image. You boot it, open the serial or local console, and the Dashboard is the interface.

1. First boot is observation

The merged system strip reports traffic observation: logging only, rules not fully enforced. That is the honest state: what is listening and what is arriving.

The Suggested Next Step points at pending firewall events.

Dashboard at first-boot observation: strip reports logging only, Suggested Next Step points at 14 pending firewall events, pending counts are listeners and inbound attempts

2. Open Firewall Rules

From the Dashboard, open Firewall Rules with [f].

Each pending event is something that already happened on this box during observation: a listener, an inbound attempt, a repeated source.

Firewall Rules groups related events when they share a service or origin so you are not paging through identical lines. View samples with [v] before approving a group.

[a] Approve creates an allowlist entry for that traffic. [s] Skip leaves it for later. [s] is Skip, not Seal. There is no blind “allow all pending.”

An approval is a decision you make. The Dashboard does not confirm a suggestion it already chose.

Firewall Rules grouped review: inbound HTTPS from six clients, sample sources visible, footer keys Approve, Skip, and View samples

3. Empty the queue before you seal

An empty queue is required. The Suggested Next Step offers Seal Firewall with [l] only when the precondition checklist also passes.

Most appliances need several days of representative traffic before that offer is earned. A development host that never saw production clients will under-teach the allowlist.

The image already leaves a small set of ports open to any source (workload ports, and the SSH port even when no administrative SSH listener is running). Observation does not produce those. Seal keeps them. Narrow them through Maintenance after you know the workload.

[l] opens Firewall Lockdown. Advance with [y] to see the review: rule counts, samples, and what the box already has for logging. Logging and SIEM destinations are not configured on this path.

4. Type YES, then reboot the host

The confirmation word is YES — uppercase, case-sensitive.

After you confirm, reboot from the console or hypervisor so Firewall Lockdown is applied with Root Lock Lockdown. The Dashboard does not reboot the host. [r] shows reboot instructions after the seal is accepted.

Firewall Lockdown with preconditions met, approved rule counts and samples, logging present, SIEM not configured, and the YES prompt in frame

After reboot the strip is quiet when both seals are in place. Mutate keys are absent from Firewall Rules and from inventory. Absence is the signal that the set is sealed.

5. Inventory is read-only

After reboot, [l] opens the same Firewall Lockdown surface as inventory. It shows the allowlist that is in effect, and whether Root Lock Lockdown is present.

Advisories can flag a rule that is broader than the traffic that earned it. Edit through Maintenance.

6. Change only through Maintenance

To change a sealed rule, open Maintenance with [m]. Enter reduced posture with [e], then type YES.

Edit or re-observe on Firewall Rules, then seal again with [l], YES, and a host reboot. Unsealing does not reboot. SSH from a laptop is not the recovery path. Console or serial is.

See Root Lock Firewall overview for the observe → approve → seal grammar, and Protection limits for the console recovery path.