Frage Was ist die beste Methode um einen OpenVPN Server zu überwachen?


Ich habe einen OpenVPN-Server-Computer, der sich in einem isolierten Netzwerk befindet, eine NAT-Regel in der Firewall des Unternehmens leitet den gesamten Verkehr auf Port 1194 (tcp) von der öffentlichen IP-Adresse zur internen Adresse des OpenVPN-Servers um. Ich möchte einen Nagios-Check erstellen, der die Verfügbarkeit des OpenVPN-Servers überwacht. Was wäre die beste Methode, um es zu überwachen, wenn man bedenkt, dass der Check von der Welt (einem Nagios-Server) und nicht von innerhalb des Unternehmens ausgeführt wird?


4
2017-12-15 10:11


Ursprung


Definieren Sie, was Sie verifizieren möchten. Was dann zu überwachen ist, sollte offensichtlich sein. - Michael Hampton♦


Antworten:


Ich mache es aus der Ferne, via NAGIOSmit einem lokalen Plugin namens check_openvpn.pl, aufgerufen über nrpe, die wiederum die in OpenVPN integrierte Verwaltungsfunktion verwendet, um über ihren detaillierten Status zu berichten.

Da Sie TCP als VPN-Träger verwenden, könnten Sie eine einfache TCP-Konnektivitätsprüfung an Port 1194 durchführen (wie Dennis in seiner Antwort bemerkt), aber der Vorteil dieses Plugins ist, dass es eine ziemlich strenge Prüfung von OpenVPN durchführt und die CNs meldet derzeit mit dem Server verbunden. Wenn es auf dieser Ebene berichtet, kann ich darauf vertrauen, dass der Server vollständig betriebsbereit ist und der gesamten Welt Dienste anbietet, was mir eine einfache Konnektivitätsprüfung nicht bieten würde.

Das Plugin kam von Diese Seite bei NAGIOS; Die Website des Autors ist anscheinend http://emergeworld.blogspot.com.

Die wichtigsten Details sind: der folgende Eintrag in der Konfiguration des NAGIOS Servers (plus entsprechende Verbindungslogik):

define service{
    use                 myconf-svc
    host_name           openvpn.server.hostname
    service_description openvpn
    check_command       check_nrpe!check_openvpn
    }

Dann das im OpenVPN-Server nrpe.cfg:

command[check_openvpn]=/usr/lib64/nagios/plugins/check_openvpn.pl -H localhost -p 11940 -P XXXXXXX

Dann am Ende der `.conf 'Datei des OpeVPN Servers:

# enable the mgmt interface for monitoring - tom 20120814
management 127.0.0.1 11940 /etc/openvpn/man.pass

Beachten Sie das 11940 den beiden vorherigen Daten gemeinsam; das ist die Portnummer für die Managementschnittstelle. Das Passwort in der nrpe.cfg Eintrag oben (angezeigt als XXXXXXX) sollte auch in der Datei erscheinen /etc/openvpn/man.pass.


7
2017-12-15 10:34



Was ist das Passwort? Ist das das Passwort für einen Überwachungsbenutzer, den ich erstellen muss? - Itai Ganot
Es ist ein gemeinsames Geheimnis, das (a) in der nrpe.cfg Eintrag und (b) in /etc/openvpn/man.pass. Es erscheint nirgendwo sonst, also können Sie wählen, was Sie mögen. Legen Sie den Dateischutz entsprechend fest. - MadHatter
Wenn ich renne check_openvpn.pl lokal oder vom Monitoring-Server bekomme ich die richtigen Ergebnisse (OpenVPN OK: user1 user2), aber Nagios zeigt dies: (Keine Ausgabe vom Plugin zurückgegeben), hast du eine Idee, warum könnte es passieren? - Itai Ganot
Es gibt eine Reihe von Gründen, warum ein Plugin, das lokal ausgeführt wird, unter NRPE fehlschlägt. lokale Firewall auf dem Client, NRPE nicht richtig eingerichtet (es gibt eine Liste von Adressen, mit denen in der Konfigurationsdatei gesprochen wird), SSL- oder Nicht-SSL-Probleme, Berechtigungsproblem (Sie führen den lokalen Test als Root aus, aber NRPE läuft ohne Privileg), und so weiter. Es gibt Antworten auf SF, die sich bereits mit dem Debuggen beschäftigen, also fange mit denen an und schreibe eine neue Frage, wenn du keine findest, die für dich funktioniert. - MadHatter
Vielen Dank @MadHatter, alles funktioniert jetzt perfekt. - Itai Ganot


Für OpenVPN überwache ich einfach, ob es auf dem üblichen Port hört:

define command {
        command_name    check_openvpn
        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 1194
}

3
2017-12-15 10:33