Security Dashboard

v1.2.1

Real-time security monitoring dashboard for OpenClaw and Linux server infrastructure. Monitors gateway status, network security, public exposure, system updates, SSH access, TLS certificates, and resource usage.

2· 1.5k·6 current·7 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (security monitoring of OpenClaw and Linux) matches the code: server.js runs many local system checks (systemctl, ss, fail2ban, tailscale, journalctl, file perms). Requiring access to system status commands is expected. However, some implementation details are odd: the installer creates a dedicated user with no home (/nonexistent) yet server.js expects to read files under $HOME and uses ~ in many shell commands — that will make many OpenClaw-specific checks fail when the service runs as the dedicated user unless run as root or the service user is given a real home or sudo access to read those files.
!
Instruction Scope
SKILL.md stays within the stated scope (install, start, access, configuration) and all runtime instructions operate on local system state. But the installer creates a sudoers file that allows the service user to run a number of system utilities with wildcards (notably 'journalctl *' and 'ss *'), which can expose arbitrary logs or system socket/process info beyond narrowly scoped checks. The README/SKILL.md do not document the exact sudoers entries in detail for user review before installation (they are present in scripts/install.sh).
Install Mechanism
There is no remote download; installation is via bundled scripts that create a systemd service and a sudoers file. Installing writes to /etc/systemd/system and /etc/sudoers.d (sensitive system areas) which is expected for a local monitoring service but is a privileged change and should be inspected prior to running. No external URLs or archives are fetched during install.
!
Credentials
The skill requests no environment variables or external credentials. However, the installer grants the service user passwordless sudo for several commands with globs (systemctl is-active *, systemctl status *, journalctl *, ss *, tailscale status * etc.). For a monitoring dashboard, systemctl/fail2ban/ufw/ss/tailscale access is reasonable, but 'journalctl *' is broad and could reveal unrelated logs (potential secrets). Also running the service as root is explicitly allowed (and documented as dangerous) — the combination of allowed sudo commands and root/run-as-root option raises privilege concerns that should be restricted to the minimum needed.
Persistence & Privilege
The skill installs a persistent systemd service and enables it at boot (normal for a dashboard). always is false and the skill does not request to auto-enable itself across the platform. The main elevation vector is the sudoers entry (NOPASSWD) for the dashboard user — this is normal for local monitoring but increases blast radius if the dashboard process is compromised. The service uses systemd hardening flags (NoNewPrivileges, ProtectSystem, PrivateTmp) which is a positive mitigation.
What to consider before installing
Before installing, review the included files (scripts/install.sh and server.js) yourself or on a test machine. Specific checks: - Inspect /etc/sudoers.d/openclaw-dashboard the installer creates. The rule uses wildcards (e.g., 'journalctl *') — consider narrowing this to only the journalctl invocations needed (for example '-u sshd' or specific time ranges) to avoid exposing unrelated logs. - Prefer running as the dedicated user but give that user a real home or adjust server.js to read the OpenClaw config via a configurable path (do not rely on /nonexistent HOME). If you must run as root, be aware of the higher risk. - Confirm the service runs with the intended hardened systemd flags (NoNewPrivileges, ProtectSystem, ReadWritePaths limited to skill directory). Don’t change these without understanding the consequences. - Audit server.js for any commands that call sudo or parse files (fs.readFileSync and many execSync calls). Ensure they only access the data you want monitored and do not transmit data externally (there are no outgoing network calls in the code provided, but review future updates). - Consider running the dashboard in an isolated environment (container or VM) first to validate behavior and to avoid exposing sensitive host logs or files. - If you accept the install, restrict the sudoers entries to the minimal commands and arguments required and verify file ownership/permissions for the OpenClaw config the dashboard needs to read. If you want, I can produce a tightened sudoers snippet and a checklist of the least-privileged commands the dashboard needs, or point out exact lines in server.js that would need modification to make the service run under a non-login dedicated user.

Like a lobster shell, security has layers — review code before you run it.

dashboardvk9788ad4233j46djrpz1tpvard80z176devopsvk9788ad4233j46djrpz1tpvard80z176infrastructurevk9788ad4233j46djrpz1tpvard80z176latestvk97bv0b4zpv6cdp6m4kk46r04n80ye4rmonitoringvk9788ad4233j46djrpz1tpvard80z176securityvk9788ad4233j46djrpz1tpvard80z176

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments