O OpenVPN por si só não fareja nada, mas você pode usar ferramentas de busca padrão.
Se você configurar o OpenVPN para operar em modo de túnel, a conexão entre o host do aplicativo e seu servidor aparecerá em uma interface virtual (com um nome como tun0 em hosts semelhantes a unix) com seu próprio endereço IP em cada lado. Do ponto de vista do aplicativo, seu servidor aparecerá como se estivesse fisicamente na mesma rede do host do aplicativo e agindo como um roteador, portanto, qualquer ferramenta de detecção que funcione na interface de rede normal para obter os dados de que você precisa vai fazer.
Eu faria mais ou menos algo da seguinte forma
- O usuário deve se conectar à VPN (é claro que o OpenVPN precisa ser configurado para rotear todo o tráfego através do servidor VPN).
- No lado do servidor, configure um gancho que registre o horário da conexão, o usuário e o endereço IP que ele está usando
- (opcionalmente) no lado do servidor, configure outro gancho na desconexão que registre o evento.
Enquanto isso, tenha um programa sniffing em execução no dispositivo virtual VPN que capture continuamente um pacote da interface, examine o endereço remoto, combine-o com a lista atual de usuários e salve-o no banco de dados. Provavelmente será uma combinação de uma ferramenta padrão de sniffing para extrair o pacote da interface de rede e uma ferramenta personalizada que analisa o pacote, extrai as informações de que você precisa e as salva em algum lugar.