Hi,
wo finde ich das Status File von openvpn Dienst? Der Webdienst muss hier ja auch ran kommen, hab es leider nicht gefunden. Hab das Thema, das einige VPN Clients nicht auf Ping antworten, ich jedoch trotzdem gern die Verbindungen im Monitoring haben möchte, daher die Idee.
Gruß
Chris
Noch ein wenig geschaut und folgendes File gefunden:
/usr/local/www/status_openvpn.php
bei mir ist es somit:
echo "status 2" | socat UNIX-CONNECT:/var/etc/openvpn/server1.sock -
die Sockets bekommt ihr hiermit raus:
cat /var/etc/openvpn/*.conf | grep management
um es später ins Monitoring zu bekommen:
https://github.com/opnsense/plugins/issues/2713
Hi,
ich habe es mit Check_mk Nun doch gebaut, nach dem das Feedback ein bissel ernüchtern war, was die Integration in Opnsense angeht.
Ergebnis:
(https://i.ibb.co/8xNXbct/vpn.png)
Es sind aber an Checks dem ganzen keine grenzen gesetzt.
Auf Check_MK Instanz:1.SSH Key erstellen "ssh-keygen -t rsa" und den Key hinterlegen unter CheckMK instanz /instanz/ssh
Unter Opnsense
- 1.Benutzer für Monitoring erstellen und SSH Pub Key hinterlegen
- 2.eine Gruppe erstellen für den SSH Zugriff und den Root Benutzer sowie den Monitoring Nutzer hinzufügen.
- 3.Unter System Einstellungen ->Verwaltung SSH Konfigurieren und Anmeldegruppe auf die SSH Gruppe ändern
Auf Opnsense als ROOT SSH:
- Installieren von benötigten tools: 'pkg install libstatgrab bash wget'
Berechtigungen erweitern auf die Sockets von openvpn, dabei wird jeden Benutzer aber Änderungsrechte auf die Filestruktur von Openvpn Konfiguration gegeben '/bin/chmod +rwx /var/etc/openvpn ; /bin/chmod -R 777 /var/log/openvpn ;/bin/chmod -R +rx /var/etc/openvpn-csc';chown -R cmkfirewall /usr/local/lib/check_mk_agent
Auf Check_mk Instanz:
- Skript erstellen, was den CheckMK Agent bei Bedarf bereitstellt und anschließend aufruft:
####cmk-firewall.sh####
if [ ! -f '/home/cmkfirewall/bin/check_mk_agent.freebsd' ]; then echo "rm -r ~/bin ; mkdir ~/bin ; wget -P ~/bin https://raw.githubusercontent.com/tribe29/checkmk/master/agents/check_mk_agent.freebsd ; chmod +x ~/bin/check_mk_agent.freebsd; mkdir -p /usr/local/lib/check_mk_agent/plugins ;mkdir -p /usr/local/lib/check_mk_agent/local ;" >~/cmk.sh && sh ~/cmk.sh ; fi;
#### openvpn status opnsense
#!/bin/bash
rm /var/log/openvpn/openvpn-status.log
for i in $(ls /var/etc/openvpn/*.sock); do
echo "status" | socat UNIX-CONNECT:${i} - >>/var/log/openvpn/openvpn-status.log 2> /dev/null
#echo "$i";
done;
###
~/bin/check_mk_agent.freebsd
echo ""
#####cmk-firewall.sh End####
Testaufruf:
ssh -i $OMD_ROOT/ssh/firewall.id -T cmkfirewall@172.16.222.224 'sh -s' <$OMD_ROOT/ssh/cmk-firewall.sh
der Instanz die Berechtigungen auf die Files geben: chown -R instanz $OMD_ROOT/ssh
damit wir ein Script haben, welches LocalChecks Synct und gleichzeitig die Abfrage machen, erstellt man ein Bash Script:
####cmk_ssh.sh######
while [[ $# > 0 ]]
do
case "$1" in
-a|--sshkey)
sshkey="$2"
shift
;;
-b|--sshuser)
sshuser="$2"
shift
;;
-s|--sshscript)
sshscript="$2"
shift
;;
-h|--host)
host="$2"
shift
;;
--help|*)
echo "$1 Usage:"
echo " --valueA \"value\""
echo " --valueB \"value\""
echo " --help"
exit 1
;;
esac
shift
done
ssh -i ${sshkey} -T $sshuser@$host 'sh -s' <$sshscript
scp -i ${sshkey} $OMD_ROOT/ssh/localchecks/* $sshuser@$host:/usr/local/lib/check_mk_agent/local 2> /dev/null
echo ""
######
mit dem instanz nutzer einmal zum Ziel ssh aufbauen, damit der Hostkey abgelegt wird.
In CheckMK entsprechend: https://docs.checkmk.com/latest/de/agent_linux.html SSH Part arbeiten
1: Setup->Agents->Other integrations ->Individual program call instead of agent access:
SkriptVariante inkl. Localchecks Sync: bash $OMD_ROOT/ssh/cmk_ssh.sh --sshkey $OMD_ROOT/ssh/firewall.id --sshuser 'cmkfirewall' --host $HOSTADDRESS$ --sshscript $OMD_ROOT/ssh/cmk-firewall.sh
Nur SSH: ssh -i $OMD_ROOT/ssh/firewall.id -T cmkfirewall@$HOSTADDRESS$ 'sh -s' <$OMD_ROOT/ssh/cmk-firewall.sh
(https://i.ibb.co/9rgVCb1/ssh-agent-conf.png)
Testen und glücklich sein. OpenVPN Status ist damit drin und für meine Historie von Openvpn habe ich noch folgenden Check erstellt:
###$OMD_ROOT/ssh/localchecks/openvpn-stat.sh
for i in $(ls /var/etc/openvpn-csc); do
for s in $(ls /var/etc/openvpn-csc/$i); do
cat /var/log/openvpn/openvpn-status.log | grep $s >/dev/null
retVal=$?
if [ $retVal -ne 0 ]; then
echo "0 OpenVPN_$s State=0 OK - OpenVPN Nutzer $s is offline"
else
echo "0 OpenVPN_$s State=1 OK - OpenVPN Nutzer $s is online"
fi
done;
done;
Ergebnis:
(https://i.ibb.co/8xNXbct/vpn.png)
Moin,
falls da noch jemand Interesse hat. Wir haben da so ein bisschen was gebaut.
https://github.com/bashclub/check-opnsense
Hat keine Abhängigkeiten.
Installation
fetch -o /usr/local/etc/rc.syshook.d/start/99-checkmk_agent https://github.com/bashclub/check-opnsense/raw/main/opnsense_checkmk_agent.py
chmod +x /usr/local/etc/rc.syshook.d/start/99-checkmk_agent
/usr/local/etc/rc.syshook.d/start/99-checkmk_agent
Status so fast Beta.
Derzeit implementiert
Firmware alter aktuelle Version/neue Version verfübar
Interfaces (mit Namen aus Description)
Gateways
OpenVPN Server/Client
OpenVPN je Client (kann über Client Specific Overrides konfiguriert werden ... nur common name des Zertifikats oder Username angeben / Description kann benutzt werden um den Servicenamen zu ändern)
Das Script ist derzeit auf --start parameter dauer eingestellt, damit es über den syshook Ordner einfach mitstartet.
Es sind aber eigentlich alle Funktionen die AFAIK für einen Dienst unter OPNsense benötigt werden vorhanden --start,--stop,--status, daher sollte eine Migration zu einem Plugin leicht möglich sein. CC @mimugmail wenn du vielleicht Lust zu helfen hättest.
Das Plug-in würde mich auch sehr interessieren. Gibt es hier schon Neuigkeiten?
Hallo zusammen,
ich bin auch sehr an dem CheckMK plugin für opnsense interessiert und möchte dieses gerne einbinden. Zusätzlich möchte ich dann die lokalen check's per bash/python für checkmk erweitern.
Bspw. wenn updates per opk upgrade anstehen ...
Habe mir dies hier angeschaut: https://docs.checkmk.com/latest/de/agent_freebsd.html
Jedoch habe nun mehrfach gelesen, dass man ssh anstelle von inetd verwenden soll, da bei jedem update/upgrade von opnsense sonst die Konfiguration überschrieben wird ;(
Danke & Gruß,
Du kannst das https://github.com/bashclub/check-opnsense/tree/testing doch nehmen, ja kannst du auch erweitern mit zusätzlichen scripts wie beim original.
Pfad ist ein wenig spackig. /usr/local/local bzw. auch /usr/local/local/300 ablegen wie beim orginal um nur alle 5min abzurufen.
PS: das testing branch ist aus welchen Gründen auch immer noch nicht ins main geschoben. Das ist aber bei vielen Leuten so im Einsatz. 0.99 ist die aktuelle Version
herzlichen Dank schonmal für das Plugin. Hat sich das schon jemand umgeschrieben für die "neuen" OpenVPN Instanzen?