Über­wa­chung von Zerti­fi­katen: Der SSL-Cert-Monitor von OpenNMS

Die Verschlüs­se­lung von Online-Kommunikation ist in den letzten Jahren zu einem notwen­digen Stan­dard geworden - daher sollte man sich mit den verschie­denen Verschlüs­se­lungs­ver­fahren ausein­an­der­setzen. Eines dieser Verfahren ist die Verschlüs­se­lung durch SSL, mit dem Proto­kolle wie HTTPS, IMAPS und SMTPS umge­setzt werden. Hierfür stützt sich das Verfahren auf Zerti­fi­kate, die zudem dazu genutzt werden können, um Server zu authen­ti­fi­zieren. Da die Zerti­fi­kate als Sicher­heits­merkmal nur eine begrenzte Gültig­keits­dauer haben, muss man diese regel­mäßig erneuern. Wird ein Zerti­fikat nicht recht­zeitig erneuert, kommt es beim Zugriff auf den Server im (für den Admi­nis­trator) besten Fall zur einer Warnung, die igno­riert werden kann.

Unsichere Verbindung
Reak­tion des Firefox - Webbrowser auf das simu­lierte Auslaufen eines SSL - Zertifikates

Andern­falls können die Sicher­heits­richt­li­nien der Clients vorsehen, dass diese eine Verbin­dung zum Server verwei­gern, was die Nutzung bis zur Erneue­rung des Zerti­fi­kats verhin­dert. Aus diesem Grund ist es sehr wichtig, die Zerti­fi­kate recht­zeitig zu erneuern, wobei der gesamte Prozess und der damit erfor­der­liche Vorlauf berück­sich­tigt werden muss.

Der Zerti­fi­kats-Monitor von OpenNMS

OpenNMS bringt einen eigenen Monitor zur Über­wa­chung der Rest­lauf­zeit von SSL-Zerti­fi­katen mit. An dieser Stelle soll am Beispiel eines Moni­tors zur Über­wa­chung der Rest­lauf­zeit eines Zerti­fi­kates für einen HTTPS-Server gezeigt werden, wie dieser auf einer Moni­to­ring­um­ge­bung einge­richtet werden kann. Die Über­wa­chung erfolgt in Form eines Pollers; dementspre­chend findet die Konfi­gu­ra­tion in der Datei poller-configuration.xml im Konfi­gu­ra­ti­ons­ver­zeichnis von OpenNMS statt.
Die Beispielkonfiguration:
<service name=“SSL-Cert-HTTPS-443” interval=“7200000” user-defined=“false” status=“on”>
<para­meter key=“retry” value=“2”/>
<para­meter key=“timeout” value=“3000”/>
<para­meter key=“port” value=“443”/>
<para­meter key=“days” value=“30”/>
</service>
Der Poller kann beliebig benannt werden, die Bezeich­nung sollte aber “spre­chend” sein. Die Benen­nung SSL-Cert-HTTPS-443 ist zwar recht allge­mein, aber nütz­lich - wenn man mit einem Poller alle HTTPS-Zerti­fi­kate über­wa­chen möchte.
Möchte man nur einzelne Dienste über­wa­chen oder soll der Name des Pollers gleich Rück­schlüsse auf das betrof­fene Zerti­fikat erlauben, ist dies auch möglich; aller­dings muss dann für jede Benen­nung ein eigener Poller konfi­gu­riert werden, was sich später auch in der Bindung selbiger an die über­wachten Zerti­fi­kate äußert.
Das Inter­vall, in dem die Gültig­keit der Zerti­fi­kate geprüft wird, ist mit 7.200.000 Milli­se­kunden (entspricht zwei Stunden) ange­geben, was ange­sichts einer Vorwarn­zeit in Tagen ausreicht. Die Zeit, die vor dem Ablauf eines Zerti­fi­kates gewarnt werden soll, wird mit dem Para­meter days fest­ge­legt. Hier sind 30 Tage als Vorwarn­zeit ange­geben, was an die eigenen Bedürf­nisse ange­passt werden kann. Die Angabe des Ports, auf dem der Dienst läuft, ist hier beson­ders wichtig, da er zur Zuord­nung zum verwen­deten Proto­koll (HTTPS, IMAPS, …) dient. Die Pare­meter retry und timeout dienen zur Konfi­gu­ra­tion der Wieder­ho­lungen im Fall ein einer fehl­schla­genden Abfrage und der Zeit, die OpenNMS pro Anfrage auf eine Antwort des über­wachten Dienstes warten soll. Damit wäre die Konfi­gu­ra­tion abge­schlossen - um nun den Dienst über­wa­chen zu können, ist seine Zuord­nung zum Monitor notwendig. Hierfür muss einfach die Zeile
<monitor service=“SSL-Cert-HTTPS-443” class- name=“org.opennms.netmgt.poller.monitors.SSLCertMonitor” />
zum Zuord­nungs­block am Ende der Datei einge­fügt werden. Bei der Verwen­dung von spezi­fi­scheren Pollern muss an dieser Stelle eine Zeile pro Poller einge­fügt werden, wobei der Service­name exakt dem Namen des Pollers entspre­chen muss.

