templates-zabbix-itguys/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md

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

  1. openvpn-collector.sh: Executado via cron a cada minuto. Coleta dados de todos os sockets e salva em JSON.
  2. 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-agent7 ou 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