Logs de CGNAT
Para que serve
A tela Logs de CGNAT resolve a pergunta clássica de quem opera CGNAT em provedor: quem estava por trás de um IP público em um determinado horário? Ela faz o caminho nos dois sentidos — de IP público para o bloco/assinante e de IP do assinante (privado) para o IP público — e ainda mostra o log de conexões (origem, destino, portas, proto, bytes e horário) reconstruído a partir do flow (NetFlow/IPFIX) exportado pelo roteador.
O grande diferencial é que o Sentinela não depende de log de NAT do roteador. Ele importa as regras src-nat do Mikrotik (CGNAT determinístico) via SSH e monta um mapa em memória que liga cada IP público a um bloco privado (tipicamente um /27). Com esse mapa, a resolução público↔assinante é instantânea e sem precisar guardar milhões de linhas de log de conexão.
Importante: só funciona para CGNAT determinístico (o bloco privado é sempre mapeado para o mesmo IP público). Se o seu NAT usa pool dinâmico/PBA sem regra fixa por bloco, o mapeamento não é reconstruível por aqui.
Requisitos
- O dispositivo precisa estar marcado como CGNAT no cadastro (opção
MonCGNAT) para aparecer na lista de Origem. - O dispositivo precisa ter SSH configurado (Host/Usuário/Senha/Porta) no cadastro, pois o mapeamento é lido do roteador via SSH com o comando
/ip firewall nat print terse where chain=srcnat action=src-nat. - O roteador precisa estar exportando flow para o Sentinela — é dele que sai o log de conexões.
Seções e campos
1. Origem (CGNAT)
Lista de dispositivos marcados como CGNAT. Ao selecionar um, a tela dispara automaticamente uma checagem de saúde (linha de status logo abaixo) que mostra dois indicadores:
- Flow:
✅ Flow ativo (N fluxos/5min)se estão chegando fluxos daquele IP nos últimos 5 minutos, ou um aviso⚠️ Sem flow chegandocaso contrário. - Mapeamento:
🗺️ Mapeamento: N blocoscom a quantidade de blocos importados. Se ainda não houver mapeamento, o sistema tenta sincronizar sozinho na hora (via SSH) e indica(sincronizado agora). Se falhar (sem SSH, por exemplo), mostra⚠️ Mapeamento vazio.
Como funciona a sincronização: na primeira consulta de um dispositivo sem pools, o Sentinela conecta por SSH, lê as regras src-nat, extrai cada par src-address=<bloco> → to-addresses=<IP público> e grava os blocos. Depois disso o mapa fica em cache e as consultas são instantâneas. Reimportar é necessário sempre que você mudar as regras de NAT no roteador (novo bloco, remanejamento de IP público etc.).
2. Intervalo
Botão de janela de tempo (🕐). Abre um seletor com presets (Último 1 minuto até Últimas 24 horas) e um bloco de Intervalo personalizado com campos De e Até (data e hora, com segundos). Para investigações legais/abuso, use o personalizado e informe exatamente o horário do evento — o CGNAT reaproveita o mesmo IP público entre vários assinantes, então o horário é o que distingue quem estava usando.
3. Público / Privado
Seletor do sentido da consulta:
- 🌐 Público — você tem o IP público (ex.: recebeu uma notificação de abuso citando
128.201.173.1) e quer descobrir o bloco/assinante. O rótulo do campo vira IP público. - 🛡 Privado — você tem o IP do assinante (ex.:
100.64.0.55, faixa CGNAT) e quer o IP público correspondente e o log daquele cliente. O rótulo vira IP do assinante (privado).
4. Campos da pesquisa
| Campo | Uso |
|---|---|
| IP público / IP do assinante | Obrigatório. O IP a resolver (conforme o modo escolhido). |
| Porta (opcional) | Filtra pela porta da conexão — casa tanto porta de origem (assinante) quanto porta de destino. Atenção: não é a porta pública do NAT — essa não vem no flow do Mikrotik. |
| Destino (opcional) | IP do servidor acessado. Útil para confirmar acesso a um destino específico (ex.: o IP citado numa denúncia). |
| Resultados | Limite de linhas retornadas (padrão 200; faixa de 1 a 5000). |
Botão 🔎 Pesquisar executa a consulta. Enter nos campos IP e Destino também dispara a pesquisa.
5. Log de conexões
Tabela com o resultado, ordenada por volume (bytes) decrescente. Colunas:
- Assinante — IP privado de origem, com a porta de origem (
ip:porta). - Destino — IP e porta de destino.
- Proto — protocolo (TCP/UDP/ICMP...).
- IP público (NAT) — o IP público usado na saída.
- Início / Fim — primeiro e último timestamp do fluxo agregado (HH:MM:SS).
- Bytes — total transferido (formatado em KB/MB/GB...).
A barra de status acima mostra o resumo: nº de conexões, o bloco (CIDR) resolvido e o IP público. O botão ⬇ Exportar CSV baixa o resultado atual (arquivo cgnat.csv) com as colunas completas — ideal para anexar a resposta de denúncia/ofício.
Passo a passo — investigar um IP público
- Selecione a Origem (CGNAT) correspondente ao roteador que faz o NAT.
- Confira a linha de status: flow ativo e mapeamento com blocos. Se o mapeamento estiver vazio, garanta o SSH e reselecione a origem para sincronizar.
- Ajuste o Intervalo para o horário exato do evento (use o personalizado).
- Deixe o modo em 🌐 Público e informe o IP público denunciado.
- (Opcional) informe o Destino e/ou a Porta para restringir.
- Clique em Pesquisar. A tabela mostra os assinantes (IP privado) que usaram aquele IP público naquele período; o resumo traz o bloco resolvido.
- Exporte em CSV se precisar do registro.
Passo a passo — do assinante para o IP público
- Selecione a Origem e ajuste o Intervalo.
- Mude para o modo 🛡 Privado.
- Informe o IP do assinante (faixa CGNAT, ex.:
100.64.x.x). - Pesquise: o resumo mostra o IP público correspondente e a tabela lista as conexões daquele cliente.
Dicas e avisos
- O horário é decisivo. Como o mesmo IP público é compartilhado entre vários assinantes de blocos diferentes, sem a janela de tempo correta a resolução pode apontar vários candidatos. Sempre use o intervalo do evento.
- Porta pública do NAT. O flow do Mikrotik não traz a porta pública traduzida — por isso o campo Porta filtra a porta da conexão real (assinante/destino), não a porta NAT. Se a denúncia só tem IP público + porta pública, use o IP e o horário e refine pelo Destino.
- IP público não mapeado. Se aparecer o aviso de "IP público não mapeado", o bloco daquele IP ainda não foi importado — selecione a Origem correta para sincronizar o mapeamento via SSH.
- Reimporte após mudar o NAT. Trocou IP público de um bloco ou criou bloco novo? Reselecione a origem/force a sincronização para o mapa refletir a realidade do roteador.
- Somente CGNAT determinístico. A resolução depende de haver regra
src-natfixa por bloco (src-address→to-addresses). NAT com pool dinâmico não é reconstruível aqui.