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

59

Je développe un site Web pour gérer les utilisateurs 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 exécute Ubuntu 12.04.

Hamid FzM
la source

Réponses:

84

Il devrait y avoir un journal de statut que vous pouvez consulter pour vous montrer, le mien est, par exemple:

cat /etc/openvpn/openvpn-status.log

MODIFIER:

En guise d'alternative, ajouter l'indicateur --management IP port [pw-file]ou ajouter la même directive à votre server.conf, par exemple:

management localhost 7505

Cela vous permettrait d’effectuer une connexion telnet sur ce port et de vous proposer une liste de commandes à exécuter:

telnet localhost 7505

help

nous-même
la source
1
Merci, mais existe-t-il un autre moyen de ne pas surveiller les modifications de fichiers? Par exemple une bibliothèque qui répertorie les utilisateurs connectés?
Hamid FzM
1
@HamidFzM pas sûr d'une bibliothèque, vous pouvez utiliser l'interface de gestion que j'ai ajoutée en tant que modification; veuillez ne pas utiliser d'adresse IP autre que localhost, car cela nuirait sûrement à votre sécurité
c4urself
@ c4urself, ma sortie pour le .log est: bit.ly/1ORnsYp Où puis-je voir les utilisateurs connectés? Est-il possible de voir les ips qui leur sont affectés via ce fichier .log?
Maxim V. Pavlov
@ MaximV.Pavlov semble que personne n'est connecté dans votre cas. Oui, les adresses IP sont affichées.
C4urself
2
/etc/openvpn/openvpn-status.logcela n’a pas fonctionné pour moi sur Debian, cela n’a jamais changé, mais /var/run/openvpn/server.statusa parfaitement fonctionné.
Nelson
20

Pour compléter la réponse @sekrett :

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

Il continuera à fonctionner, ce n'est pas un kill "normal", mais une simple demande d'imprimer des 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
MichaelC
la source
Merci pour l'amélioration. Ma réponse était juste mais il manque un exemple et une explication. :)
sekrett
7

J'ai eu le même besoin moi-même et la solution la plus simple que j'ai découverte consistait à utiliser 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 que vous pouvez faire:

  • telnet localhost 6666
  • statut

Ensuite, vous aurez 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, comme je possède un très grand nombre de clients, l’utilisation du fichier journal n’est certainement pas très pratique.

Florent
la source
votre commande de statut m'a aidé, thx
Mohammed Noureldin
4

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

Sekrett
la source
pouvez-vous écrire une commande pour cela?
Shayan_Aryan
1
@MichaelC a écrit: killall -USR2 openvpn. Ensuite, regardez les journaux. Cela peut être /var/log/syslogou /var/log/messagesselon la distribution.
Sékrett le
mais cela ne tue pas openvpn?
Shayan_Aryan
killcommande peut envoyer des signaux différents, USR2 ne tuera pas, il s'agit simplement d'un signal. Vous pouvez voir une liste ici: linux.org/threads/kill-signals-and-commands-revised.11625 ou en cours d'exécution kill -l.
Sékrett le
Je viens d'essayer. Il ne donne pas les informations sur le nombre de clients connectés
Shayan_Aryan
4

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 package OpenVPN Monitor Python - il s'exécutera via un serveur Web Gunicorn et affichera les connexions actives,

mkdir /opt/openvpn-monitor

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

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

installer les paquets requis

pip install openvpn-monitor gunicorn

ajouter un fichier de configuration du moniteur

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, allez à 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 adresses IP entrantes approuvées

entrez la description de l'image ici

perfecto25
la source
1

Il suffit d'utiliser sacli avec la commande suivante. Ceci listera 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

BouncingSoles
la source