Respostas:
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
/etc/openvpn/openvpn-status.log
não funcionou para mim no Debian, nunca mudou; em vez disso /var/run/openvpn/server.status
, funcionou perfeitamente.
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
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:
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
No meu caso, como tenho um número muito grande de clientes, o uso do arquivo de log definitivamente não é muito prático.
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.
killall -USR2 openvpn
. Então assista os logs. Pode ser /var/log/syslog
ou /var/log/messages
dependendo da distribuição.
kill
comando 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
.
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
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