fragen stichworte

Wie kann man verbundene Benutzer anzeigen, um den VPN-Server zu öffnen?

Ich entwickle eine Website zum Verwalten von OpenVPN-Benutzern mit Django-Framework. Aber ich muss wissen, gibt es eine Möglichkeit, aktive Benutzer aus OpenVPN zu extrahieren? Auf meinem Server läuft Ubuntu 12.04.

antworten

Es sollte ein Statusprotokoll angezeigt werden, das Sie anzeigen können. Meines Beispiel ist

cat/etc/openvpn/openvpn-status.log

BEARBEITEN:

Alternativ können Sie das Flag --management IP port [pw-file] hinzufügen oder dieselbe Anweisung zu Ihrem server.conf hinzufügen, zum Beispiel:

management localhost 7505

Auf diese Weise können Sie mit diesem Port telnet und erhalten eine Liste der auszuführenden Befehle:

telnet localhost 7505

help

Um die Antwort von @sekrett abzuschließen:

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

Es läuft weiter, es ist kein "normaler" Kill, nur eine Aufforderung zum Ausdrucken von Statistiken.

Die angezeigten Statistiken sind sehr gut lesbar. Beispielausgabe:

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

Ich habe das gleiche Bedürfnis selbst und die einfachste Lösung, die ich herausgefunden habe, war Telnet zu verwenden, um eine Verbindung zur Verwaltungsschnittstelle herzustellen (Sie müssen hinzufügen: management localhost 6666, in der Server-Konfigurationsdatei) .

Um die genaue Anzahl der Clients zu erhalten, können Sie Folgendes tun:

  • telnet localhost 6666
  • status

Dann erhalten Sie viele Protokolle:

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
  • suche nach =>> KUNDE: ENV, n_clients = 19361

In meinem Fall, da ich eine sehr große Anzahl von Clients habe, ist die Verwendung der Protokolldatei definitiv nicht sehr praktisch.

Sie können das usr2-Signal auch an den openvpn-Prozess senden, um statistische Daten in syslog zu schreiben. Dies ist sicher, Sie müssen den Computer nicht neu starten, wenn Sie die Verwaltungsschnittstelle zuvor nicht aktiviert haben.

Verwenden Sie einfach sacli mit dem folgenden Befehl. Daraufhin werden die verbundenen VPN-Clients aufgelistet.

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

Um alle IPs anzuzeigen, verwenden Sie diese Option. ./sacli VPNStatus