Respuestas:
Debe haber un registro de estado que pueda ver para mostrarle, el mío es, por ejemplo:
cat /etc/openvpn/openvpn-status.log
EDITAR:
Como alternativa, agregar la bandera --management IP port [pw-file]
o la misma directiva a su server.conf
, por ejemplo:
management localhost 7505
Esto le permitiría hacer telnet a ese puerto y ofrecerle una lista de comandos para ejecutar:
telnet localhost 7505
help
/etc/openvpn/openvpn-status.log
no funcionó para mí en Debian, nunca cambió, en cambio /var/run/openvpn/server.status
funcionó perfectamente.
Para completar la respuesta de @sekrett :
killall -USR2 openvpn ; tail -f /var/log/syslog
Seguirá ejecutándose, no es un asesinato "normal", solo una solicitud para imprimir algunas estadísticas.
Las estadísticas mostradas son muy legibles. Salida de muestra:
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
Tengo la misma necesidad y la solución más fácil que descubrí fue usar el telnet mencionado para conectarme a la interfaz de administración (deberá agregar: localhost 6666 de administración , en el archivo de configuración del servidor).
Para obtener el número exacto de clientes que puede hacer:
Entonces obtendrás muchos registros:
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
En mi caso, dado que tengo una gran cantidad de clientes, usar el archivo de registro definitivamente no es muy práctico.
También puede enviar la señal usr2 al proceso openvpn para que escriba información estadística en syslog. Esto es seguro, no necesita reiniciar en caso de que no haya habilitado la interfaz de administración antes.
killall -USR2 openvpn
. Entonces mire los registros. Puede ser /var/log/syslog
o /var/log/messages
depende de la distribución.
kill
El comando puede enviar diferentes señales, USR2 no matará, es solo una señal. Puede ver una lista aquí: linux.org/threads/kill-signals-and-commands-revised.11625 o ejecutándose kill -l
.
Administro los servidores OpenVPN de nuestra empresa y la forma en que veo las conexiones activas es así,
agregar a /etc/openvpn/server.conf
management 127.0.0.1 5555
reiniciar el servidor openvpn
systemctl restart openvpn@server.service
agregue un paquete OpenVPN Monitor Python: esto se ejecutará a través de un servidor web Gunicorn y mostrará conexiones activas,
mkdir /opt/openvpn-monitor
crear un entorno virtual (no es obligatorio pero es una buena práctica con los paquetes py)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
instalar paquetes requeridos
pip install openvpn-monitor gunicorn
agregar un archivo de configuración de 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 el servidor web que mostrará conexiones activas,
gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon
Para detener el monitor
pkill gunicorn
Para ver las conexiones activas, vaya a la IP pública de su servidor VPN
http://<ip of openvpn server>
asegúrese de configurar el firewall adecuado para el puerto 80, la lista blanca solo incluye IP entrantes de confianza
Simplemente use sacli con el siguiente comando. Esto enumerará los clientes VPN conectados.
/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}
Para ver todas las IP use esta opción. ./sacli VPNStatus