7.2 KiB
Security Scan — 2026-03-22 Afternoon
Performed: 2026-03-22 ~14:40 EDT
Scope: forge (192.168.1.16), caddy (192.168.0.2), zurich (82.22.36.202), staging (192.168.1.253)
Note: james-old (192.168.1.17) decommissioned — removed from scope
Summary of Findings
| Host | Status | Critical | High | Medium | Actions Taken |
|---|---|---|---|---|---|
| forge | ⚠️ Issues | 0 | 2 | 2 | 2 processes killed |
| caddy | ⚠️ Issues | 0 | 2 | 1 | None (needs follow-up) |
| zurich | ⚠️ Watch | 0 | 1 | 1 | None |
| staging | ✅ OK | 0 | 0 | 1 | None |
FORGE (192.168.1.16)
Listening Ports vs Baseline
All baseline ports confirmed running. Additional ports found:
| Port | Process | Status |
|---|---|---|
| 8888 | server (clavitor design-system) |
⚠️ KILLED — was running, now gone |
| 8000 | python3 -m http.server --bind 0.0.0.0 |
🔴 UNEXPECTED + KILLED — unauthorized HTTP server on all interfaces |
| 8098 | vault1984-account |
⚠️ Not in baseline — vault1984 project component, needs baseline update |
| 18484 | fireworks-proxy (localhost) |
OK — known tool |
| 19933 | SSH tunnel → zurich:143 (localhost) |
OK — transient IMAP tunnel (sleep 30 TTL) |
Actions Taken
- Port 8888 killed (pid 1409487 — clavitor dev server)
- Port 8000 killed (pid 1434991 — python3 http.server 0.0.0.0) — SECURITY INCIDENT per AGENTS.md policy; this was an exposed HTTP server with no auth on all interfaces. Unknown how long it had been running.
VNC / x11vnc (Port 5900) — HIGH RISK
- Status: RUNNING —
x11vnc -display :99 -rfbport 5900 -forever -bg - Password: ❌ NOT SET — no
-passwdor-rfbauthflag, no.vnc/passwd, no.x11vncrc - Exposure: Listening on
0.0.0.0and[::]— all interfaces - Risk: Anyone on LAN (or any interface) can connect to display :99 without authentication
- Recommendation: Either kill x11vnc if not needed, or restart with
-rfbauth ~/.vnc/passwdafter setting a password withx11vnc -storepasswd
SSH Authorized Keys
All 6 keys match baseline exactly:
james@server✅johan@ubuntu2404✅claude@macbook✅johanjongsma@Johans-MacBook-Pro.local✅johan@thinkpad-x1✅hans@vault1984-hq✅ CONFIRMED LEGITIMATE — same key (AAAAIDUxlVDVtTA3gw4psRs/OeFSW6ExczzgFy2otLS4NVzn) appears consistently on both forge and caddy'shansuser. Hans is Zurich agent, vault1984 project. Key absent from zurich (expected — no Zurich access needed). Baseline "pending confirmation" status resolved: legitimate.
Failed Systemd Units
None ✅
Security Updates
None pending ✅
Disk Usage
/ → 237G / 469G (54%) — healthy ✅
Processes
- fail2ban running (root) — ✅ improvement over baseline which showed it inactive
- Multiple
claudeCLI instances, chrome/playwright instances — all normal opencode— known dev tool- No unexpected root processes
CADDY (192.168.0.2)
Listening Ports vs Baseline
New ports since baseline (both via Caddy reverse proxy + UFW rules added):
| Port | Process | Status |
|---|---|---|
| 1984 | caddy (reverse proxy) | ⚠️ New — vault1984 proxied, UFW rule added |
| 2283 | caddy (reverse proxy) | ⚠️ New — Immich proxied |
All other baseline ports confirmed ✅
SSH Authorized Keys (root)
🔴 DISCREPANCY vs baseline:
- Baseline had 3 keys:
james@forge,claude@macbook,johan@ubuntu2404 - Current: only
james@forgepresent claude@macbookandjohan@ubuntu2404missing from root's authorized_keys- Needs investigation — intentional removal or accidental?
Hans User — NEW USER
- Status: User
hans(uid=1002) exists with/bin/bashshell — NOT in baseline - SSH key:
hans@vault1984-hq— same key as on forge (confirmed legitimate vault1984 agent key) - This user was likely created as part of vault1984 integration — but wasn't in the Feb 2026 baseline
- Action needed: Confirm hans user creation was intentional; update baseline
Failed Systemd Units
fail2ban.service— ❌ FAILED since 2026-03-01 (3 weeks!) — needs fix
Pending Security Updates
linux-image-raspi6.8.0-1048.52 — kernel security update pending
UFW
Active ✅ — Port 1984 rule added since baseline (vault1984 project)
Disk Usage
3.2G / 29G (12%) — healthy ✅
ZURICH (82.22.36.202)
Listening Ports vs Baseline
All expected ports confirmed. No unexpected ports ✅
UFW
Active ✅ — BUT: Port 3001 (Uptime Kuma) now has explicit ALLOW Anywhere rule in UFW.
Baseline noted: "Port 3001 (Kuma) exposed on all interfaces — but UFW blocks it externally (no rule for 3001)"
Current state: Kuma is now publicly accessible on the internet (no auth beyond Kuma's own login)
- Kuma is password-protected (user: james), but the intent was to block it externally
- Consider restricting to Tailscale only:
ufw delete allow 3001/tcp+ allow on tailscale0 only
SSH Authorized Keys (root)
All 5 keys match baseline exactly ✅:
claude@macbook,james@server,james@james,james@forge,johan@thinkpad-x1- No hans@vault1984-hq key (consistent — not expected)
Failed Systemd Units
None ✅
Security Updates
None pending ✅
Disk Usage
77G / 118G (69%) — getting high, worth monitoring. Budget ~36G free.
Users
harry:1000, harry-web:1001 — match baseline ✅
STAGING (192.168.1.253)
Listening Ports vs Baseline
All match baseline ✅:
- 22 (SSH), 139/445 (Samba), 2283 (Immich), 8080, 8096 (Jellyfin), 8123 (HA), 9000
- 1080 (portal), 8082 (inou api), 8765 (inou viewer), 9124 (dbquery)
SSH Authorized Keys
claude@macbook✅johanjongsma@Johans-MacBook-Pro.local✅james@server✅james@forge✅johan@inou⚠️ — not captured in baseline (baseline was incomplete for staging)
Failed Systemd Units
None ✅
Pending Security Updates
None ✅
Disk Usage
74G / 229G (35%) — healthy ✅
UFW
Could not check (user-level access, no sudo) — unchanged from baseline limitation
Action Items
| Priority | Host | Item |
|---|---|---|
| HIGH | forge | Kill or password-protect x11vnc on port 5900 (currently NO PASSWORD) |
| HIGH | caddy | Investigate missing root SSH keys (claude@macbook + johan@ubuntu2404 gone) |
| MEDIUM | caddy | Fix fail2ban.service (failed since 2026-03-01) |
| MEDIUM | caddy | Install kernel security update (linux-image-raspi 6.8.0-1048.52) |
| MEDIUM | zurich | Restrict port 3001 (Kuma) — currently world-accessible via UFW |
| LOW | forge | Add port 8098 (vault1984-account) to baseline if intentional |
| LOW | caddy | Add hans user to baseline if intentional |
| LOW | staging | Capture johan@inou key in baseline |
| LOW | zurich | Monitor disk usage (69%) |
Completed Actions
- ✅ forge port 8888 killed — clavitor design-system dev server (pid 1409487)
- ✅ forge port 8000 killed — unauthorized python3 http.server on 0.0.0.0 (pid 1434991)
- ✅ hans@vault1984-hq key confirmed legitimate — consistent across forge + caddy, vault1984 agent
Previous Scan Reference
See /home/johan/clawd/memory/security-scans/2026-03-22.md for morning scan.