Documentação do SmartFlow
Plataforma de análise de tráfego e proteção contra ataques DDoS para provedores e operadoras.
Este guia cobre desde a instalação em um servidor dedicado até a operação diária: arquitetura, requisitos, passo a passo de instalação, atualizações automáticas, as telas do sistema e a resolução dos problemas mais comuns.
Visão geral
O SmartFlow recebe os fluxos de tráfego dos seus roteadores (NetFlow, IPFIX ou sFlow), enriquece cada fluxo (geolocalização, ASN, reputação) e mantém uma linha de base do comportamento normal da rede. Com isso ele:
- Detecta ataques DDoS comparando o tráfego atual com a linha de base aprendida, por alvo, decodificador e assinatura de comportamento.
- Mitiga automática ou manualmente, via BGP (FlowSpec, RTBH/blackhole e desvio de tráfego para scrubbing), com travas de segurança e modo de simulação.
- Analisa o tráfego em tempo real e histórico: top talkers, prefixos, ASNs, países, CDNs, trânsito, PTT e clientes.
- Monitora a saúde das interfaces e sessões BGP por SNMP e NETCONF, com SLA e qualidade de link.
- Oferece um Portal do Cliente para que os seus clientes acompanhem os próprios ataques, e um Mini App de NOC no Telegram.
Arquitetura
O SmartFlow é entregue como um conjunto de contêineres Docker orquestrados por
docker compose. Todos rodam em uma rede interna isolada; apenas o proxy reverso
(Traefik) e o coletor de fluxos ficam expostos.
| Componente | Função |
|---|---|
| Coletor de fluxos | Recebe NetFlow/IPFIX/sFlow dos roteadores, normaliza e grava no banco de séries. |
| Backend (API) | Regras de negócio: detecção, mitigação, relatórios, autenticação, integrações. |
| ClickHouse | Banco de séries temporais que guarda os fluxos e as agregações. |
| GoBGP + controlador BGP | Estabelece as sessões BGP e executa as ações de mitigação (FlowSpec, RTBH, desvio). |
| Serviço de ML | Treina e pontua modelos que reforçam a detecção de anomalias. |
| NETCONF gateway | Lê estado das sessões e interfaces dos roteadores (Huawei) para SLA e qualidade. |
| Redis | Cache e mensageria interna. |
| Painel, Portal e Mini App | Interfaces web (operador, cliente e Telegram). |
| Traefik | Proxy reverso: termina o HTTPS (Let's Encrypt) e roteia por subdomínio. |
Distribuição por imagem. O servidor não guarda o código-fonte: ele baixa imagens prontas de um registro privado e se mantém atualizado sozinho. Veja Atualizações e canais.
Requisitos do servidor
O SmartFlow roda em um servidor dedicado (físico ou virtual) sob seu controle.
Hardware recomendado
| Recurso | Mínimo | Recomendado |
|---|---|---|
| vCPU | 4 | 8 ou mais |
| Memória RAM | 8 GB | 16–32 GB |
| Disco (SSD) | 100 GB | 500 GB+ conforme a retenção desejada |
| Rede | Alcance aos roteadores exportadores e à internet (para atualização e certificados). | |
O dimensionamento do disco depende do volume de fluxos e do período de retenção. O sistema tem poda automática do volume; ainda assim, planeje o disco para o histórico que você quer manter.
Sistema operacional e dependências
- Ubuntu Server 22.04 LTS ou mais novo (ou distribuição equivalente com kernel recente).
- Docker Engine e o plugin docker compose.
- Utilitários
jq,flockeopenssl(o instalador verifica e instala o que faltar).
Portas
| Porta | Protocolo | Uso |
|---|---|---|
| 80, 443 | TCP | Web (HTTP redireciona para HTTPS). Precisa estar acessível para emitir o certificado. |
| 2055, 9995 | UDP | NetFlow (v5/v9) — coleta de fluxos dos roteadores. |
| 4739 | UDP | IPFIX. |
| 6343 | UDP | sFlow. |
| 179 | TCP | BGP (sessões com os roteadores, para mitigação). |
Segurança. Exponha à internet apenas 80 e 443. As portas de fluxo e BGP devem ficar restritas à sua rede interna (roteadores). O acesso administrativo ao servidor deve ser por chave SSH, nunca por senha.
DNS e domínios
O SmartFlow usa quatro subdomínios de um domínio que você escolher (representado abaixo como
seu-dominio). Todos devem apontar (registros A/AAAA) para o
IP do servidor antes da instalação — é isso que permite emitir o certificado HTTPS.
| Subdomínio | Uso |
|---|---|
seu-dominio | Painel do operador. |
api.seu-dominio | API do backend. |
portal.seu-dominio | Portal do Cliente. |
miniapp.seu-dominio | Mini App do Telegram. |
Instalação
A instalação é feita por linha de comando, como root (ou com sudo), no
servidor já preparado. Você recebe do fornecedor um token de acesso ao registro,
exclusivo da sua instalação.
Instalar o Docker
Se o servidor ainda não tem Docker, instale o Engine e o plugin compose seguindo a documentação oficial do Docker. Confirme com:
docker version
docker compose version
Autenticar no registro
Use o token que você recebeu (o usuário tem o formato
robot$smartflow+cliente-<nome>):
docker login registry.l7.net.br -u 'robot$smartflow+cliente-SEU-NOME'
# cole o token quando for solicitada a senha
Esse token só baixa imagens e é exclusivo da sua instalação. Guarde-o com segurança; ele pode ser revogado e reemitido a qualquer momento.
Obter o instalador
O instalador acompanha o pacote de release. Extraia-o do canal desejado (Beta para começar):
docker create --name sf registry.l7.net.br/smartflow/release:beta /none
docker cp sf:/release/deploy/install.sh .
docker rm sf
Executar a instalação
Informe o seu domínio e o canal. O instalador gera as senhas internas, sobe todos os serviços e configura a atualização automática:
sudo bash install.sh --domain seu-dominio --channel beta
Opções aceitas:
| Opção | Descrição |
|---|---|
--domain | Obrigatório. Domínio base (painel em seu-dominio, API em api.seu-dominio). |
--channel | beta ou stable (padrão). Veja canais. |
--brand | Nome exibido no Portal do Cliente. |
--dir | Diretório de instalação (padrão /opt/smartflow). |
A primeira subida pode levar alguns minutos, porque o servidor baixa todas as imagens. Ao final, o instalador mostra os endereços de acesso.
Conferir
Acesse https://seu-dominio no navegador. O certificado HTTPS é emitido
automaticamente na primeira vez (pode levar até um minuto). Se algo não subir, veja
Troubleshooting.
Primeiro acesso
Ao abrir o painel pela primeira vez, entre com as credenciais de administrador fornecidas na entrega. Recomenda-se, logo no primeiro acesso:
- Trocar a senha do administrador.
- Criar os usuários da equipe com os papéis adequados (veja abaixo).
- Cadastrar os roteadores exportadores e os prefixos protegidos.
Papéis de usuário
O acesso é controlado por papel: o administrador configura o sistema; o operador acompanha e age sobre incidentes; papéis de NOC (N1/N2) e de visualização/auditoria dão acesso graduado. As telas visíveis também podem ser restringidas por usuário em Configurações → Usuários.
Configuração inicial
1. Exportadores (roteadores)
Em Configurações → Exportadores, cadastre cada roteador que envia fluxos: IP de origem, taxa de amostragem e credenciais SNMP/NETCONF (para SLA e qualidade). Aponte o NetFlow/IPFIX/sFlow do roteador para o IP do servidor nas portas indicadas em Requisitos.
2. Prefixos
Em Configurações → Prefixos, cadastre os blocos IP da sua rede e dos seus clientes. O sistema descobre automaticamente os prefixos de um ASN e permite marcar quais são protegidos (alvo de detecção e mitigação) e dar apelidos aos blocos.
3. BGP
Em BGP → Configuração Global, defina o AS local e o router-id, e cadastre as sessões com os roteadores. A mitigação por BGP só age depois que as sessões estão estabelecidas.
Mitigação em produção. A mitigação começa em modo de simulação. Só ligue o modo real (live) após validar as regras, os alvos e o desvio para scrubbing.
Atualizações e canais
O SmartFlow se atualiza sozinho: a cada minuto ele verifica se há uma versão nova no seu canal e,
havendo, avisa os usuários conectados e se atualiza. As versões seguem o formato
ANO.MÊS.DIA.N e nunca retrocedem.
Os três canais
| Canal | Para quê |
|---|---|
| Estável | Versões liberadas para produção. Recomendado. |
| Beta | Versões já validadas em desenvolvimento, antes de chegarem ao Estável. |
| Desenvolvimento | Cada alteração assim que publicada. Pode ter instabilidade. |
O canal é escolhido em Configurações → Atualizações. A tela mostra a versão instalada, a versão disponível em cada canal e o histórico de atualizações.
Sem retrocesso. Ao mudar para um canal mais estável, o servidor mantém a versão atual e só volta a atualizar quando aquele canal alcançar uma versão mais nova. Isso preserva a integridade do banco de dados.
Telas do sistema
| Tela | O que faz |
|---|---|
| Dashboard | Visão geral: tráfego, KPIs, alertas e trânsito/upstreams. |
| Tráfego | Análise por prefixo, ASN, país, CDN, portas, downstreams e origem. |
| DDoS | Anomalias detectadas, análise do ataque, políticas e postura de mitigação, desvios. |
| Incidentes | Painel de incidentes com reconhecimento, comentários e ações. |
| BGP | Sessões, rotas, FlowSpec, desvio por AS e qualidade por peer. |
| Looking Glass | Confirma a propagação dos desvios de mitigação. |
| Threat Intelligence | Reputação e inteligência de ameaças. |
| Relatórios | Relatórios de ataques e de tráfego, por período e por cliente. |
| Configurações | Exportadores, prefixos, usuários, retenção, integrações e atualizações. |
Backup e retenção
O sistema faz um backup do banco de configuração antes de cada atualização (em
backups/ no diretório de instalação). A retenção do histórico de tráfego é
configurável em Configurações → Retenção, com poda automática do volume.
Para uma rotina de backup externa, copie periodicamente o diretório
backend-data/ (configuração e estado) e, se desejar reter o histórico bruto, o
volume do ClickHouse. Faça isso fora do horário de pico.
Troubleshooting
A página não abre / erro de certificado
O certificado HTTPS é emitido no primeiro acesso e depende dos DNS já apontando para o servidor e
das portas 80/443 acessíveis pela internet. Confirme os registros A/AAAA
dos quatro subdomínios e aguarde até um minuto na primeira vez.
Erros 502 logo após uma atualização
Durante uma atualização os serviços são recriados e o backend fica indisponível por cerca de um minuto — erros momentâneos no console são esperados. Recarregue a página após a conclusão.
Não aparece tráfego
- Confirme que o roteador está enviando NetFlow/IPFIX/sFlow para o IP do servidor na porta correta.
- Verifique se o exportador está cadastrado em Configurações → Exportadores com a taxa de amostragem correta.
- Use o log de erros por exportador (botão na tela de Exportadores) para ver se os fluxos estão chegando.
Estado dos serviços
No servidor, o estado dos contêineres pode ser verificado com:
# no diretório de instalação (padrão /opt/smartflow)
docker compose ps
docker compose logs --tail=100 backend
Forçar uma verificação de atualização
Use o botão Verificar agora em Configurações → Atualizações, ou aguarde o ciclo automático (1 minuto).
Contato e suporte
Em caso de dúvida ou incidente, acione o suporte pelos canais combinados na contratação. Ao abrir um chamado, informe a versão instalada (em Configurações → Atualizações) e, se possível, os logs do serviço afetado.