# 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 ```bash # 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. ```bash # 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 ```bash # 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 ```bash # Copie o userparameter_openvpn.conf para a pasta de include: # Ex: /usr/local/etc/zabbix7/zabbix_agentd.conf.d/ ``` Reinicie o agente: ```bash service zabbix_agentd restart ``` --- ## Passo 5: Teste ```bash # 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. ```bash # 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 |