nsClient++ mit ssl Teil 2/2

Da es mittlerweile schon etwas her ist, dass ich den ersten Teil dieses Posts geschrieben habe, fühlte ich mich diese Woche genötigt die damals angekündigten Informationen heute mal in einen neuen Blogpost zu gießen.
Heute soll es um den eigentliche Abfrage des NSClient gehen.

Zertifikate

Hierzu brauchen wir als erstes einen auf Windows installierten NSClient++. Dieser benötigt einen aktiven nrpe Server und ein paar Zertifikate. Die Zertifikate kann man auf dem klassischen Weg mit openSSL auf der Commandline erstellen oder man vereinfacht sich die Sache und nimmt ein grafisches Tool. Ich habe mich dabei für GnoMint entschieden, da hier die Komplexität so gering ist wie es noch nie vorher gesehen habe. Zusammengefasst muss man 5 Knöpfe drücken und hat zum Schluss zwei CA files, die jeweils ein Zertifikat autorisieren. Diese muss man in in zwei Ordner exportieren und anschließend dem Agent und dem Client unterschieben.
 

Anlegen und zuordnen der Zertifikate + CA

Anlegen und zuordnen der Zertifikate + CA


Man sieht in diesem Screenshot ganz gut dass das CA-file, welches auf dem Server liegen wird das Zertifikat autorisiert welches auf der Client Seite liegen wird und anders herum.

Der Agent

Nachdem NSClient++ auf gewohnte weise installiert wurde muss man jetzt noch ein paar einstellungen anpassen.
(mehr …)

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

nsClient++ mit ssl Teil 1/2

Sicherheit durch Verschlüsselung ist nicht nur auf den meisten Internetseiten und und im Emailverkehr (zumindest vom Client zum Server) mittlerweile Standard. Auch innerhalb von Unternehmen laufen immer mehr Verbindungen über SSL ab.
Im Monitoring sollte Sicherheit eigentlich ganz oben auf der Agenda stehen, jedoch ist gerade beim Windows Monitoring mit check_nrpe und ganz besonders check_nt nicht alles zum besten bestellt. Währen check_nrpe wenigstens eine grundlegende Verschlüsselung bietet sendet check_nt seine Daten in Klartext.
Heute möchte ich euch daher zeigen wie man eine Sichere Verbindung mit nsclient++ herstellt. Hierbei wird nsclient++ auf dem Windows Host als Server/Agent eingesetzt und auf Icinga-Seite als Client.
Zur Verschlüsselung und Authentifizierung wird SSL mit CA und Zertifikaten engesetzt.
Als erstes muss man sich auf Linux Seite nsclient++ kompilieren. Das ist nicht schwer, hält jedoch ein paar Fallstricke bereit. Ich beschreibe den Vorgang hier exemplarisch für ein Debian System,
Zuerst installieren wir die notwendigen Abhängigkeiten.
aptitude install -y git build-essential cmake python libssl-dev libboost-all-dev python-dev libprotobuf-dev protobuf-compiler
# Und zusätzlich
aptitude install libcrypto++-dev libcrypto++9
aptitude install libzmq1 libzmq-dev
aptitude install libtinyxml2-dev libtinyxml2.6.2

Jetzt können wir den Git Snapshot herunterladen. Auf grund eines Problems im aktuellen Source Code greifen die dabei auf den 0.4.1 Branch zurück.
git clone https://github.com/mickem/nscp.git
git checkout 0.4.1
# aktuellen Branch anzeigen:
git branch

Um einem weiteren kleinen Bug zu entgehen muss noch eine Datei im jetzt entstandenen Verzeichnis umbenannt werden.cd nscp/build
mv FindTinyXML2.cmake FindTINYXML2.cmake
Es ist tatsächlich wahr. Linux ist case-sensitive. Weil in dem libtinyxml2 Paket die Datei tinyxml2.cpp fehlt besorgen wir uns schnell eine neue und kopieren sie ins richtige Verzeichnis. Bei der Gelegenheit nehmen auch gleich noch eine passende tinyxml2.h mit.
wget https://raw.github.com/leethomason/tinyxml2/master/tinyxml2.cpp
wget https://raw.github.com/leethomason/tinyxml2/master/tinyxml2.h
mv tinyxml2.cpp /usr/include/
mv tinyxml2.h /usr/include/

Nach diesen ganzen Vorarbeiten kann es jetzt an das eigentliche kompilieren gehen. Zuerst erstellen wir ein neues Verzeichnis und wechseln hinein. Das ganze sollte folgendermaßen aussehen.
mkdir build
tree -L 1
.
├── build     # build verzeichnis
└── nscp      # git snapshot
cd build

Hier wird jetzt konfiguriert und anschließend kompiliert.
cmake ../nscp
make
# and check it
make test

Damit ist der Client fertig, jetzt ist der Windows Agent an der Reihe. Hier muss nichts kompiliert werden. Benutze einfach das fertige zip oder msi Paket von nsclient.org und installiere es.
Im nächsten Teil der Serie wird nsclient++ konfiguriert um SSL Verschlüsselung und Authentifizierung zu benutzen. Außerdem werde ich ein paar Überwachungsbeispiele angeben.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.