De façon générique, on peut dire que le moyen d’intégrer une application tierce avec Nagios est de faire exécuter un send_nsca depuis l’application tierce 1) ou que Nagios puisse poller les résultats produits par celle-ci 2)
Les candidats sont :
Les possibilités d’intégration sont évidentes en suivant cet article du wiki de ossec. La fonction active response couplée avec la commande et le numéro de règle à utiliser permet exactement d’envoyer un message circonstancié au bon service sur le bon hôte de Nagios. Et Nagios 3 est désormais le candidat idéal avec la possibilité de remonter une sortie d’état sur plusieurs lignes. De là à penser que Nagios 3 pourrait être le front-end idéal de OSSEC-HIDS, il n’y a qu’un pas que le manque de temps m’empêche de faire pour le moment.
Pour améliorer la cohérence de la réponse de SEC et diminuer le nombre de false positive sur les tests de service, il est intéressant de passer l’ensemble des règles de supervision des services windows sur le modèle ci-dessous qui permet de vérifier le service qui vient d’être déclaré stoppé avant d’alerter Nagios. C’est en quelque sorte une confirmation d’état avant alerte.
type=SingleWithScript ptype=RegExp pattern=Le service (\S+) est entré dans l'état : arrêté script=C:\WINDOWS\system32\cscript.exe //nologo //T:60 c:\nagios\nsclient\plugins\wmi\check_services_states.vbs -h "127.0.0.1" -inst "$1" desc=Le service $1 est entré dans l'état : arrêté action=C:\nagios\sec\plugins\wynv52_0.cmd "%s"
Dans le cas de l’arrêt d’un service, le script est lancé et si le retour de ce script est 0, alors l’action est exécutée.
Dans notre contexte, quand on teste un service avec check_service_states.vbs, le code retour 0 est envoyé lorsque un service est lancé et le code retour 2 quand un service est arrêté; ce qui correspond au code retour qu’attend Nagios pour le OK (0) et CRITICAL (2). Il faut donc modifier ce script si on veut pouvoir l’utiliser dans le cas d’un test de service arrêté de façon à ce que le code retour soit 0 et non 2 pour que l’alerte soit envoyé.