Hoch zu: Inhalt
Siehe auch:
Integrationsüberblick, Externe Befehle,
Passive Prüfungen
Einführung
Dieses Dokument erklärt, wie einfach in Nagios Alarme für Verbindungsversuche generiert werden können, die von TCP-Wrappern zurückgewiesen werden. Wenn zum Beispiel ein unautorisierter Host versucht, sich mit Ihrem SSH-Server zu verbinden, können Sie in Nagios einen Alarm empfangen, der den Namen des Hosts enthält, der zurückgewiesen wurde. Wenn Sie das auf Ihren Linux/Unix-Boxen installieren, dann werden Sie erstaunt sein, wie viele Port-Scans Sie in Ihrem Netzwerk entdecken.
Diese Anweisungen gehen davon aus, dass
Einen Service definieren
Wenn Sie es nicht bereits getan haben, erstellen Sie eine Host-Definition für den entfernten Host (firestorm).
Als nächstes definieren Sie einen Service in einer Ihrer Objektkonfigurationsdateien für die TCP-Wrapper-Alarme auf dem Host firestorm. Die Service-Definition könnte wie folgt aussehen:
define service{
host_name firestorm
service_description TCP Wrappers
is_volatile 1
active_checks_enabled 0
passive_checks_enabled 1
max_check_attempts 1
check_command check_none
...
}
Es gibt einige wichtige Dinge zu der obigen Service-Definition anzumerken:
TCP-Wrapper konfigurieren
Nun müssen Sie die /etc/hosts.deny-Datei auf firestorm editieren. Damit die TCP-Wrapper einen Alarm an den Überwachungs-Host senden, sobald ein Verbindungsversuch verweigert wird, müssen Sie eine Zeile hinzufügen, die der folgenden ähnlich ist.
ALL: ALL: RFC931: twist (/usr/local/nagios/libexec/eventhandlers/handle_tcp_wrapper %h %d) &;
Diese Zeile nimmt an, dass es ein Script namens handle_tcp_wrapper im /usr/local/nagios/libexec/eventhandlers/-Verzeichnis auf firestorm gibt. Wir werden dieses Script als nächstes schreiben.
Das Script schreiben
Als letztes müssen Sie das handle_tcp_wrapper-Script auf firestorm schreiben, das den Alarm zurück an den Nagios-Server schickt.
Es könnte ungefähr so aussehen:
#!/bin/sh/usr/local/nagios/libexec/eventhandlers/submit_check_result firestorm "TCP Wrappers" 2 "Denied $2-$1" > /dev/null 2> /dev/null
Beachten Sie, dass das handle_tcp_wrapper-Script das submit_check_result-Script aufruft, um den Alarm zurück an den Überwachungs-Host zu schicken. Angenommen, Ihr Nagios-Server heißt monitor, dann könnte das submit check_result-Script wie folgt aussehen:
#!/bin/sh# Arguments # $1 = name of host in service definition # $2 = name/description of service in service definition # $3 = return code # $4 = output /bin/echo -e "$1\t$2\t$3\t$4\n" | /usr/local/nagios/bin/send_nsca monitor -c /usr/local/nagios/etc/send_nsca.cfg
Aufräumen
Sie haben nun alles konfiguriert, was Sie brauchen, so dass Sie nur noch den inetd-Prozess auf firestorm und Nagios auf Ihrem Überwachungs-Server neu starten müssen. Das war's! Wenn die TCP-Wrapper auf firestorm einen Verbindungsversuch verweigern, dann sollten Sie Alarme in Nagios erhalten. Die Plugin-Ausgabe für den Alarm könnte wie folgt aussehen:
Denied sshd2-sdn-ar-002mnminnP321.dialsprint.net