You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -230,7 +230,7 @@ Port 80 is open to all — it's a honeypot port. Port 443 can also be mapped to
230
230
|`REDIS_HOST`|`localhost`| Redis server hostname (set to `redis` in Docker) |
231
231
|`REDIS_DB`|`0`| Redis database index |
232
232
|`DB_DIR`|`data`| Directory for SQLite databases and caches |
233
-
|`ENABLED_PROTOCOLS`| all protocols | Comma-separated list of active protocols with optional port overrides, e.g. `SSH,SMTP:25,SMTP:587,HTTP:80,HTTP:443`. Empty string = ingest-only mode (no local honeypots). |
233
+
|`ENABLED_PROTOCOLS`| all protocols | Comma-separated list of active protocols with optional port overrides and declared protocol options, e.g. `SSH,SMTP:25,SMTP:587,HTTP:80,HTTP:443,SIP:5061:TLS`. Empty string = ingest-only mode (no local honeypots). |
234
234
|`DEFAULT_HOSTNAME`| unset | Canonical hostname all protocols advertise by default (an FQDN, e.g. `mail.corp.example`); each renders its own form (SMTP uses it as-is, SMB derives the short NetBIOS name). Per-protocol vars (`SMTP_HOSTNAME`, `SMB_SERVER_NAME`) override it; `PROTOCOL_VAR=auto` forces that protocol's built-in default instead. Also added to the self-redaction identity so it's scrubbed from captured fields. **Unset = each protocol's prior default** (SMTP reverse-DNS, SMB `WIN-SRV####`). **Docker (bridge networking only):** set this — bridge in-container discovery can't recover the advertised hostname — and also set `REDACT_SELF_IPS` (it can't see the public IP either). Under **host networking** (`docker-compose.host.yml`, the default in `.env.example`) the container sees the host's real IP/PTR, so discovery works like a bare-metal install and both are optional. |
235
235
236
236
### Web Server (`main.py`)
@@ -321,7 +321,9 @@ Port 80 is open to all — it's a honeypot port. Port 443 can also be mapped to
321
321
322
322
| Variable | Default | Purpose |
323
323
|----------|---------|---------|
324
-
|`SIP_PORT`|`5060`| Listening port (UDP + TCP) |
324
+
|`SIP_PORT`|`5060`| Listening port (UDP + TCP for cleartext SIP; TCP/TLS only when SSL mode is enabled). `ENABLED_PROTOCOLS=SIP:5061` auto-enables TLS by convention; `SIP:5061:TLS` is also accepted. |
325
+
|`SIP_TLS_CERT_PATH`|`data/sip_tls.crt`| TLS certificate path for SIP/TLS; auto-generated if missing. |
326
+
|`SIP_TLS_KEY_PATH`|`data/sip_tls.key`| TLS key path for SIP/TLS; auto-generated if missing. |
325
327
|`SIP_OK_DIALPLAN`|`+,bare,00,011,9`| Which dialed forms the fake PBX answers (200) vs rejects (404). `all` (any resolvable E.164), `none`, or a comma list of dial-out prefixes prepended to the bare E.164 digits: `bare` (no prefix), `+`, or digit prefixes like `00`/`011`/`9`. A dial is accepted iff its canonicalized digits equal `prefix + computed-E.164`; numbers that resolve to no E.164 are always rejected. Knocks are recorded regardless. |
326
328
|`SIP_REALM`|`asterisk`| SIP realm in authentication challenge |
327
329
|`SIP_AUTH_CHALLENGE_MODE`|`mixed`|`always`, `never`, or `mixed`|
0 commit comments