#!/bin/sh # # dnsbl-check-nagios.sh # # (c) 2009 Damon Tajeddini & heise Netze # STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 FOUND_ADRESS=0 DNSBLlist=`grep -v ^# <] [-p]" echo " -H check Host " echo " -p print list of DNSBLs" exit 3 } # Checks the IP with list of DNSBL servers check() { count=0; for i in $DNSBLlist do count=$(($count + 1)) if nslookup $ip_arpa.$i | grep -q "127.0.0." ; then FOUND_ADRESS=$(($FOUND_ADRESS + 1)) echo "DNSBL-Alarm: $ip is listed on $i" fi done if [ $FOUND_ADRESS -ge 1 ] then exit 1 fi echo "OK - $ip not on $count DNSBLs" exit 0 } case $1 in -H) if [ -z "$2" ] then echo "ip address missing" exit fi ip=$2 ip_arpa=`convertIP $ip` check;; -p) for i in $DNSBLlist do echo $i done exit $STATE_WARNING exit;; --help) usage exit;; *) if [ -z "$1" ] then usage fi echo "unknown command: $1" exit;; esac