EdgeGuard enforces zero-trust at the edge with Modbus/MQTT Deep Packet Inspection, protocol allow-lists, IDS/IPS integration, and OTA hardening — built for installers, integrators, and grid operators.
Capabilities
Real protections that installers and operators can deploy in minutes — from L3/L4 firewalling to OT-aware deep packet inspection and automated policy learning.
Transparent proxy inspects every Modbus frame. Enforce function-code allow-lists, register-range locks, and unit-ID filtering in monitor or enforce mode.
Proxy listen port configurable · Stats & anomaly countersSecure MQTT bridge between local devices and upstream brokers. Enforce topic allow/deny lists, require TLS, and log every publish/subscribe event.
TLS upstream · Client ID prefixing · Anonymous blockPolicy-driven L3/L4 firewall with host/port allow-lists, transactional rule application, automatic rollback on failure, and playbook presets.
Playbooks: solar_mvp · open_debug · learnedCapture traffic, analyze PCAPs, and auto-generate firewall, Modbus DPI, and MQTT rules. Review diffs in the GUI, then apply with one click.
PCAP capture · Summary JSON/CSV · Suggestion enginePassive serial sniffer with CRC validation, frame decoding, and anomaly detection. Bridges RS-485 bus traffic into the EdgeGuard telemetry pipeline.
Configurable baud, parity, stop bits · Unit ID rangeIntegrated Suricata engine with OT-focused rule packs. Operate in IDS (detect) or IPS (block) mode. Alerts feed into telemetry and SOC.
EVE JSON log · OTA rule-pack updatesSigned firmware and rules-bundle updates with SHA-256 verification, staged rollouts, rollback protection, and auto-apply options.
Firmware + IDS/DPI/firewall rules bundlesTLS 1.3 mutual-auth uplink to Cyberfort Armora or any SIEM. Batched telemetry push, heartbeats, and remote-triggered actions (OTA, Learn Mode).
CEF/LEEF/JSON · Remote config via signed commandsAppend-only audit log for every config change (GUI, SOC, OTA). Unified telemetry collector with JSONL export, source/severity filtering, and log rotation.
NIS2-aligned logging · Download ZIP archivesTechnical Specifications
Purpose-built for plant rooms, electrical cabinets, and wall boxes. No re-wiring needed.
| Form factor | DIN-rail mount, compact enclosure |
| Network interfaces | 2× RJ-45 Ethernet (WAN + LAN) |
| Serial interfaces | RS-485 (Modbus RTU, configurable baud/parity) |
| Compute | ARM or x86 SBC (Ubuntu Server LTS) |
| Security element | TPM 2.0 (device identity, key storage, secure boot) |
| Power | Low-power DC input, suitable for cabinet PSU |
| Operating environment | Plant rooms, electrical cabinets, wall boxes |
| Operating system | Ubuntu Server 22.04+ LTS (hardened) |
| Runtime | Python 3.11+ in isolated virtualenv |
| Core API | HTTP on 127.0.0.1:8787 (health, status, control) |
| GUI API & dashboard | FastAPI + static web on 0.0.0.0:8527 |
| Firewall backend | nftables (transactional apply + rollback) |
| IDS/IPS engine | Suricata with OT rule packs |
| Configuration | Canonical YAML (edgeguard.yml) |
| Services | systemd units: edgeguard-core, edgeguard-gui |
| Modbus TCP | Deep packet inspection proxy · Function-code & register-range enforcement · Monitor/enforce modes |
| Modbus RTU / RS-485 | Passive sniff · CRC validation · Frame decoding · Anomaly logging |
| MQTT | Proxy bridge · Topic allow/deny lists · TLS upstream · Client ID prefixing |
| IP / TCP / UDP | nftables L3/L4 firewall · Host/port allow-lists · Playbook presets |
| Syslog / Webhooks | Northbound telemetry export · SIEM/SOAR integration |
| REST API | Full control & status plane · Config read/write · Module control |
| SOC uplink | TLS 1.3 mTLS to Cyberfort Armora · Batched JSON telemetry push · Heartbeats |
| Remote commands | Signed payloads: trigger OTA, start Learn Mode, reload config |
| OTA channels | Firmware + rules bundles (IDS, DPI signatures, firewall playbooks) |
| Update verification | SHA-256 checksum · TPM-backed signing (planned) · Rollback protection |
| Audit trail | Append-only log · GUI/SOC/OTA source tracking · GET /audit/logs |
| Health monitoring | Per-module health · Watchdog loop · Auto-reboot on cascade failure |
EdgeGuard ships with pre-built configuration profiles for popular energy devices. Each profile defines connection parameters, Modbus register maps, allowed function codes, and Learn Mode summarization rules.
System Architecture
EdgeGuard is organized into four architectural layers — from hardened OS through core services, network/security modules, and cloud integration — developed across eight MVP phases.
Ubuntu LTS · nftables · AppArmor · TPM2 · Secure boot
Orchestrator · Config Manager · Key Manager · Audit Logger
Firewall · Modbus DPI · MQTT Proxy · RS-485 · IDS/IPS · Learn Mode
Armora SOC Connector · OTA Agent · Fleet Policy · Web GUI
Allows installers to commission the device without SSH by configuring network interfaces from the web GUI.
GET /network/config · POST /network/config/applyReal logs and a minimal local forensics story — unified telemetry events with source, severity, and structured context.
telemetry.jsonl (size-rotated) + per-module logs (firewall.log, modbus.log, mqtt.log, ids.log)Real nftables enforcement with transactional rule application, automatic rollback, and starter playbooks.
nft -c -f → applies atomically → rolls back on failuredefault_solar_mvp, open_all_debug, learned_from_learn_modePOST /control/firewall/apply · /disable · /playbookEnforce minimal protocol-level policies and logging for the three primary OT/IoT protocols.
Turn captured PCAPs into actionable firewall, Modbus DPI, and MQTT rule suggestions — "learned playbooks".
GET /learn-mode/suggestions · POST /learn-mode/apply/firewall|modbus-dpi|mqtt-proxyExtends OTA beyond firmware to support rules and signature bundles for IDS, DPI, and firewall modules.
/etc/suricata/rules, DPI signatures → var/dpi_signatures, firewall playbooks → var/firewall_playbooksvar/ota_downloads, service reload after installMinimal but functional integration with Cyberfort Armora SOC for telemetry export and remote-triggered actions.
telemetry.jsonl using offsets, batches JSON, sends over TLS with mTLS client certsPOST /soc/config/signed accepts signed payloads with actions: trigger_ota_rules, start_learn_modePrepare for long-term evolution with append-only audit logging, a plugin interface for new modules, and automated health monitoring.
log_audit_event() / log_config_change() → append-only audit.log tracking GUI/SOC/OTA changesModuleBase with start(), stop(), get_status(), on_config_reload() — all modules implement itsystemctl reboot on cascade failureGET /health · GET /status/full · GET /audit/logs?limit=NWeb Dashboard
The EdgeGuard web dashboard provides real-time module status, protocol-level controls, Learn Mode capture & rule review, OTA management, and full telemetry log access — all served from the device itself on port 8527.
Dashboard tab — System overview, live module status, network configuration, firewall controls, and Learn Mode capture
Device Profiles tab — Pre-built profiles with connection, Modbus register maps, RS-485 parameters, and Learn Mode defaults
See every module running/stopped/error at a glance with heartbeat timestamps and detail info.
Dedicated cards for Modbus DPI, MQTT Proxy, and RS-485 with live stats, allowed/blocked lists, and mode indicators.
Filter by source and severity, set max events, refresh live, and download complete log archives as ZIP.
Browse & select profiles for Sungrow, BYD, Pylontech, Victron — see all Modbus/RS-485/MQTT parameters instantly.
API Reference
EdgeGuard exposes two HTTP services — a core orchestrator API and a GUI-facing API that proxies core endpoints and serves the web dashboard.
:8787| Method | Endpoint |
|---|---|
| GET | /health — basic health & version |
| GET | /status — deep status (all modules + OTA + SOC + Learn Mode) |
| GET | /network/config — current network settings |
| POST | /network/config/apply — apply network config |
| POST | /control/firewall/apply|disable|playbook |
| POST | /control/learn-mode/start|stop |
| GET | /learn-mode/suggestions |
| POST | /learn-mode/apply/firewall|modbus-dpi|mqtt-proxy |
| POST | /control/ota/check|apply |
| POST | /control/soc/ping|push-sample |
| POST | /soc/config/signed — remote command handler |
| GET | /audit/logs?limit=N |
:8527| Method | Endpoint |
|---|---|
| GET | /health |
| GET | /api/status — proxies core /status |
| GET/PUT | /api/config — read/write YAML config |
| POST | /api/learn-mode/start|stop |
| POST | /api/ota/check|apply |
| GET | /api/ota/status |
| POST | /api/soc/ping|push-sample |
| GET | /api/telemetry/logs — filtered log view |
| GET | /api/telemetry/download — ZIP archive |
| GET | /api/device-profiles — list profiles |
| GET | /api/device-profiles/:id — profile detail |
| GET | /static/* — web dashboard assets |
Installers, integrators, DSO/DSR teams, and early adopters — we invite you to evaluate EdgeGuard in pilot deployments.
For technical documentation, integration questions, or pilot requests, contact our team.