Guia de Instalação

Instalando o FlowSpec Analyzer

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.

Debian 13 (Trixie) x86_64 ~40 minutos acesso root
Requisitos de hardware
RecursoSmall (até ~5 Gbps)Medium (até ~20 Gbps)
CPU8 cores (Xeon / EPYC)16 cores
RAM32 GB DDR464 GB ECC
Disco500 GB NVMe SSD2 TB NVMe
OSDebian 13 server (instalação mínima), x86_64

Redes maiores (40 Gbps+): veja o dimensionamento completo.

Portas utilizadas
PortaProtoServiço
2055UDPColetor NetFlow v5/v9/IPFIX
6343UDPColetor sFlow
3099TCPDashboard Web
8123 / 9000TCPClickHouse (apenas local)
6379TCPRedis (apenas local)
179TCPBGP (GoBGP ↔ roteador)
80 / 443TCPProxy p/ domínio + HTTPS (opcional, passo 10)
Todos os comandos deste guia assumem execução como root. Se estiver usando um usuário comum, prefixe com sudo. Substitua SUA_SENHA_CH e SUA_SENHA_MYSQL por senhas fortes próprias — anote-as, serão usadas em mais de um passo.
1

Preparar o sistema

Atualize o Debian e instale as ferramentas base. O FlowSpec Analyzer é entregue como binário pronto — não é preciso nenhuma ferramenta de compilação:

bash
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.
2

Instalar Node.js 22

O dashboard web roda sobre Node.js (via repositório oficial NodeSource):

bash
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs

node --version   # deve mostrar v22.x
3

Instalar ClickHouse

O ClickHouse é o banco de séries temporais que armazena os flows. Instale pelo repositório oficial:

bash
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
Durante a instalação será solicitada a senha do usuário default. Defina uma senha forte e anote — este guia se refere a ela como SUA_SENHA_CH.
bash
systemctl enable --now clickhouse-server

curl http://localhost:8123/ping
Ok.
4

Instalar MariaDB e Redis

O MariaDB guarda usuários e configurações do dashboard; o Redis distribui alertas em tempo real.

bash
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):

bash
mariadb -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'SUA_SENHA_MYSQL'; FLUSH PRIVILEGES;"
5

Instalar GoBGP mitigação

O GoBGP é o daemon BGP usado para anunciar as regras de mitigação (FlowSpec/RTBH) ao seu roteador:

bash
apt install -y gobgpd
A configuração dos peers BGP (ASN, vizinhos, communities) é feita depois, com o gerador incluído no pacote: ./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.
6

Baixar e extrair o FlowSpec Analyzer

Baixe a versão estável, valide a integridade e extraia em /opt:

bash
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:

bash
mkdir -p /etc/flowspec-analyzer
chown -R www-data:www-data /etc/flowspec-analyzer
Se o sha256sum -c não retornar OK, não prossiga — baixe novamente ou entre em contato com o suporte.
7

Configurar e criar os bancos

7.1 — Edite o config.toml e informe a senha do ClickHouse definida no passo 3:

bash
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):

bash
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):

bash
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:

bash
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
8

Ativar os serviços (systemd)

O sistema roda como dois serviços supervisionados — se algum processo cair, o systemd reinicia sozinho:

bash
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)
Comandos do dia-a-dia: reiniciar tudo → systemctl restart flowspec-analyzer.target · só o dashboard → systemctl restart flowspec-frontend · logs → journalctl -u flowspec-core -f
9

Firewall e primeiro acesso

9.1 — Libere apenas o necessário (exemplo com ufw):

bash
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:

URL: http://IP_DO_SERVIDOR:3099
Usuário: flowspec@managerpro.dev.br
Senha: admin123
No primeiro acesso, troque o e-mail e a senha do administrador em Configurações → Usuários (após trocar o e-mail, deslogue e entre novamente). Em seguida, crie os usuários da sua equipe com os perfis adequados (admin / operator / viewer).

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:

bash
systemctl restart flowspec-core
Sua chave de licença, status da assinatura e faturas ficam no Portal do Cliente: license.managerpro.dev.br — o acesso é criado na contratação e enviado ao seu e-mail.

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.

Instalação concluída! O dashboard já mostra tráfego em tempo real. Explore as Zonas de IP e os Templates de Threshold para calibrar a detecção de DDoS à sua rede.
10

Acesso via domínio + HTTPS opcional

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:

bash
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):

/etc/apache2/sites-available/flowspec.conf
<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):

bash
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):

bash
curl -sk -o /dev/null -w "%{http_code} -> %{redirect_url}\n" https://flowspec.seudominio.com.br/
307 -> https://flowspec.seudominio.com.br/login

Atualizando para novas versões

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):

bash
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:

bash
/opt/flowspec-analyzer/scripts/update.sh --rollback

Problemas comuns

SintomaSoluçã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;
Precisa de ajuda? Fale com o suporte pelo WhatsApp ou e-mail — atendemos durante a janela de instalação para colocar tudo no ar junto com você.

Ainda não tem sua licença?

Conheça os planos ou agende uma demonstração com seus próprios dados de rede.