Portmonitoring mit Icinga
Ein recht interessanter Vortrag zum Thema Security Monitoring auf der Froscon (den ich wirklich empfehlen kann) hat mich dazu motiviert meine etwas verstaubte Nagios/Icinga Installation wieder etwas auf Vordermann zu bringen.
Ein Aspekt war dabei das Überwachen von offenen Ports eines Servers. Natürlich gibt es dafür auch andere Tools aber da ich Icinga eh am Laufen habe kann man das dort auch schön einbinden. Basis war ein Script von hier
Leider prüft diese nur auf “antwortende” Ports und bringt keine Unterscheidung zwischen “filtered” und “open” mit sich. Durch eine kleine Erweiterung (die man mit Sicherheit noch robuster gestalten muss) habe ich einen weiteren Parameter hierfür hinzugefügt. Hier die Datei
So sieht das dann aus
Eingebunden wird die dann z.B. so
define command{
command_name check_nmap
command_line /opt/icinga/check_nmap.sh --nmap /usr/bin/nmap --ip $ARG1$ --ports $ARG2$ --t $ARG3$
}
define service{
use service-level-2
host_name Target Host
normal_check_interval 400
service_description PortsOpen
check_command check_nmap!IPADDRESSE!Erlaubte-Ports-mit-Kommen!open(oder filtered)
}