web-dev-qa-db-fra.com

Comment afficher les utilisateurs connectés pour ouvrir le serveur VPN?

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

67
hamidfzm

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

cat /etc/openvpn/openvpn-status.log

ÉDITER:

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

management localhost 7505

Cela vous permettrait de telnet sur ce port et vous offrirait une liste de commandes à exécuter:

telnet localhost 7505

help

90
c4urself

Pour terminer @ sekrett réponse:

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

Il continuera de fonctionner, ce n'est pas une mise à mort "régulière", juste une demande d'impression de 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
20
MichaelC

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

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

  • telnet localhost 6666
  • statut

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

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

8
Florent

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

ajouter à /etc/openvpn/server.conf

management 127.0.0.1 5555

redémarrer le serveur openvpn

systemctl restart [email protected]

ajouter un moniteur OpenVPN Python - cela s'exécutera via un serveur Web Gunicorn et affichera les connexions actives,

mkdir /opt/openvpn-monitor

créer un env virtuel (pas obligatoire mais bonne pratique avec les paquets py)

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

installer les packages requis

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émarrez 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, accédez à l'adresse IP publique de votre serveur VPN

http://<ip of openvpn server>

assurez-vous de configurer le pare-feu approprié pour le port 80, liste blanche uniquement les IP entrantes approuvées

enter image description here

6
perfecto25

Vous pouvez également envoyer un signal usr2 au processus openvpn pour lui faire écrire des informations statistiques dans syslog. C'est sûr, vous n'avez pas besoin de redémarrer au cas où vous n'auriez pas activé l'interface de gestion auparavant.

4
sekrett

Utilisez simplement sacli avec la commande suivante. Cela répertoriera les clients VPN connectés.

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

Pour voir toutes les adresses IP, utilisez cette option. ./sacli VPNStatus

1
BouncingSoles