Wer die Aruba CX API unter macmon benutzen will, wird schnell auf den Fehler mit den selbst signierten Zertifikaten der Switche stoßen.
Diese Anleitung erklärt wie man den Fehler in macmon weg bekommt.
Einleitung
Aruba CX Switche nutzen im Standard ein selbst signiertes Zertifikat für das Webinterface und die API. Diesem Zertifikat vertraut macmon bei einem API Call nicht. Die Fehlermeldung in der Methode lautet dann wie folgt:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. (javax.net.ssl.SSLHandshakeException)
Wer nicht eigene Zertifikate für die Switche von einer vertrauenswürdigen CA erstellen möchte, kann je nach Version von macmon auf eine der folgenden Lösungen zurück greifen. Ab der Version 5.35.0 ist eine Konfiguration in der macmon GUI möglich. In den Versionen davor muss eine Anpassung in der Appliance Shell vorgenommen werden.
Nach der Konfiguration kann die Aruba CX API unter macmon trotz selbst signiertem Zertifikat angesprochen werden.
Lösung für macmon bis Version 5.34.x
Anpassungen in der Appliance Shell sind immer mit Sorgfalt vorzunehmen. Fehlkonfigurationen können zu Fehlern führen. Je nach Anpassungen könnte macmon den Support verweigern.
Bei der von mir bereitgestellten Anleitung kommt man auch ohne Linux Kenntnisse aus. Ich empfehle aber die Konfiguration sicherheitshalber von jemandem mit Know-How unter Linux vornehmen zu lassen.
Die folgende Konfiguration ist offiziell von macmon und wird auch supported! Wir übernehmen aber keinerlei Haftung für Schäden die hier entstehen könnten
- Loggt Euch zunächst mit einem SSH Client Eurer Wahl auf die Shell mit SSH ein. Ich empfehle hier einen Client wie zum Beispiel PuTTY. Als Benutzername wählt Ihr "admin" und als Passwort das Euch bekannte.
- Anschießend benötigt Ihr root Rechte. Dazu gebt Ihr
sudo su
ein. Hier werden Ihr wieder nach einem Kennwort gefragt. Dies entspricht auch dem admin Benutzer. - Editiert die Datei user.properties mit dem Befehl
nano /etc/macmon-engine/user.properties
und fügt in dem Editor die Zeileengine.aruba_ignore_ssl_certificate = true
ein. - Mit "STRG-O" und "STRG-X" speichert Ihr die Datei und verlasst den Editor.
- Jetzt müssen noch Besitz und Rechte der Datei angepasst werden (sofern die Datei noch nicht existiert hat). Anschließend ist ein Neustart der macmon Engine nötig. Nach dem nächsten Scanvorgang wir macmon den selbst signierten Zertifikaten vertrauen. Gebt dazu folgende Befehle ein.
Bitte beachtet, dass macmon bei dem Neustart der Engine hier kurzzeitig weder SNMP noch Radius Anfragen bearbeiten kann! Den letzten Befehl also ggf. in einem Wartungsfenster ausführen.chown macmon:www-data /etc/macmon-engine/user.properties
chmod 664 /etc/macmon-engine/user.properties
systemctl restart macmon-engine.service
Danach könnt Ihr die SSH Sitzung schließen. FERTIG 🙂
Lösung für macmon ab Version 5.35.0
Seit der Version 5.35.0 hat macmon endlich die Funktion in die GUI gebracht. Die Konfiguration in der Appliance Shell ist nicht mehr nötig. Wer die Konfiguration zuvor in der Shell gemacht hat, sollte eigentlich keine ToDos haben. Ich habe gehört, dass macmon hier beim Update die Konfiguration konvertiert - gesehen habe ich das aber noch nicht. Manchmal wir wohl nicht konvertiert. Neue Switche müssen zumindest die benutzerdefinierte Variable gesetzt bekommen. Aber ganz von vorne....
Wenn nicht schon vorhanden, muss in macmon eine benutzerdefinierte Eigenschaft "methods_https_certcheck" angelegt werden.
Eigenschaft manuell anlegen
Dazu geht Ihr unter "Einstellungen" -> "Benutzerdefinierte Eigenschaften" -> "Hinzufügen".
Konfiguriert die Eigenschaft dann wie folgt:
- Objekt:
Netzwerkgeräte - Eigenschaftsname:
methods_https_certcheck
- Eigenschaftbeschriftung:
HTTPS Zertifikatsprüfung
(so wird die Eigenschaft angezeigt. Die Beschriftung könnt Ihr nach Eurem Belieben anpassen) - Eigenschaftbeschreibung:
Zertifikat bei HTTPS Verbindungen prüfen.
(Beschreibung der Eigenschaft. Die Beschriftung könnt Ihr nach Eurem Belieben anpassen) - Checkboxen:
nicht setzen - Mögliche Werte:
false
Eigenschaft über API anlegen
Die benutzerdefinierte Eigenschaft kann auch per API angelegt werden. Da macmon diesen Bereich der API selber als noch "unstable" (Stand v5.35.1) bezeichnet, werde ich hier auch keinen Weg erläutern wie die Konfiguration auf diesem Weg eingelesen werden kann.
In meinen Tests war der Import bisher immer erfolgreich. Wer hier ebenfalls die API nutzen will, für den habe ich die nötige JSON Datei als Download hinterlegt. Das WIE müsst Ihr in diesem Fall selber herausfindet. Die Doku von macmon gibt einem aber alles Nötige an die Hand.
Eigenschaft anwenden
Wenn die Eigenschaft angelegt wurde, muss sie nur noch bei den nötigen Switchen gesetzt werden.
Dazu bearbeitet Ihr das Netzwerkgerät. Dort findet Ihr die neue Eigenschaft "HTTPS Zertifikatsprüfung" (oder wie Ihr sie genannt habt).
Setzt die Eigenschaft auf "false" und speichert die Anpassung. Nach dem nächsten Scanvorgang ist der Fehler weg und die API Aufrufe funktionieren.
Bitte beachtet, dass die Synchronisation bei Nutzung der Skalierbarkeit auf die einzelnen Hosts etwas dauern kann. Bis der Erfolg zu sehen ist, können auch mal einige Minuten vergehen.