Found in docs/CGNAT-DEPLOYMENT.md §VPS deployment.
vps/portbridge forwards public TCP 21, 22, 23, and 25 to Dionaea, Cowrie, and Multipot, but vps/honeypot-firewall.sh does not allow those ports. The documentation explicitly leaves unresolved whether that is intentional, configured elsewhere, or firewall drift.
Scope
- Inspect the live VPS UFW/routing state and determine whether each listener is intentionally reachable.
- Resolve the port-22 collision with real administrative SSH on 2222 without weakening management access.
- If these honeypots should be public, add explicit idempotent firewall rules and comments.
- If any should remain closed/manual, encode and document that decision so portbridge and firewall configuration do not silently disagree.
- Add a static check comparing intended public portbridge listeners with firewall policy, including justified exceptions.
Acceptance
- A documented decision exists for TCP 21, 22, 23, and 25.
- External reachability is tested from outside the VPS, not inferred from a listening socket.
- Admin SSH on 2222 remains reachable throughout rollout and rollback.
- The firewall script stays idempotent and does not expose dashboard/investigation services directly.
Production firewall changes require explicit authorization and a preserved admin session.
Found in docs/CGNAT-DEPLOYMENT.md §VPS deployment.
vps/portbridge forwards public TCP 21, 22, 23, and 25 to Dionaea, Cowrie, and Multipot, but vps/honeypot-firewall.sh does not allow those ports. The documentation explicitly leaves unresolved whether that is intentional, configured elsewhere, or firewall drift.
Scope
Acceptance
Production firewall changes require explicit authorization and a preserved admin session.