86 votes

Comment voir les utilisateurs connectés à un serveur vpn ouvert ?

Je développe un site web pour gérer les utilisateurs d'OpenVPN avec le framework Django. Mais j'ai besoin de savoir s'il existe un moyen d'extraire les utilisateurs actifs d'OpenVPN ? Mon serveur fonctionne sous Ubuntu 12.04.

115voto

MobX Points 913

Il devrait y avoir un journal d'état que vous pouvez consulter pour vous montrer, le mien l'est, par exemple :

cat /etc/openvpn/openvpn-status.log

EDIT :

Comme alternative, l'ajout de l'indicateur --management IP port [pw-file] ou en ajoutant cette même directive à votre server.conf par exemple :

management localhost 7505

Cela vous permettra d'accéder par telnet à ce port et vous proposera une liste de commandes à exécuter :

telnet localhost 7505

help

25voto

MichaelC Points 341

Pour compléter @sekrett réponse :

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

Il continuera à fonctionner, ce n'est pas une mise à mort "régulière", juste une demande d'impression de quelques statistiques.

Les statistiques affichées sont très lisibles. Exemple de sortie :

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

16voto

perfecto25 Points 268

Je gère les serveurs OpenVPN de notre entreprise et la façon dont je vois les connexions actives est la suivante,

ajouter à /etc/openvpn/server.conf

management 127.0.0.1 5555

redémarrer le serveur openvpn

systemctl restart openvpn@server.service

ajouter un paquetage Python OpenVPN Monitor - il fonctionnera via un serveur web Gunicorn et montrera les connexions actives,

mkdir /opt/openvpn-monitor

créer un environnement virtuel (non requis mais bonne pratique avec les paquets py)

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

installer les paquets nécessaires

pip install openvpn-monitor gunicorn

ajouter un fichier de configuration 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

démarrer le serveur web qui affichera les connexions actives,

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

Pour arrêter le moniteur

pkill gunicorn 

pour voir les connexions actives, allez sur l'IP publique de votre serveur VPN

http://<ip of openvpn server>

assurez-vous de configurer un pare-feu approprié pour le port 80, en mettant sur une liste blanche uniquement les adresses IP entrantes de confiance.

enter image description here

12voto

Alan Peery Points 1

J'ai eu le même besoin et la solution la plus simple que j'ai trouvée est d'utiliser comme mentionné telnet pour se connecter à l'interface de gestion (vous devrez ajouter : gestion localhost 6666 dans le fichier de configuration du serveur) .

Pour obtenir le nombre exact de clients, vous pouvez faire :

  • telnet localhost 6666
  • statut

Alors vous obtiendrez beaucoup de journaux :

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
  • chercher => >CLIENT:ENV,n_clients=19361

Dans mon cas, comme j'ai un très grand nombre de clients, l'utilisation du fichier journal n'est certainement pas très pratique.

5voto

sekrett Points 171

Vous pouvez également envoyer le signal usr2 au processus openvpn pour qu'il écrive des informations statistiques dans syslog. C'est sûr, vous n'avez pas besoin de redémarrer si vous n'avez pas activé l'interface de gestion avant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X