NetAlertX: Monitorização de Dispositivos de Rede para PME

O NetAlertX — sucessor do PiAlert — é uma ferramenta de código aberto que detecta automaticamente dispositivos novos na rede local, mantém um inventário actualizado e alerta o administrador sobre acessos não autorizados. Neste artigo explico como instalar com Docker, configurar scans com arp-scan e Pi-hole, activar notificações via Telegram e correio electrónico, e comparar com Uptime Kuma e Netdata para perceber onde se encaixa numa estratégia de segurança de perímetro de PME.

ℹ O NetAlertX detecta automaticamente dispositivos novos na rede em minutos — ideal para segurança de perímetro de PME.

Neste artigo

1. Introdução ao NetAlertX

O NetAlertX é um projecto de código aberto programado pela comunidade, evoluído a partir do PiAlert. Foi desenhado especificamente para responder a uma pergunta simples que toda a PME deveria fazer: que dispositivos estão ligados à minha rede neste momento?

A ferramenta faz scans periódicos à rede local usando arp-scan, consulta a base de dados do Pi-hole para identificar dispositivos por nome DNS, e compara os resultados com um inventário conhecido. Quando um dispositivo desconhecido aparece — um portátil novo, um telemóvel de um visitante, um dispositivo comprometido — o NetAlertX envia um alerta imediato.

Para uma PME com 20 a 50 dispositivos de rede, isto é uma camada de segurança que custa zero euros e ocupa poucos megabytes de RAM. A interface web corre na porta 20211 e oferece um painel com histórico de presença, fabricante (via MAC OUI) e estado online/offline de cada equipamento.

2. Instalação com Docker

O NetAlertX corre em Docker, o que simplifica a instalação em qualquer servidor Linux. O contentor precisa de modo host para enviar pacotes ARP directamente na rede e de privilégios elevados para o arp-scan funcionar.

A instalação não usa o código do GitHub directamente: o NetAlertX distribui-se como imagem de contentor, publicada no registry GitHub Container Registry (ghcr.io/netalertx/netalertx). Na primeira execução, o Docker descarrega a imagem automaticamente do registry — não é preciso clonar nenhum repositório. Instalação rápida com docker run:

# Instalar com Docker (a imagem é descarregada do registry na 1.ª execução)
docker run -d \
  --name netalertx \
  --network host \
  --restart unless-stopped \
  -v ~/netalertx:/data \
  -v /etc/localtime:/etc/localtime:ro \
  --tmpfs /tmp:uid=20211,gid=20211,mode=1700 \
  -e PORT=20211 \
  ghcr.io/netalertx/netalertx:latest

Para produção, um ficheiro docker-compose.yml oferece gestão mais simples e reinício automático:

# docker-compose.yml
services:
  netalertx:
    image: ghcr.io/netalertx/netalertx:latest
    container_name: netalertx
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./netalertx:/data
      - /etc/localtime:/etc/localtime:ro
    environment:
      PORT: 20211

Após iniciar o contentor, a interface web fica disponível em http://servidor:20211. O primeiro scan corre automaticamente em menos de um minuto.

⚠ Configurar intervalo de scan adequado — scans muito frequentes podem sobrecarregar a rede.

3. Configurar Arp-scan e Pi-hole

O NetAlertX suporta múltiplos métodos de descoberta de dispositivos. O principal é o arp-scan, que envia pacotes ARP para todo o segmento de rede e recolhe respostas. O Pi-hole integra como fonte complementar, fornecendo nomes DNS resolvidos para identificar dispositivos por nome de hospedeiro em vez de apenas IP.

A configuração fica no ficheiro /data/config/app.conf dentro do volume /data (na máquina, a pasta que montaste no contentor):

# Configurar scan (sintaxe cron)
# /data/config/app.conf
ARPSCAN_RUN_SCHD=*/1 * * * *
SCAN_SUBNETS=['192.168.1.0/24 --interface=eth0']
PIHOLE_SERVER_IP=192.168.1.1

O parâmetro ARPSCAN_RUN_SCHD define quando corre o scan, com sintaxe cron (no exemplo, */1 * * * * = cada minuto). Para uma rede PME típica, cada 1-2 minutos oferece um bom equilíbrio entre detecção rápida e carga mínima — em redes maiores, alargar o intervalo (ex.: */10 * * * * para cada 10 minutos) e, se aparecerem erros de timeout, aumentar também ARPSCAN_RUN_TIMEOUT. Recomendação da documentação oficial: configurar estas definições pela interface web (que garante o formato do ficheiro), editando o app.conf directamente só quando realmente necessário.

Se já tem um Pi-hole a filtrar DNS na rede, basta indicar o IP do servidor no parâmetro PIHOLE_SERVER_IP. O NetAlertX consulta automaticamente a base de dados de concessões do Pi-hole para resolver nomes.

4. Alertas e Notificações

