Frage Wie man verbundene Benutzer ansieht, um vpn Server zu öffnen?


Ich entwickle eine Website zur Verwaltung von OpenVPN-Nutzern mit Django-Framework. Aber ich muss wissen, gibt es eine Möglichkeit, aktive Benutzer von OpenVPN zu extrahieren? Mein Server läuft Ubuntu 12.04.


47
2018-02-02 00:30


Ursprung




Antworten:


Es sollte ein Statusprotokoll geben, das du sehen kannst, um es dir zu zeigen, meins ist zum Beispiel:

cat /etc/openvpn/openvpn-status.log

BEARBEITEN:

Als Alternative das Flag hinzufügen --management IP port [pw-file] oder die selbe Direktive hinzufügen server.conf, zum Beispiel:

management localhost 7505

Auf diese Weise können Sie sich an diesen Port telnet und Ihnen eine Liste der auszuführenden Befehle anbieten:

telnet localhost 7505

help


68
2018-02-02 03:05



Danke, aber gibt es einen anderen Weg, nicht auf Dateiänderungen zu achten? Zum Beispiel eine Bibliothek, die verbundene Benutzer auflistet? - Hamid FzM
@HamidFzM nicht sicher über eine Bibliothek, können Sie die Verwaltungsschnittstelle verwenden, die ich als Bearbeitung hinzugefügt habe; Bitte verwenden Sie keine IP-Adresse außer localhost, da dies Ihre Sicherheit beeinträchtigen würde - c4urself
@ c4urself, meine Ausgabe für die .log ist: bit.ly/1ORnsYp Wo kann ich die verbundenen Benutzer sehen? Ist es möglich, die ihnen über diese .log-Datei zugewiesenen ips zu sehen? - Maxim V. Pavlov
@ MaximV.Pavlov sieht aus wie niemand in Ihrem Fall verbunden ist. Ja, IP-Adressen werden angezeigt. - c4urself
/etc/openvpn/openvpn-status.log Bei Debian funktionierte das nicht, stattdessen änderte es sich nie /var/run/openvpn/server.status hat perfekt funktioniert. - Nelson


Fertigstellen @ sekret Antworten :

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

Es wird weiterlaufen, es ist kein "normaler" Kill, nur eine Aufforderung, einige Statistiken zu drucken.

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

14
2017-10-14 05:33



Danke für die Verbesserung. Meine Antwort war richtig, aber es fehlt ein Beispiel und eine Erklärung. :) - sekrett


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:Verwaltung localhost 6666, in der Server-Konfigurationsdatei) .

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

  • telnet localhost 6666
  • Status

Dann wirst du viele Protokolle bekommen:

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.


7
2018-05-04 10:24



Dein Statusbefehl hat mir geholfen, thx - Mohammed Noureldin


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.


2
2017-07-06 15:13



Kannst du einen Befehl dafür schreiben? - Shayan_Aryan
@MichaelC hat es geschrieben: killall -USR2 openvpn. Dann beobachte die Protokolle. Es könnte sein /var/log/syslog oder /var/log/messages abhängig von der Distribution. - sekrett
aber es tötet openvpn nicht? - Shayan_Aryan
kill Befehl kann verschiedene Signale senden, USR2 wird nicht töten, es ist nur ein Signal. Sie können hier eine Liste sehen: linux.org/threads/kill-signals-and-commands-revised.11625 oder indem du rennst kill -l. - sekrett
Ich habe es gerade ausprobiert. Es gibt keine Informationen über verbundene Clients - Shayan_Aryan


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

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

Um alle IPs zu sehen, benutzen Sie diese Option. ./sacli VPNStatus


1
2017-08-17 15:11