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
- 2. Instalação com Docker
- 3. Configurar Arp-scan e Pi-hole
- 4. Alertas e Notificações
- 5. Inventário Automático
- 6. NetAlertX vs Uptime Kuma vs Netdata
- 7. Erros Comuns e Lista de Verificação
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-pastasconfigedb) 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.