O NetAlertX envia notificações quando detecta dispositivos novos, dispositivos que ficam offline, ou mudanças de IP. Os canais suportados incluem Telegram, Correio electrónico (via SMTP), Pushover e Webhook genérico.

Para configurar alertas via Telegram, editar o ficheiro de configuração:

# Notificações Telegram
TELEGRAM_BOT_TOKEN=token
TELEGRAM_CHAT_ID=id

Para correio electrónico, o NetAlertX usa SMTP. Os parâmetros ficam no mesmo ficheiro:

Parâmetro Descrição
SMTP_SERVER Endereço do servidor SMTP (ex: smtp.gmail.com)
SMTP_PORT Porta SMTP (465 para SSL, 587 para TLS)
SMTP_USER Utilizador para autenticação
SMTP_PASS Password ou palavra-passe específica da aplicação

As notificações incluem o endereço MAC, fabricante (via base de dados OUI), IP e marca temporal. Isto permite ao administrador decidir rapidamente se o dispositivo é legítimo ou requer investigação.

5. Inventário Automático

Para além de alertar, o NetAlertX mantém um inventário permanente de todos os dispositivos detectados. Cada dispositivo fica registado com:

  • Endereço MAC e fabricante (via consulta OUI)
  • IP actual e histórico de IPs
  • Nome DNS (se disponível via Pi-hole)
  • Estado: online, offline, novo, ignorado
  • Primeira e última vez detectado

O administrador pode classificar manualmente cada dispositivo como conhecido ou ignorado, permitindo filtrar dispositivos legítimos (impressoras, pontos de acesso) e focar nos alertas relevantes. Para um inventário IT mais completo, o NetAlertX complementa-se com ferramentas como o Snipe-IT, que gere aspectos financeiros e de atribuição de equipamentos.

A base de dados SQLite pode ser exportada pelo plugin oficial CSV backup (CSVBCKP), que gera cópias dos dados em CSV para integração com outros sistemas — tornando-o um componente reutilizável numa stack de gestão IT mais ampla.

6. NetAlertX vs Uptime Kuma vs Netdata

Embora as três ferramentas sejam de código aberto e auto-alojado, servem propósitos distintos. O Uptime Kuma monitoriza disponibilidade de serviços externos (HTTP, TCP, DNS), o Netdata faz monitorização de desempenho do servidor em tempo real, e o NetAlertX foca-se em descoberta e inventário de dispositivos de rede.

Ferramenta Foco principal Descoberta de dispositivos Alertas Recursos
NetAlertX Descoberta e inventário de rede Sim (arp-scan automático) Dispositivo novo/offline ~50 MB RAM
Uptime Kuma Disponibilidade de serviços Não (monitor ping/HTTP) Serviço down/latência ~100 MB RAM
Netdata Desempenho do servidor Parcial (via extensões) CPU/RAM/disco/rede ~200 MB RAM

A combinação das três oferece cobertura completa: NetAlertX para quem está na rede, Uptime Kuma para que serviços estão disponíveis, e Netdata para como o servidor está a desempenhar. São complementares, não concorrentes.

7. Erros Comuns e Lista de Verificação

Durante a instalação e configuração do NetAlertX, alguns problemas são recorrentes. A tabela seguinte resume as causas e soluções:

Problema Causa Solução
Scan não detecta dispositivos Contentor sem capacidades de rede Capacidades específicas em vez de –privileged: –cap-add=NET_RAW –cap-add=NET_ADMIN –cap-add=NET_BIND_SERVICE
Nomes DNS em branco Pi-hole não configurada Definir PIHOLE_SERVER_IP
Alertas Telegram não chegam Token ou Chat ID inválidos Verificar com bot Telegram
Falsos positivos frequentes Dispositivos DHCP não classificados Marcar como ignorado na interface
Alto consumo de CPU Intervalo de scan muito curto Alargar ARPSCAN_RUN_SCHD (ex.: */10 * * * *)

Lista de verificação pré-publicação:

  • Contentor NetAlertX corre com --cap-add=NET_RAW --cap-add=NET_ADMIN --cap-add=NET_BIND_SERVICE (menor superfície de ataque que –privileged) e --network host
  • Volume de dados persistido (/data, com as sub-pastas config e db) para sobreviver a reinícios
  • Pi-hole integrado para resolução de nomes DNS
  • Intervalo de scan ajustado à dimensão da rede (60s para PME, 300s para redes maiores)
  • Notificações Telegram e correio electrónico testadas com dispositivo novo real
  • Dispositivos legítimos classificados como conhecidos para reduzir falsos positivos
  • Cópia de segurança da base de dados SQLite configurada

O NetAlertX é uma ferramenta leve que preenche um vazio comum na segurança de PME: saber quem está na rede. Combinado com Uptime Kuma para serviços, Netdata para desempenho e Pi-hole para filtragem DNS, forma uma stack de monitorização auto-alojado completa e sem custos de licenciamento.