Features
Everything in this list ships in the default muros Debian package. There is no separate enterprise edition, no paywalled module.
Network
- Interfaces. Static / DHCP / unconfigured per NIC. IPv4 with /CIDR, MTU, optional comment.
- 802.1Q VLANs. Add tagged sub-interfaces, persisted in DB and replayed by muros-boot.service before network-online.target.
- Routing. Static routes in the main table, with metric and optional source.
- Multi-WAN gateways. Multiple WAN gateways with ICMP health probes, automatic default-route swap on failure, configurable per-gateway weight.
- Zones. Symbolic groups of interfaces (lan, wan, dmz, custom). Rules reference zones, not interface names, so re-cabling does not rewrite the ruleset.
Firewall
- Filter rules. input / forward / output chains, action accept / drop / reject, per-rule log, rate-limit, comment.
- Drag-and-drop ordering. Same UX as NAT.
- Service groups. Reusable named port + protocol sets (e.g. http_https, dns, ssh).
- Address groups. Reusable CIDR / IP sets, referenced from rules.
- Live counters. Per-rule packets and bytes pulled from nft, refreshed in the UI.
- Default deny + state matching. Stateful, out of the box.
- Dry-run preview. Generated nft ruleset shown before Apply.
- Apply with auto-rollback. If the new ruleset breaks the management session, the previous ruleset is restored.
NAT
- Masquerade per outgoing interface for cheap outbound internet.
- SNAT with explicit source IP.
- DNAT to publish internal services on a public port.
- Redirects. Port-to-port on the same host (e.g. 80 -> 8080).
- Drag-and-drop reorder. Same UX as filter rules.
LAN services
- DHCP server. Kea (kea-dhcp4-server) backend, per-interface pools, gateway and DNS offered, lease time. Static leases by MAC.
- Active lease view. Reads the Kea lease file, shows MAC, IP, hostname, expiry.
- Recursive DNS. Unbound resolver, DNSSEC validation, forwarders, local A and AAAA records.
- System resolver toggle. Optionally point /etc/resolv.conf at the local Unbound.
VPN
- WireGuard. Server config (interface, listen port, MTU), peer list with key generation, persists across reboots.
- IPsec. StrongSwan, PSK or cert-based connections, road-warrior support.
- Built-in PKI. CA, leaf certs, CRL, all managed from the IPsec page. No openssl on the CLI.
- IPsec users. Per-user EAP credentials.
High availability
- VRRP active / passive via keepalived, one VIP per interface.
- Conntrack sync. conntrackd replicates connections to the slave, no TCP reset on takeover.
- Inter-node DB sync. The slave mirrors the master MurOS database so a takeover keeps the full config.
- Asymmetric pairs supported. Different vendors and NIC counts work as long as enabled interfaces line up.
Observability
- Dashboard. CPU, memory, disk, swap, conntrack, throughput per interface, service state. Refreshed every 3 seconds.
- Firewall logs. journalctl -k filtered on the nft prefix, action / rule id / packet columns, infinite scroll.
- Audit log. Every UI write action recorded (user, method, path, status, source IP, payload digest).
- System journal. Per-unit journalctl viewer, errors-only filter, auto-refresh, tail mode.
- Notifications. Direct SMTP to an external smarthost (no local postfix), event watcher rules (HA takeover, multi-WAN failover, apt updates, conntrack exhaustion, ...).
- SNMP. Standard Debian snmpd, community + CIDR ACL, sysContact, sysLocation.
Diagnostic
- Live tools. ping, traceroute, dig, tcpdump (timed), conntrack -L, nft list ruleset.
- Per-tool args. Source interface, packet count, timeout, BPF filter for tcpdump.
- Streaming output. Server-Sent Events, no copy-paste from a shell.
System
- General. Hostname, time zone, locale, kernel and Debian version.
- NTP. chrony, enabled by default, its own Services page, configurable servers, current offset.
- System DNS. /etc/resolv.conf (separate from the recursive resolver).
- Backups. One-click snapshots of DB + nftables ruleset + network config + NTP + DNS. Local archive plus remote push via rclone, FTP or SSH. Restore from any snapshot.
- Updates (apt). apt-get update + upgrade view, kernel reboot indicator, deferred reboot scheduling.
- Maintenance. Reboot, shutdown, scheduled at a future time.
HTTP access
- Accounts. PAM authentication: the web UI and SSH share the Linux accounts. root is the default administrator; grant or revoke web UI access per account and promote accounts to administrator.
- TOTP MFA. Standard RFC 6238, any authenticator app.
- Reachability at the firewall. The web UI listens on every interface; you decide who can reach it with a filter rule, the same way you expose any other service.
- HTTP / HTTPS ports. Configurable, with HTTP -> HTTPS redirect.
- TLS certificate. Upload existing PEM cert + key, or generate a self-signed RSA 4096 in one click.
SSH access
- Install / remove openssh-server from the UI.
- Listen address and port per sshd_config drop-in.
- Authorized keys for root, with paste-in or upload.
- Linux root password change (the same password used for the web UI, via PAM).
Hardening
- sysctl drop-in. Forwarding, rp_filter, BCP-38 anti-spoof, conntrack tuning.
- sshd drop-in. No root password, no challenge response, MaxAuthTries.
- fail2ban drop-in. MurOS filter for the UI login, sshd jail.
- journald drop-in. Persistent storage, size cap.
- API rate limit. Per-IP login attempts throttled at the FastAPI layer.