Como visualizar usuários conectados para abrir o servidor VPN?


59

Estou desenvolvendo um site para gerenciar usuários OpenVPN com o framework Django. Mas preciso saber se existe alguma maneira de extrair usuários ativos do OpenVPN? Meu servidor está executando o Ubuntu 12.04.

Respostas:


84

Deve haver um log de status que você possa ver para mostrar, por exemplo:

cat /etc/openvpn/openvpn-status.log

EDITAR:

Como alternativa, adicionar o sinalizador --management IP port [pw-file]ou a mesma diretiva ao seu server.conf, por exemplo:

management localhost 7505

Isso permitiria telnet para essa porta e ofereceria uma lista de comandos para executar:

telnet localhost 7505

help


11
Obrigado, mas existe alguma outra maneira de não observar as alterações nos arquivos? Por exemplo, uma biblioteca que lista usuários conectados?
Hamid FzM

11
@HamidFzM não tem certeza sobre uma biblioteca, você pode usar a interface de gerenciamento que adicionei como edição; por favor, não use um outro IP do localhost como certamente seria um prejuízo para a sua segurança
c4urself

@ c4urself, minha saída para o .log é: bit.ly/1ORnsYp Onde posso ver os usuários conectados? É possível ver os ips atribuídos a eles através deste .log?
Maxim V. Pavlov

@ MaximV.Pavlov parece que ninguém está conectado no seu caso. Sim, os endereços IP são mostrados.
C4urself 12/08/2015

2
/etc/openvpn/openvpn-status.lognão funcionou para mim no Debian, nunca mudou; em vez disso /var/run/openvpn/server.status, funcionou perfeitamente.
Nelson

20

Para completar a resposta @sekrett :

killall -USR2 openvpn ; tail -f /var/log/syslog

Ele continuará funcionando, não é uma matança "regular", apenas uma solicitação para imprimir algumas estatísticas.

As estatísticas exibidas são muito legíveis. Saída de amostra:

Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016

Obrigado pela melhoria. Minha resposta estava certa, mas falta um exemplo e explicação. :)
sekrett

7

Eu mesmo tenho a mesma necessidade e a solução mais fácil que descobri foi usar o telnet mencionado para conectar-se à interface de gerenciamento (você precisará adicionar: management localhost 6666 , no arquivo de configuração do servidor).

Para obter o número exato de cliente, você pode:

  • telnet localhost 6666
  • status

Então você terá muitos logs:

10.9.10.11,test-docker,52.58.48.98:56859,Wed May  4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May  4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May  4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
  • procurar =>> CLIENTE: ENV, n_clients = 19361

No meu caso, como tenho um número muito grande de clientes, o uso do arquivo de log definitivamente não é muito prático.


seu comando de status ajudou-me, thx
Mohammed Noureldin

4

Você também pode enviar o sinal usr2 para o processo openvpn para fazer com que ele grave informações estatísticas no syslog. Isso é seguro, você não precisa reiniciar caso não tenha ativado a interface de gerenciamento antes.


você pode escrever um comando para isso?
Shayan_Aryan

11
@MichaelC escreveu: killall -USR2 openvpn. Então assista os logs. Pode ser /var/log/syslogou /var/log/messagesdependendo da distribuição.
sekrett

mas não mata o openvpn?
21818 Shayan_Aryan

killcomando pode enviar sinais diferentes, USR2 não mata, é apenas um sinal. Você pode ver uma lista aqui: linux.org/threads/kill-signals-and-commands-revised.11625 ou executando kill -l.
22618 Sekrett

Eu apenas tentei. Ele não fornece a informação sobre clientes conectados, conte #
Shayan_Aryan

4

Eu gerencio os servidores OpenVPN de nossas empresas e a maneira como vejo as conexões ativas é assim,

adicione ao /etc/openvpn/server.conf

management 127.0.0.1 5555

reinicie o servidor openvpn

systemctl restart openvpn@server.service

adicione um pacote Python do OpenVPN Monitor - ele será executado através de um servidor da web Gunicorn e mostrará conexões ativas,

mkdir /opt/openvpn-monitor

criar um ambiente virtual (não é necessário, mas é uma boa prática com pacotes py)

cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate

instalar pacotes necessários

pip install openvpn-monitor gunicorn

adicionar um arquivo de configuração do monitor

vi /opt/openvpn-monitor/openvpn-monitor.conf

[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False

inicie o servidor web que mostrará conexões ativas,

gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon

Para parar o monitor

pkill gunicorn 

para ver as conexões ativas, acesse o IP público do seu servidor VPN

http://<ip of openvpn server>

certifique-se de configurar o firewall adequado para a porta 80, lista de permissões apenas IPs de entrada confiáveis

insira a descrição da imagem aqui


1

Basta usar sacli com o seguinte comando. Isso listará os clientes VPN conectados.

/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}

Para ver todos os IPs, use esta opção. ./sacli VPNStatus

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.