Abschluss der Einrich­tung und Start des Monitors

Nachdem die Datei gespei­chert wurde, ist noch ein Neustart von OpenNMS notwendig, damit der Monitor genutzt werden kann. Bevor OpenNMS neu gestartet wird, sollte der Detektor für den Dienst einge­richtet werden, damit dieser die Dienste beim Neustart gleich erkennt. Am einfachsten kann dies über die Webober­fläche von OpenNMS reali­siert werden. Im Admi­nis­tra­ti­ons­be­reich von OpenNMS (Confi­gure OpenNMS) wird “Manage Provi­sio­ning Requi­si­tions” und dort “Edit Default FS” ausge­wählt. Falls für Requi­si­tions eigene Foreign Source Defi­ni­tions genutzt werden, sollten diese gewählt werden. Nun kann der Detektor wie in der Abbil­dung gezeigt einge­richtet werden. Hierbei ist es eben­falls notwendig, dass der Detektor exakt den glei­chen Namen wie der zuvor defi­nierte Poller hat, da die Zuord­nung über den Namen statt­findet. Anschlie­ßend kann OpenNMS neu gestartet werden.

Einrichtung eines TCP - Detektors für den SSL-Cert-HTTPS-443 - Monitor
Einrich­tung eines TCP - Detek­tors für den SSL-Cert-HTTPS-443 - Monitor

Werden einzelne Poller zur Über­wa­chung der Zerti­fi­kate genutzt, bietet sich die Verwen­dung von Loop­back-Detek­toren an. Alter­nativ können die Dienste - bei Nutzung von Requi­si­tions - an die zu über­wa­chenden Inter­faces gebunden werden. Sollte sich nun ein Zerti­fikat dem Ablauf­datum nähern und die ange­ge­bene Vorwarn­zeit unter­schreiten, so wird von OpenNMS ein Ausfall vom Typ Node­Lost­Ser­vice erzeugt, der wie alle Ausfälle dieser Art auf der Ober­fläche ange­zeigt wird und auf Wunsch auch über verschie­dene Wege (z.B. E-Mail, SMS) kommu­ni­ziert werden kann.
Eine wichtige Einschrän­kung des Moni­tors: In seiner jetzigen Imple­men­tie­rung ist es leider nur möglich, SSL-Zerti­fi­kate direkt abzu­fragen. Ist beispiels­weise für den Zugriff auf IMAPS ein Verbin­dungs­aufbau mittels STARTTLS oder das Senden eines Host-Headers beim Abfragen eines SSL-Zerti­fi­kats von einem Webserver mit virtu­ellen Hosts nötig, so kann der SSL-Cert-Monitor leider nicht einge­setzt werden.
Anmer­kung: Die Hinter­grund­in­for­ma­tionen für diesen Artikel wurden der OpenNMS-Doku­men­ta­tion unter http://docs.opennms.org/opennms/releases/18.0.1/guide-admin/guide-admin.html#_sslcertmonitor entnommen.
 
Autor: Andreas Fuchs

Schreibe einen Kommentar

Cookie Einstellungen
Diese Website verwendet Cookies, um die bestmögliche Funktionalität zu gewährleisten. Mehr lesen

Akzeptiere alle Cookies Speichern