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

alternat-txt

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)
    }