docs: registrar liberação de SIP/RTP no firewall e confusão de senhas
Atualiza TODO.md/SECURITY.md para refletir a regra de nftables real (SIP/ RTP liberados para RFC1918, AMI/ARI seguem bloqueados incondicionalmente) e documenta em TROUBLESHOOTING.md o caso completo: timeout de registro de softphone causado pelo firewall + confusão entre senha de login web e senha SIP do ramal (duas credenciais diferentes).
This commit is contained in:
@@ -53,12 +53,20 @@
|
||||
|
||||
## Rede
|
||||
|
||||
- Único ponto exposto à LAN: Nginx, porta 80 (443 quando HTTPS configurado
|
||||
— `docs/OPERATIONS.md`).
|
||||
- Único ponto exposto à LAN sem restrição de origem: Nginx, porta 80 (443
|
||||
quando HTTPS configurado — `docs/OPERATIONS.md`).
|
||||
- Postgres/Redis nunca publicados fora de `127.0.0.1`/rede Docker interna.
|
||||
- AMI (5038), ARI (8088/8089), SIP (5060/5061), RTP (10000-20000) bloqueados
|
||||
da interface LAN por nftables (`infrastructure/nftables/b2bcall.nft`),
|
||||
mesmo o Asterisk rodando em `network_mode: host`. SSH nunca bloqueado.
|
||||
- AMI (5038) e ARI (8088/8089) bloqueados incondicionalmente da interface
|
||||
LAN por nftables (`infrastructure/nftables/b2bcall.nft`), mesmo o
|
||||
Asterisk rodando em `network_mode: host` — nenhum softphone ou host
|
||||
externo deve alcançá-los, só a própria aplicação via rede interna.
|
||||
- SIP (5060/udp) e RTP (10000-20000/udp) são liberados na interface LAN,
|
||||
mas **só para origem dentro do RFC1918** (10.0.0.0/8, 172.16.0.0/12,
|
||||
192.168.0.0/16) — necessário para softphones/ramais reais de agentes
|
||||
registrarem, já que o OpenSIPS que ficaria na frente (`docs/OPENSIPS.md`)
|
||||
não foi implantado nesta fase. Origem fora do RFC1918 (internet pública)
|
||||
continua bloqueada — o Asterisk nunca deve receber SIP de fora da rede
|
||||
privada (agente.md seção 5). SSH nunca bloqueado.
|
||||
- CORS: `origin` restrito a uma allowlist configurável (`ALLOWED_ORIGINS`),
|
||||
`credentials: true` só para essas origens.
|
||||
- Helmet (`@fastify/helmet`) ativo: `X-Content-Type-Options`,
|
||||
@@ -88,7 +96,8 @@
|
||||
| Agente não eleva a própria permissão | ✅ |
|
||||
| Segredos de tronco/ramal cifrados em repouso | ✅ |
|
||||
| Postgres/Redis não expostos à LAN | ✅ |
|
||||
| AMI/ARI/SIP não expostos à LAN | ✅ (nftables) |
|
||||
| AMI/ARI não expostos à LAN | ✅ (nftables, incondicional) |
|
||||
| SIP/RTP restritos a origem RFC1918 na LAN | ✅ (nftables — liberado deliberadamente para softphones reais) |
|
||||
| Rate limiting de login | ✅ |
|
||||
| Auditoria de ações sensíveis, sem vazar segredos | ✅ |
|
||||
| Logs estruturados sem credenciais | ✅ |
|
||||
|
||||
Reference in New Issue
Block a user