Estou desenvolvendo um site para gerenciar usuários OpenVPN com framework Django. Mas preciso saber se existe alguma maneira de extrair usuários ativos do OpenVPN? Meu servidor está executando o Ubuntu 12.04.
Estou desenvolvendo um site para gerenciar usuários OpenVPN com framework Django. Mas preciso saber se existe alguma maneira de extrair usuários ativos do OpenVPN? Meu servidor está executando o Ubuntu 12.04.
Deve haver um log de status que você pode ver para mostrar a você, o meu é, por exemplo:
cat /etc/openvpn/openvpn-status.log
EDITAR:
Como alternativa, adicionando o sinalizador
--management IP port [pw-file]
ou adicionando essa mesma diretiva ao seuserver.conf
, por exemplo:management localhost 7505
Isso permitiria que você fizesse telnet para essa porta e oferecesse uma lista de comandos a serem executados:
telnet localhost 7505
help
Para completar a resposta do @sekrett :
Ele continuará funcionando, não é um kill "regular", apenas um pedido para imprimir algumas estatísticas.
As estatísticas exibidas são muito legíveis. Saída de amostra:
Eu mesmo tive a mesma necessidade e a solução mais fácil que descobri foi usar o telnet mencionado para conectar-se à interface de gerenciamento (você terá que adicionar: management localhost 6666 , no arquivo de configuração do servidor).
Para obter o número exato de cliente, você pode fazer:
Então você terá muitos logs:
No meu caso, como tenho um número muito grande de clientes, usar o arquivo de log definitivamente não é muito prático.
Eu gerencio os servidores OpenVPN da nossa empresa e a maneira como vejo as conexões ativas é assim,
adicione a /etc/openvpn/server.conf
reinicie o servidor openvpn
adicione um pacote OpenVPN Monitor Python - isso será executado por meio de um servidor Web Gunicorn e mostrará conexões ativas,
crie um env virtual (não obrigatório, mas uma boa prática com pacotes py)
instale os pacotes necessários
adicionar um arquivo de configuração do Monitor
inicie o servidor web que mostrará as conexões ativas,
Para parar de monitorar
para ver as conexões ativas, acesse o IP público do seu servidor VPN
certifique-se de configurar o firewall adequado para a porta 80, lista branca apenas IPs de entrada confiáveis
Você também pode enviar o sinal usr2 para o processo openvpn para fazê-lo gravar informações estatísticas no syslog. Isso é seguro, você não precisa reiniciar caso não tenha habilitado a interface de gerenciamento antes.
Basta usar sacli com o seguinte comando. Isso listará os clientes VPN conectados.
Para ver todos os IPs use esta opção. ./sacli VPNStatus
Eu fiz um pequeno script que pode fazer uma verificação única ou ser configurado para manter o monitoramento com intervalos especificados.
Eu acho que isso é melhor do que monitorar o /etc/openvpn/openvpn-status.log, pois isso é muito lento para atualizar. Talvez haja uma maneira de ajustar os intervalls em algumas configurações, MAS, às vezes, só preciso monitorar as conexões vpn. Não 24/7. Também é um log bastante confuso.
Este script está no servidor OpenVPN. Testado apenas no Ubuntu 20.04
Uma vez executado, basta fazer:
Para continuar monitorando com um intervalo de 20 segundos:
Salve isso no arquivo .sh (exemplo forno-activity.sh):
Certifique-se de alterar a sub-rede VPN para corresponder à sua.
Sem dúvida, há espaço para melhorias, mas não sou um gênio do script. Eu precisava ver quando os colegas estavam usando a VPN para que eu pudesse ver se era seguro reiniciar o servidor. E se sim, eu poderia ver quem estava online e ligar para eles para perguntar se podia reiniciar sem interromper o trabalho.
Ei @perfecto25 Eu segui seus passos para hospedar o monitor OpenVPN, está funcionando, mas agora estou curioso para adicionar mais uma camada de segurança em cima dele.
Existe uma maneira de adicionar autenticação de usuário à ferramenta de monitoramento OpenVPN hospedada no gunicorn, pois contém informações de usuários vulneráveis?