|
7 | 7 | # Blocks: everything else (reverse shells, raw sockets, non-standard ports) |
8 | 8 | # |
9 | 9 | # LOCALHOST: |
10 | | -# Allows: Slack bridge (7890), Ollama (11434), PostgreSQL (54322), DNS (53) |
| 10 | +# Allows: Dev servers (3000-3999, 5173, 6006, 8787-8800, 9229-9260), |
| 11 | +# Slack bridge (7890), Ollama (11434), PostgreSQL (54322), DNS (53) |
11 | 12 | # Blocks: everything else (Steam, CUPS, Tailscale admin, unknown services) |
12 | 13 | # |
13 | 14 | # The agent cannot: |
@@ -43,15 +44,26 @@ iptables -w -N "$CHAIN" |
43 | 44 |
|
44 | 45 | # ── Localhost: allow only specific services ────────────────────────────────── |
45 | 46 |
|
46 | | -# Allow Slack bridge (outbound API) |
| 47 | +# ── Infrastructure ──────────────────────────────────────────────────────── |
| 48 | +# Slack bridge (outbound API) |
47 | 49 | iptables -w -A "$CHAIN" -o lo -p tcp --dport 7890 -j ACCEPT |
48 | | - |
49 | | -# Allow Ollama (local LLM inference) |
| 50 | +# Ollama (local LLM inference) |
50 | 51 | iptables -w -A "$CHAIN" -o lo -p tcp --dport 11434 -j ACCEPT |
51 | | - |
52 | | -# Allow PostgreSQL in Docker (modem app dev/test) |
| 52 | +# PostgreSQL in Docker (modem app) |
53 | 53 | iptables -w -A "$CHAIN" -o lo -p tcp --dport 54322 -j ACCEPT |
54 | 54 |
|
| 55 | +# ── Dev servers (for running/testing modem app locally) ────────────────── |
| 56 | +# Next.js (dashboard, website) |
| 57 | +iptables -w -A "$CHAIN" -o lo -p tcp --dport 3000:3999 -j ACCEPT |
| 58 | +# Vite |
| 59 | +iptables -w -A "$CHAIN" -o lo -p tcp --dport 5173 -j ACCEPT |
| 60 | +# Storybook |
| 61 | +iptables -w -A "$CHAIN" -o lo -p tcp --dport 6006 -j ACCEPT |
| 62 | +# Wrangler dev servers (Cloudflare Workers) |
| 63 | +iptables -w -A "$CHAIN" -o lo -p tcp --dport 8787:8800 -j ACCEPT |
| 64 | +# Node/Wrangler inspector (debugging) |
| 65 | +iptables -w -A "$CHAIN" -o lo -p tcp --dport 9229:9260 -j ACCEPT |
| 66 | + |
55 | 67 | # Allow DNS on localhost |
56 | 68 | iptables -w -A "$CHAIN" -o lo -p udp --dport 53 -j ACCEPT |
57 | 69 | iptables -w -A "$CHAIN" -o lo -p tcp --dport 53 -j ACCEPT |
@@ -90,7 +102,9 @@ echo "✅ Firewall active. Rules:" |
90 | 102 | echo "" |
91 | 103 | iptables -w -L "$CHAIN" -n -v --line-numbers |
92 | 104 | echo "" |
93 | | -echo "Localhost allowed: 7890 (bridge), 11434 (ollama), 54322 (postgres), 53 (dns)" |
| 105 | +echo "Localhost allowed: 3000-3999 (next), 5173 (vite), 6006 (storybook)," |
| 106 | +echo " 7890 (bridge), 8787-8800 (wrangler), 9229-9260 (inspector)," |
| 107 | +echo " 11434 (ollama), 54322 (postgres), 53 (dns)" |
94 | 108 | echo "Internet allowed: 80, 443, 22, 53" |
95 | 109 | echo "Everything else: BLOCKED + LOGGED" |
96 | 110 | echo "" |
|
0 commit comments