Antworten:
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 :
killall -USR2 openvpn ; tail -f /var/log/syslog
Es läuft weiter, es ist kein "normaler" Kill, nur eine Aufforderung, einige Statistiken auszudrucken.
Angezeigte 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, 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:
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
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 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.
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
management 127.0.0.1 5555
Starten Sie den OpenVPN-Server neu
systemctl restart openvpn@server.service
Hinzufügen eines OpenVPN Monitor Python-Pakets - dieses wird über einen Gunicorn-Webserver ausgeführt und zeigt aktive Verbindungen an.
mkdir /opt/openvpn-monitor
Erstellen Sie eine virtuelle Umgebung (nicht erforderlich, aber gute Praxis mit Py-Paketen)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
Installieren Sie die erforderlichen Pakete
pip install openvpn-monitor gunicorn
Fügen Sie eine Monitor-Konfigurationsdatei hinzu
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
Starten Sie den Webserver, auf dem aktive Verbindungen angezeigt werden.
gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon
Monitor anhalten
pkill gunicorn
Um aktive Verbindungen anzuzeigen, rufen Sie die öffentliche IP-Adresse Ihres VPN-Servers auf
http://<ip of openvpn server>
Stellen Sie sicher, dass die richtige Firewall für Port 80 konfiguriert ist, und listen Sie nur vertrauenswürdige eingehende IPs auf
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
}
Verwenden Sie diese Option, um alle IP-Adressen anzuzeigen. ./sacli VPNStatus