3.3 KiB
3.3 KiB
Instalação do Monitoramento OpenVPN no pfSense
Padrão IT Guys Gold (v3 - Cache System)
Este guia descreve como instalar os scripts de monitoramento OpenVPN no pfSense usando o sistema de CACHE para alta performance e zero timeout no Zabbix.
Arquitetura
- openvpn-collector.sh: Executado via cron a cada minuto. Coleta dados de todos os sockets e salva em JSON.
- openvpn-discovery.sh: Executado pelo Zabbix Agent. Apenas lê o arquivo JSON gerado (instantâneo).
Pré-requisitos
- pfSense 2.x ou superior
- Zabbix Agent instalado (pacote
zabbix-agent7ou similar) - Sockets OpenVPN ativos em
/var/etc/openvpn/server*/sock
Passo 1: Instalar os Scripts
# Via SSH no pfSense:
mkdir -p /opt/zabbix
# Copie os arquivos da pasta files/ para o firewall:
# - openvpn-collector.sh
# - openvpn-discovery.sh
# Defina permissão de execução:
chmod +x /opt/zabbix/openvpn-collector.sh
chmod +x /opt/zabbix/openvpn-discovery.sh
Passo 2: Configurar o Cron Job
O coletor precisa rodar automaticamente.
# Adicione ao /etc/crontab:
echo '* * * * * root /opt/zabbix/openvpn-collector.sh' >> /etc/crontab
# Execute manualmente uma vez para gerar o cache inicial:
/opt/zabbix/openvpn-collector.sh
Passo 3: Configurar Zabbix Agent
# Edite a configuração (caminho pode variar, ex: /usr/local/etc/zabbix7/...)
vi /usr/local/etc/zabbix7/zabbix_agentd.conf
# GARANTA QUE ESTAS LINHAS EXISTAM:
Include=/usr/local/etc/zabbix7/zabbix_agentd.conf.d/*.conf
Timeout=30
UnsafeUserParameters=1
# Adicione usuários zabbix ao grupo wheel (permissão socket):
pw groupmod wheel -m zabbix
Passo 4: Instalar UserParameters
# Copie o userparameter_openvpn.conf para a pasta de include:
# Ex: /usr/local/etc/zabbix7/zabbix_agentd.conf.d/
Reinicie o agente:
service zabbix_agentd restart
Passo 5: Teste
# Teste de leitura instantânea
zabbix_agentd -t openvpn.discovery
# Saída esperada (imediata):
# [t|{"data":[{"{#VPN.USER}":"joao.silva"...}]}]
Passo 6: Instalar Access Tracker (Replay de Acessos) [OPCIONAL]
O Access Tracker correlaciona usuários VPN com a tabela de estados do firewall (pfctl), gerando um log de atividade para replay.
# Copie e dê permissão:
chmod +x /opt/zabbix/openvpn-access-tracker.sh
# Adicione ao cron:
echo '* * * * * root /opt/zabbix/openvpn-access-tracker.sh' >> /etc/crontab
Log gerado: /var/log/openvpn_user_activity.log
Formato: TIMESTAMP|USER|VIRTUAL_IP|DESTINO:PORTA|PROTOCOLO|ESTADO
Novas Métricas Disponíveis (v7)
| Chave | Descrição |
|---|---|
openvpn.user.time_online[USER] |
Tempo online em segundos |
openvpn.user.bytes_recv.cached[USER] |
Bytes recebidos (via cache) |
openvpn.user.bytes_sent.cached[USER] |
Bytes enviados (via cache) |
openvpn.access.destinations[USER] |
Lista de destinos acessados |
openvpn.access.log.tail[N] |
Últimas N linhas do log de replay |
openvpn.access.count[USER] |
Contagem de conexões do usuário |
Retenção de Dados no Zabbix
| Tipo de Dado | Histórico | Tendência |
|---|---|---|
| Logs de Replay (texto) | 30 dias | N/A |
| Métricas (bytes, tempo) | 30 dias | 365 dias |
| Eventos/Alertas | 365 dias | N/A |