Passo a passo completo para colocar a plataforma no ar em um servidor Debian 13 (server, instalação mínima) — das dependências ao dashboard funcionando.
| Recurso | Small (até ~5 Gbps) | Medium (até ~20 Gbps) |
|---|---|---|
| CPU | 8 cores (Xeon / EPYC) | 16 cores |
| RAM | 32 GB DDR4 | 64 GB ECC |
| Disco | 500 GB NVMe SSD | 2 TB NVMe |
| OS | Debian 13 server (instalação mínima), x86_64 | |
Redes maiores (40 Gbps+): veja o dimensionamento completo.
| Porta | Proto | Serviço |
|---|---|---|
| 2055 | UDP | Coletor NetFlow v5/v9/IPFIX |
| 6343 | UDP | Coletor sFlow |
| 3099 | TCP | Dashboard Web |
| 8123 / 9000 | TCP | ClickHouse (apenas local) |
| 6379 | TCP | Redis (apenas local) |
| 179 | TCP | BGP (GoBGP ↔ roteador) |
| 80 / 443 | TCP | Proxy p/ domínio + HTTPS (opcional, passo 10) |
sudo. Substitua SUA_SENHA_CH e SUA_SENHA_MYSQL por senhas fortes próprias — anote-as, serão usadas em mais de um passo.Atualize o Debian e instale as ferramentas base. O FlowSpec Analyzer é entregue como binário pronto — não é preciso nenhuma ferramenta de compilação:
apt update && apt upgrade -y
apt install -y curl sudo wget gnupg ca-certificates unzip \
net-tools libpcap0.8 tcpdump htop
libpcap0.8 é a única biblioteca de sistema que o coletor usa em runtime. Nada de compiladores, PHP ou pacotes extras — quanto menor a instalação, menor a superfície de ataque.O dashboard web roda sobre Node.js (via repositório oficial NodeSource):
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
node --version # deve mostrar v22.x
O ClickHouse é o banco de séries temporais que armazena os flows. Instale pelo repositório oficial:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | \
gpg --dearmor -o /etc/apt/keyrings/clickhouse.gpg
echo "deb [signed-by=/etc/apt/keyrings/clickhouse.gpg] https://packages.clickhouse.com/deb stable main" | \
tee /etc/apt/sources.list.d/clickhouse.list
apt update
apt install -y clickhouse-server clickhouse-client
default. Defina uma senha forte e anote — este guia se refere a ela como SUA_SENHA_CH.systemctl enable --now clickhouse-server
curl http://localhost:8123/ping
Ok.
O MariaDB guarda usuários e configurações do dashboard; o Redis distribui alertas em tempo real.
apt install -y mariadb-server mariadb-client redis-server
systemctl enable --now mariadb redis-server
redis-cli ping
PONG
Defina a senha do root do MariaDB (troque SUA_SENHA_MYSQL):
mariadb -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'SUA_SENHA_MYSQL'; FLUSH PRIVILEGES;"
O GoBGP é o daemon BGP usado para anunciar as regras de mitigação (FlowSpec/RTBH) ao seu roteador:
apt install -y gobgpd
./scripts/gobgp/gen_config.py /etc/gobgpd.conf. Se você não for usar mitigação automática agora, pode pular a configuração — o restante do sistema funciona normalmente.Baixe a versão estável, valide a integridade e extraia em /opt:
cd /opt
curl -fLO https://www.managerpro.dev.br/flowspec/flowspec-analyzer-stable.tar.gz
curl -fLO https://www.managerpro.dev.br/flowspec/flowspec-analyzer-stable.tar.gz.sha256
sha256sum -c flowspec-analyzer-stable.tar.gz.sha256
flowspec-analyzer-stable.tar.gz: OK
tar -xzf flowspec-analyzer-stable.tar.gz -C /opt/
cd /opt/flowspec-analyzer
mkdir -p logs
Crie o diretório da licença:
mkdir -p /etc/flowspec-analyzer
chown -R www-data:www-data /etc/flowspec-analyzer
sha256sum -c não retornar OK, não prossiga — baixe novamente ou entre em contato com o suporte.7.1 — Edite o config.toml e informe a senha do ClickHouse definida no passo 3:
nano /opt/flowspec-analyzer/config.toml
# na seção [storage.clickhouse]:
# password = "SUA_SENHA_CH"
7.2 — Crie o banco e aplique o schema + dados iniciais (templates de detecção, decoders):
cd /opt/flowspec-analyzer
clickhouse-client --password 'SUA_SENHA_CH' -q "CREATE DATABASE IF NOT EXISTS flowspec"
clickhouse-client --password 'SUA_SENHA_CH' --database flowspec --multiquery < database/clickhouse/schema.sql
clickhouse-client --password 'SUA_SENHA_CH' --database flowspec --multiquery < database/clickhouse/seed.sql
# banco de autenticação (cria o usuário admin padrão)
mysql -u root -p'SUA_SENHA_MYSQL' < database/mysql/auth_schema.sql
7.3 — Gere o ambiente do dashboard (cria um segredo de autenticação único desta instalação):
MYSQL_USER=root MYSQL_PASSWORD='SUA_SENHA_MYSQL' ./scripts/setup-env.sh
✅ Gerado: frontend/.env.production ... MySQL: conexão + tabela 'users' OK ✓
7.4 — (Recomendado) Importe os dados públicos de ASN — habilitam as telas de Peering, CDN e Análise de AS:
CH_PASS='SUA_SENHA_CH' ./scripts/import-asn-names.sh http://127.0.0.1:8123
CH_PASS='SUA_SENHA_CH' ./scripts/import-ip2asn.sh http://127.0.0.1:8123
CH_PASS='SUA_SENHA_CH' ./scripts/seed-cdn-providers.sh http://127.0.0.1:8123
O sistema roda como dois serviços supervisionados — se algum processo cair, o systemd reinicia sozinho:
cd /opt/flowspec-analyzer
# dono correto ANTES de iniciar (os serviços rodam como www-data)
chown -R www-data:www-data /opt/flowspec-analyzer
cp scripts/systemd/flowspec-core.service \
scripts/systemd/flowspec-frontend.service \
scripts/systemd/flowspec-analyzer.target /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now flowspec-core flowspec-frontend flowspec-analyzer.target
systemctl status flowspec-core flowspec-frontend
● flowspec-core.service — Active: active (running)
● flowspec-frontend.service — Active: active (running)
systemctl restart flowspec-analyzer.target · só o dashboard → systemctl restart flowspec-frontend · logs → journalctl -u flowspec-core -f9.1 — Libere apenas o necessário (exemplo com ufw):
apt install -y ufw
ufw allow ssh
ufw allow 3099/tcp # dashboard
ufw allow 2055/udp # NetFlow
ufw allow 6343/udp # sFlow
ufw enable
ufw status
9.2 — Acesse o dashboard e faça o primeiro login:
9.3 — Ative a licença: na primeira tela será solicitada a chave de licença fornecida na contratação. Informe a chave e reinicie o core para concluir a ativação:
systemctl restart flowspec-core
9.4 — Aponte seus roteadores para o coletor: configure a exportação de NetFlow v9/IPFIX (porta 2055/UDP) ou sFlow (porta 6343/UDP) para o IP do servidor, e cadastre cada equipamento em Configurações → Dispositivos. Em 1–2 minutos os flows começam a aparecer no dashboard.
O dashboard já funciona por http://IP:3099. Se quiser um endereço amigável com certificado (ex.: flowspec.seudominio.com.br), coloque o Apache como proxy reverso na frente:
10.1 — Instale o Apache e o certbot, e ative os módulos:
apt install -y apache2 certbot python3-certbot-apache
a2enmod proxy proxy_http proxy_wstunnel ssl headers rewrite
systemctl restart apache2
10.2 — Crie o VirtualHost (troque o domínio pelo seu; o DNS já deve apontar para o servidor):
<VirtualHost *:80>
ServerName flowspec.seudominio.com.br
ProxyPreserveHost On
ProxyRequests Off
# WebSocket (atualizações em tempo real do dashboard)
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:3099/$1 [P,L]
ProxyPass / http://127.0.0.1:3099/
ProxyPassReverse / http://127.0.0.1:3099/
# IMPORTANTE: nunca defina X-Forwarded-Host manualmente — o Apache já
# envia esse header sozinho, e duplicá-lo quebra o login (Invalid URL).
RequestHeader unset X-Forwarded-Host
# Esquema dinâmico (http/https) — continua correto quando o certbot
# clonar este vhost para a porta 443:
RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
ErrorLog ${APACHE_LOG_DIR}/flowspec-error.log
CustomLog ${APACHE_LOG_DIR}/flowspec-access.log combined
</VirtualHost>
10.3 — Ative o site e emita o certificado (o certbot cria o vhost HTTPS e o redirect automaticamente):
a2ensite flowspec
apachectl configtest && systemctl reload apache2
certbot --apache -d flowspec.seudominio.com.br
ufw allow 80/tcp
ufw allow 443/tcp
ufw deny 3099/tcp # opcional: força o acesso só pelo domínio/HTTPS
Valide (deve responder 307 redirecionando para o login, mantendo o seu domínio):
curl -sk -o /dev/null -w "%{http_code} -> %{redirect_url}\n" https://flowspec.seudominio.com.br/
307 -> https://flowspec.seudominio.com.br/login
A atualização é um comando — o updater valida a integridade, preserva suas configurações, troca a versão e testa a saúde do sistema (downtime típico: menos de 1 minuto; os dados históricos não são tocados):
cd /opt
curl -fLO https://www.managerpro.dev.br/flowspec/flowspec-analyzer-stable.tar.gz
curl -fLO https://www.managerpro.dev.br/flowspec/flowspec-analyzer-stable.tar.gz.sha256
sha256sum -c flowspec-analyzer-stable.tar.gz.sha256
/opt/flowspec-analyzer/scripts/update.sh /opt/flowspec-analyzer-stable.tar.gz
Se algo não sair como esperado, voltar para a versão anterior também é um comando:
/opt/flowspec-analyzer/scripts/update.sh --rollback
| Sintoma | Solução |
|---|---|
| Dashboard não abre / serviço não sobe | journalctl -u flowspec-frontend -n 50 — causa mais comum: permissões. Rode chown -R www-data:www-data /opt/flowspec-analyzer e systemctl restart flowspec-analyzer.target |
| Login dá error=Configuration | O dashboard não conectou no MariaDB. Confira usuário/senha e rode novamente: MYSQL_USER=root MYSQL_PASSWORD='...' ./scripts/setup-env.sh --force |
| Nenhum flow aparece | Verifique se os pacotes chegam: tcpdump -i any -n udp port 2055. Se não chegam, o problema é exportação do roteador ou firewall; se chegam, confira journalctl -u flowspec-core -f |
| ClickHouse não responde | systemctl status clickhouse-server e curl http://localhost:8123/ping. Senha errada no config.toml é a causa mais comum |
| Acesso via domínio redireciona errado | Atrás de proxy reverso, preserve o Host: no Apache use ProxyPreserveHost On e não defina X-Forwarded-Host manualmente; no nginx use proxy_set_header Host $host; |
Conheça os planos ou agende uma demonstração com seus próprios dados de rede.