Ich entwickle eine Website zum Verwalten von OpenVPN-Benutzern mit dem Django-Framework. Aber ich muss wissen, ob es eine Möglichkeit gibt, aktive Benutzer aus OpenVPN zu extrahieren. Auf meinem Server läuft Ubuntu 12.04.
59
Es sollte ein Statusprotokoll geben, das Sie einsehen können, um anzuzeigen, dass es sich bei meinem um Folgendes handelt:
cat /etc/openvpn/openvpn-status.log
BEARBEITEN:
Alternativ können Sie das Flag --management IP port [pw-file]
hinzufügen oder dieselbe Direktive zu Ihrem hinzufügen server.conf
, zum Beispiel:
management localhost 7505
Auf diese Weise können Sie eine Telnet-Verbindung zu diesem Port herstellen und eine Liste der auszuführenden Befehle anzeigen:
telnet localhost 7505
help
/etc/openvpn/openvpn-status.log
hat bei mir unter Debian nicht funktioniert, es hat sich nie geändert, stattdessen/var/run/openvpn/server.status
hat es perfekt funktioniert.Um die Antwort von @sekrett zu vervollständigen :
Es läuft weiter, es ist kein "normaler" Kill, nur eine Aufforderung, einige Statistiken auszudrucken.
Angezeigte Statistiken sind sehr gut lesbar. Beispielausgabe:
quelle
Ich habe das gleiche Bedürfnis selbst und die einfachste Lösung, die ich herausgefunden habe, war, wie erwähnt Telnet zu verwenden, um eine Verbindung zur Verwaltungsschnittstelle herzustellen (Sie müssen hinzufügen: management localhost 6666 , in der Serverkonfigurationsdatei).
So ermitteln Sie die genaue Anzahl der Clients:
Dann erhalten Sie viele Protokolle:
In meinem Fall, da ich eine sehr große Anzahl von Clients habe, ist die Verwendung der Protokolldatei definitiv nicht sehr praktisch.
quelle
Sie können auch ein usr2-Signal an den openvpn-Prozess senden, damit er statistische Informationen in das Syslog schreibt. Dies ist sicher, Sie müssen nicht neu starten, wenn Sie die Verwaltungsschnittstelle zuvor nicht aktiviert haben.
quelle
killall -USR2 openvpn
. Dann schau dir die Protokolle an. Es kann/var/log/syslog
oder/var/log/messages
abhängig von der Distribution sein.kill
Befehl kann verschiedene Signale senden, USR2 wird nicht töten, es ist nur ein Signal. Sie können eine Liste hier anzeigen : linux.org/threads/kill-signals-and-commands-revised.11625 oder indem Sie ausführenkill -l
.Ich verwalte die OpenVPN-Server unseres Unternehmens und sehe aktive Verbindungen folgendermaßen:
Fügen Sie /etc/openvpn/server.conf hinzu
Starten Sie den OpenVPN-Server neu
Hinzufügen eines OpenVPN Monitor Python-Pakets - dieses wird über einen Gunicorn-Webserver ausgeführt und zeigt aktive Verbindungen an.
Erstellen Sie eine virtuelle Umgebung (nicht erforderlich, aber gute Praxis mit Py-Paketen)
Installieren Sie die erforderlichen Pakete
Fügen Sie eine Monitor-Konfigurationsdatei hinzu
Starten Sie den Webserver, auf dem aktive Verbindungen angezeigt werden.
Monitor anhalten
Um aktive Verbindungen anzuzeigen, rufen Sie die öffentliche IP-Adresse Ihres VPN-Servers auf
Stellen Sie sicher, dass die richtige Firewall für Port 80 konfiguriert ist, und listen Sie nur vertrauenswürdige eingehende IPs auf
quelle
Verwenden Sie einfach sacli mit dem folgenden Befehl. Dadurch werden die verbundenen VPN-Clients aufgelistet.
Verwenden Sie diese Option, um alle IP-Adressen anzuzeigen. ./sacli VPNStatus
quelle