ModSecurity mit Nagios check_http kombinieren
Nagios checked ja ob mein WebServer läuft. Modsecurity verhindert durch definierbare Regeln das "unerwünschte" Anfragen auf den WebServer durchkommen. Beide Programme kennen sich nicht. Eine der Regeln die man bei ModSecurity standardmässig meistens verwendet ist "Die Anfrage muss sagen welche Dateitypen sie als Antwort erwartet". Das Nagios Plugin check_http macht das aber standardmässig nicht ;-(
Deswegen sagt Modsecurity: "Das darfst du nicht" und Nagios wirft eine Warnung.
Bisher bin ich diesem Problem recht brutal aus dem Weg gegangen in dem ich dem User-Agent check_http relativ freie Rechte gegeben haben. Nach einem Nagios Update musste ich mir das aber wieder ansehen, da sich der User-Agent geändert hatte. (Hintergründe zu User-Agents und Broswer findest du hier)Jetzt wollte ich das Problem "richtig" lösen. Am Ende bin ich hier auf die richtige Spur gekommen. Ich richte das Nagios Plugin einfach so ein das es diesen Anfrage einfach mitschickt. Der Parameter lautet
-k "Accept: text/html"
und in die Nagios Definition von check_http eingebaut
define command{
command_name check_http
command_line /usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -k "Accept: text/html"
}
Dann ist auch wieder Ruhe und die Warnung verschwindet.