I followed a harmless request from my Windows client into Suricata, changed only its test signature to drop, and then restored it to alert. HTTPS and DNS controls checked that ordinary traffic still worked while the selected request was blocked.
This is a physical client-to-Vault check with exact connection evidence. The test signature verifies this inspection path; it is not a detection-rate study or inspection of decrypted HTTPS payloads.
Harmless fixture detected
Physical path · alert-only
Published resultMeasured on Protectli V1610 · Owned Vault test
- Response body
- 39 bytes
- Exact returned fixture body, matched to the source record.
HTTP 200 returned the exact 39-byte UID body, and the original EVE record identified SID 2100498 with action allowed for the matching connection.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Physical path · alert-only
Protectli V1610: Detection, Inline Block and Rollback →Selected request blocked
Physical path · inline Netmap drop
Published resultMeasured on Protectli V1610 · Owned Vault test
- Response body
- 0 bytes
- No fixture response body received.
- Client timeout
- 10 seconds
- Bounded curl request; the timeout alone is not the blocking oracle.
curl timed out after ten seconds without a response body, while the exact corresponding EVE connection was recorded as blocked. Both observations are required for this result.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Physical path · inline Netmap drop
Protectli V1610: Detection, Inline Block and Rollback →Ordinary traffic during the block
Physical path · HTTPS and DNS controls
Published resultMeasured on Protectli V1610 · Owned Vault test
- Benign control types passed
- 2 of 2
- HTTPS and direct Vault DNS; not two independent attack cases. (control types)
Certificate-validated HTTPS and a DNS lookup through the Vault both passed while the selected fixture rule was active.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Physical path · HTTPS and DNS controls
Protectli V1610: Detection, Inline Block and Rollback →Response restored after rollback
Physical path · test rule returned to alert
Published resultMeasured on Protectli V1610 · Owned Vault test
- Restored response body
- 39 bytes
- Same harmless fixture after the selected action was reverted.
The repeated UID request returned HTTP 200 and 39 bytes, with an exact allowed EVE match and the generated signature action back at alert.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Physical path · test rule returned to alert
Protectli V1610: Detection, Inline Block and Rollback →Installed rules and retained policy
Final installed snapshot
Published resultMeasured on Protectli V1610 · Owned Vault test
- Enabled categories
- 10 categories
- Selected installed snapshot.
- Active rules
- 37125 rules
- Native validation exit 0.
- Alert rules
- 37121 rules
- Final generated actions.
- Drop rules
- 4 rules
- Selected Critical TLS C2 rules; UID restored to alert.
Native validation exited successfully with dependency-complete selected rules. The final snapshot held 37,125 active rules: 37,121 alerts and four drops across ten enabled categories. Feed updates can change these counts.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Final installed snapshot
Protectli V1610: Detection, Inline Block and Rollback →Management and recovery configuration
Recorded appliance configuration
Published resultMeasured on Protectli V1610 · Owned Vault test
- Matched configuration export
- 38989 bytes
- Original device/local SHA256 comparison.
- Retained boot environments
- 5 environments
- Same SSD, separate from the off-device XML.
Listener, rule and console checks confirmed LAN-only HTTPS management, disabled SSH and password-protected console access. The off-device XML matched its device-side SHA256; five boot environments were retained on the SSD. The XML stays private because it contains secrets, and same-disk boot environments do not replace it.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Recorded appliance configuration
Protectli V1610: Detection, Inline Block and Rollback →I used three temporary FreeBSD VNET stacks on the Vault to check a small PF policy with real packets, captures and counters. The eight cases cover allowed controls, NAT, unsolicited WAN traffic, spoofing and finite bursts.
The authored policy mirrors core LAN pass, WAN deny, NAT and anti-spoof behavior. It does not import every OPNsense anchor or table, and the finite bursts are blocking checks rather than a DoS-capacity measurement.
HTTP and NAT control
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Response body
- 39 bytes
- Exact body/hash, with observed NAT peer.
HTTP 200 returned the exact 39-byte body/hash; allowed LAN traffic and the NAT peer were verified.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →HTTPS control
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Response body
- 39 bytes
- Encrypted transport control; no TLS decryption.
The same endpoint and body/hash passed over HTTPS, with no plaintext UID string in captured TCP payloads.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →LAN ICMP control
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Echo replies
- 3 of 3
- Three sent requests. (replies)
- Allow-counter packets
- 6 packets
- Requests plus replies.
Three requests received three replies, with six packets on the allow counter.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →Unsolicited WAN TCP ports
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Denied SYN packets
- 8 of 8
- Eight distinct destination-port probes. (packets)
- Forwarded packets
- 0 packets
- Observed virtual LAN capture.
Eight distinct SYN packets arrived, caused eight deny increments and were not forwarded to the virtual LAN.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →WAN source-spoof check
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Anti-spoof counter
- 5 of 5
- Five authored UDP datagrams. (packets)
Five UDP datagrams with a LAN-range source alias arrived on virtual WAN and caused five anti-spoof increments.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →Finite WAN UDP burst
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Denied datagrams
- 200 of 200
- Finite burst at configured 100 packets/second. (packets)
- Forwarded packets
- 0 packets
- Observed virtual LAN capture.
All 200 packets at a configured 100 packets per second reached the deny counter, with none forwarded.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →Finite WAN SYN burst
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Denied SYN packets
- 100 of 100
- Finite connection-attempt fixture. (packets)
- Forwarded packets
- 0 packets
- Observed virtual LAN capture.
One hundred finite attempts produced 100 captured SYNs and 100 deny increments, with none forwarded.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →WAN ICMP deny
Isolated VNET · core PF mirror
Published resultMeasured on Protectli V1610 · Virtual packet exchange on the Vault
- Denied requests
- 3 of 3
- Three captured echo requests. (packets)
- Forwarded packets
- 0 packets
- Observed virtual LAN capture.
Three echo requests arrived on virtual WAN, caused three deny increments and were not forwarded.
Setup and original evidence
Protectli V1610 · FreeBSD VNET / authored PF mirror · Virtual packet exchange on the Vault · Isolated VNET · core PF mirror
Protectli V1610: Isolated PF Packet Checks →I kept engine regressions separate from replays of the installed policy. That distinction matters here: the upstream regression cases passed, while the installed rules produced zero alerts on 20 unchanged upstream captures.
These are offline engine runs on the Vault. Upstream cases carry their own rules and assertions; installed-policy runs use the appliance snapshot. Offline drop records show rule selection, while physical-wire blocking is documented in the separate inline test.
Upstream engine regressions
Upstream fixtures and their own rules
Published resultMeasured on Protectli V1610 · Owned Vault test
- Passed cases
- 23 cases
- Distinct executed upstream cases.
- Skipped cases
- 1 case
- SSH fixture requires Suricata 9.
23 distinct cases passed. One SSH case was skipped because it requires Suricata 9; it is not included as a pass.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Upstream fixtures and their own rules
Protectli V1610: Suricata Regression and Policy Replays →Installed policy on upstream captures
Unchanged PCAPs · appliance rule snapshot
Published resultMeasured on Protectli V1610 · Owned Vault test
- Completed replays
- 20 of 20
- Unchanged upstream PCAPs. (captures)
- Observed alerts
- 0 alerts
- Actual installed-policy outcome.
All 20 replays completed with zero alerts. These captures and the installed policy did not produce alert coverage in this run.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Unchanged PCAPs · appliance rule snapshot
Protectli V1610: Suricata Regression and Policy Replays →Original virtual-capture replay
Original invalid TCP checksums retained
Published resultMeasured on Protectli V1610 · Owned Vault test
- Original cases
- 8 captures
- Original packets preserved.
- UID alerts
- 1 alert
- Allowed SID 2100498 from the original HTTP replay.
The HTTP UID fixture produced one allowed signature alert and other cases produced no alerts. Invalid TCP checksums prevent using this original replay to infer HTTPS stream inspection.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Original invalid TCP checksums retained
Protectli V1610: Suricata Regression and Policy Replays →Checksum-controlled replay
Only invalid TCP checksum fields changed
Published resultMeasured on Protectli V1610 · Owned Vault test
- Completed corrected replays
- 8 of 8
- Byte-audited checksum-only derivatives. (captures)
- Invalid TCP checksums
- 0 checksums
- Replay engine counters.
- HTTP allowed alerts
- 3 alerts
- Includes SID 2100498.
- HTTPS TLS events
- 1 event
- TLS-parser evidence; zero UID alerts.
All eight corrected replays completed with zero invalid TCP checksums. HTTP produced three allowed alerts including the UID signature; HTTPS produced one TLS event without a UID alert.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Only invalid TCP checksum fields changed
Protectli V1610: Suricata Regression and Policy Replays →Four enabled TLS drop rules
Inert offline SNI positive and negative fixtures
Published resultMeasured on Protectli V1610 · Owned Vault test
- Expected drop matches
- 4 of 4
- Four exact-SNI positives. (fixtures)
- Expected nonmatches
- 5 of 5
- Four suffix negatives and one benign control. (fixtures)
Four exact names produced blocked matches and drop records. Four suffix negatives and one reserved-domain control avoided those matches; all nine met the authored expectations.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Inert offline SNI positive and negative fixtures
Protectli V1610: Suricata Regression and Policy Replays →I measured short, certificate-validated downloads through the final IDS and IPS configurations using the same fixed endpoint. The individual trials stay here alongside their medians because the Internet path varied between requests.
These rates include connection and TLS setup. Upstream conditions, endpoint behavior and other client traffic were not isolated, so the difference does not measure inspection overhead or maximum forwarding capacity.
PCAP IDS
Routed Internet · three complete 25 MB requests
Published resultMeasured on Protectli V1610 · Owned client routed through the Vault
- Median rate
- 537.017 Mbps
- Three complete trials, including connection and TLS setup.
- Complete trials
- 3 of 3
- 25,000,000 bytes each after one 1,000,000-byte warmup. (requests)
- Sampled core maximum
- 60 °C
- Separate native resource sampling; may miss short request peaks.
Individual payload rates were 537.017, 533.622, 549.84 Mbps. Every request completed under the same final-platform protocol; the median describes this endpoint/path observation.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned client routed through the Vault · Routed Internet · three complete 25 MB requests
Protectli V1610: Routed Download Observations →Netmap IPS
Routed Internet · three complete 25 MB requests
Published resultMeasured on Protectli V1610 · Owned client routed through the Vault
- Median rate
- 493.027 Mbps
- Three complete trials, including connection and TLS setup.
- Complete trials
- 3 of 3
- 25,000,000 bytes each after one 1,000,000-byte warmup. (requests)
- Sampled core maximum
- 48 °C
- Separate native resource sampling; may miss short request peaks.
Individual payload rates were 493.027, 480.639, 623.063 Mbps. Every request completed under the same final-platform protocol; the median describes this endpoint/path observation.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned client routed through the Vault · Routed Internet · three complete 25 MB requests
Protectli V1610: Routed Download Observations →I also transferred fixed payloads from a bounded server on the Vault to the owned LAN client, then retained the engine counters with their actual observation windows. Successful downloads and complete packet inspection are different measurements here.
This workload terminates on the Vault, so it is not WAN forwarding throughput. PCAP kernel drops span its full runtime without an isolated pre-LAN boundary; the Netmap stream-discard snapshot uses a different window and cannot serve as a matched loss comparison.
PCAP IDS endpoint
LAN-terminating server · four 128 MiB payloads
Published resultMeasured on Protectli V1610 · Owned Vault test
- Median payload rate
- 2370.291 Mbps
- Terminating endpoint, approximate client timer; not forwarded WAN throughput.
- Complete payloads
- 4 of 4
- 134,217,728 bytes each. (transfers)
- Sampled core maximum
- 60 °C
- Native samples during this endpoint workload.
Four complete rates were 2370.291 Mbps each under the recorded timer. The sampled core maximum was 60 °C.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · LAN-terminating server · four 128 MiB payloads
Protectli V1610: LAN Endpoint and Capture Counters →Netmap IPS endpoint
LAN-terminating server · four 128 MiB payloads
Published resultMeasured on Protectli V1610 · Owned Vault test
- Median payload rate
- 848.137 Mbps
- Terminating endpoint, approximate client timer; not forwarded WAN throughput.
- Complete payloads
- 4 of 4
- 134,217,728 bytes each. (transfers)
- Sampled core maximum
- 55 °C
- Native samples during this endpoint workload.
Four complete rates were 848.137, 827.866, 848.808 and 848.137 Mbps. The sampled core maximum was 55 °C.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · LAN-terminating server · four 128 MiB payloads
Protectli V1610: LAN Endpoint and Capture Counters →Capture and discard observations
Different engine windows · preserve each denominator
Published resultMeasured on Protectli V1610 · Owned Vault test
- PCAP kernel drops
- 313268 packets
- Cumulative 962,578 packets across the full PCAP runtime.
- Netmap stream discards
- 188 packets
- 610,614 packets in the separate 5m14s final snapshot.
PCAP cumulative counters cover 40+ minutes without a pre-LAN boundary. Netmap counters cover 5m14s after restart; its 188 discards were stream errors of unproven cause. No emitted kernel-drop counter is not a zero-loss certificate.
Setup and original evidence
Protectli V1610 · OPNsense 26.7.5 / Suricata 8.0.7_1 · Owned Vault test · Different engine windows · preserve each denominator
Protectli V1610: LAN Endpoint and Capture Counters →The firewall records also need to survive review and a restart. These checks cover Vault event forwarding, the Windows evidence tools, rolling storage and recovery after sign-in, with the maintenance gaps and failed readings kept in the record.
This is a two-machine workflow: the Vault supplies events and native observations, while Windows receives, indexes and serves them. Scheduled recovery requires Windows sign-in, and USB sampling needs an authenticated appliance console after a Vault reboot. The Hub is a saved result record, not a live health monitor.
Simulated events through the real handlers
Isolated loopback receiver and evidence builder
Published resultTested system: Protectli Vault + Windows evidence host · Two-machine evidence workflow; isolated host replay
- Replay cases
- 17 cases
- Actual simulated engine outputs.
- Received datagrams
- 153 datagrams
- Separate loopback receiver.
- Verified original references
- 7 references
- Exact source checks.
- Pipeline and fault checks
- 75 tests
- Historical isolated software suite; distinct from the later 250-check retention suite.
17 cases delivered 153 datagrams with the expected SID/action counts; seven original references verified and the report/source routes returned HTTP 200. These were replay receipts, without model inference. The separate local pipeline/fault lane passed 75 software tests using temporary stores and mocked failure conditions.
Setup and original evidence
Protectli V1610 · Windows Python receiver, evidence builder and dashboard · Two-machine evidence workflow; isolated host replay · Isolated loopback receiver and evidence builder
Home SOC: Evidence Collection, Retention and Recovery →Activated rolling storage
Current policy · fixture-tested expiry and live activation
Published resultTested system: Protectli Vault + Windows evidence host · Windows evidence storage
- Preserved setup baseline
- 310110946 bytes
- Nine original members, including failures; immutable baseline separate from ordinary expiry.
- Hot budget
- 1024 MiB
- 1 GiB originals, active rollover at 32 MiB.
- Cold budget
- 4096 MiB
- 4 GiB compressed sealed segments.
- Ordinary sealed-segment window
- 7 days
- After sealing; capacity may shorten it. Disposable-fixture expiry test, not a full live seven-day observation.
The live migration preserved all setup bytes and returned new Vault receipts without a full/storage-error state. Hot originals roll at 32 MiB into a verified compressed cold tier; ordinary sealed segments expire seven days after sealing or earlier under capacity pressure.
Setup and original evidence
Protectli V1610 · Windows Python / rolling-v2 / SQLite · Windows evidence storage · Current policy · fixture-tested expiry and live activation
Home SOC: Evidence Collection, Retention and Recovery →Saved review sources and retrieval
Separate pins · exact hashes · visible expiry
Published resultTested system: Protectli Vault + Windows evidence host · Windows evidence storage
- Pinned-source budget
- 64 MiB
- Separate from hot/cold ordinary storage.
- Pinned-record limit
- 4096 records
- New note refused at the limit, without stopping collection.
- Pre-activation regression checks
- 250 tests
- Software/fixture checks, not independent incidents.
New operator notes preserve their cited raw records under a separate 64 MiB / 4,096-record budget. A full pin budget refuses another note while collection continues; an expired unpreserved source returns HTTP 410. The pre-activation suite passed 250 tests, including storage and recovery fixtures.
Setup and original evidence
Protectli V1610 · Windows Python / rolling-v2 / SQLite · Windows evidence storage · Separate pins · exact hashes · visible expiry
Home SOC: Evidence Collection, Retention and Recovery →Actual reboot and sign-in recovery
Recorded appliance reboot and newer Windows boot
Published resultTested system: Protectli Vault + Windows evidence host · Vault + Windows sign-in recovery
- Vault login prompt
- 59 seconds
- Approximate observed appliance reboot interval, separate from full application readiness.
The Vault reached its login prompt in about 59 seconds. After Windows reboot and sign-in, recovery started the owned components and the next check reused them without duplicates. Original log prefix, notes and backup hashes matched; certificate-valid HTTPS, direct Vault DNS and exact UID/EVE correlation passed.
Setup and original evidence
Protectli V1610 · Vault boot / Windows Task Scheduler and PowerShell · Vault + Windows sign-in recovery · Recorded appliance reboot and newer Windows boot
Home SOC: Evidence Collection, Retention and Recovery →Scheduled dashboard restoration
Later ownership-receipt repair, without a new reboot
Published resultTested system: Protectli Vault + Windows evidence host · Windows sign-in and five-minute recovery
A manual receiver launch had left a stale recovery-owner receipt. After exact ownership reconciliation, the scheduled task restored the dashboard and reporting runtime, then repeated the restoration after an idle dashboard stop without stopping collection. Original files/prefixes verified. This repair was not a new sign-out/sign-in or reboot test.
Setup and original evidence
Protectli V1610 · Windows Task Scheduler / PowerShell 7 · Windows sign-in and five-minute recovery · Later ownership-receipt repair, without a new reboot
Home SOC: Evidence Collection, Retention and Recovery →Retained operation and observation gaps
Historical snapshot, not current live health
Published resultTested system: Protectli Vault + Windows evidence host · Vault + Windows evidence workflow
- Timestamped observations
- 352 observations
- Retained Oct 5–7 snapshot; not independent incidents.
- Sampled core minimum
- 30 °C
- Operating observations, separate from guarded load.
- Sampled core maximum
- 56 °C
- Operating observations, separate from the 62 °C load peak.
- Observation gaps over ten minutes
- 5 gaps
- 27 min, 12 min, 11h57, 20 min and 12 min.
352 observations recorded sampled cores at 30–56 °C, with no sampled full/storage-error/capacity-warning state. Five gaps exceeded ten minutes, including an 11h57 host interruption; one native reading had unknown fields and another was stale. Maintenance and UDP receipt uncertainty remain visible.
Setup and original evidence
Protectli V1610 · Vault native sensors / Windows observation journal · Vault + Windows evidence workflow · Historical snapshot, not current live health
Home SOC: Evidence Collection, Retention and Recovery →Clock correction and event timing
Point-in-time host/appliance clock comparison
Published resultTested system: Protectli Vault + Windows evidence host · Vault + Windows evidence workflow
- Post-repair clock difference
- 46 ms
- Approximate independent host/appliance comparison after successful resync.
The Windows time-service repair completed a successful resync and cleared its synchronization warning. A direct comparison then showed about 46 ms difference from the Vault. Earlier records with roughly 20 seconds of skew stayed unchanged; these offsets are not network latency or a clock-drift study.
Setup and original evidence
Protectli V1610 · Windows W32Time / Vault clock · Vault + Windows evidence workflow · Independent clock check after repair
Home SOC: Evidence Collection, Retention and Recovery →