2018-08-03 13:08:18 +02:00
|
|
|
|
#!/bin/sh
|
2011-03-20 19:14:10 +01:00
|
|
|
|
#
|
|
|
|
|
# Made by Stefan B<>hler, Switzerland
|
|
|
|
|
# Monitor blocked Mails during Postfix RBL Scan, included Spamhaus, Spamcop, Manitu, MSRBL, NJABL
|
|
|
|
|
|
|
|
|
|
|
2018-08-03 13:00:34 +02:00
|
|
|
|
# Allow user to specify logfile through env.logfile
|
|
|
|
|
LOGFILE=${logfile:-/var/log/mail.log}
|
2018-08-03 13:08:18 +02:00
|
|
|
|
DATE=$(date '+%b %e %H')
|
2011-03-20 19:14:10 +01:00
|
|
|
|
|
2018-08-03 13:05:16 +02:00
|
|
|
|
|
|
|
|
|
get_blocked_by_domain_count() {
|
|
|
|
|
local escaped_domain
|
|
|
|
|
# escape dots - for a proper regular expression
|
|
|
|
|
escaped_domain=$(echo "$1" | sed 's/\./\\./g')
|
|
|
|
|
grep -c "$DATE.*blocked using [^ ]*${escaped_domain}" "$LOGFILE"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2011-03-20 19:14:10 +01:00
|
|
|
|
if [ "$1" = "autoconf" ]; then
|
2018-08-03 12:59:16 +02:00
|
|
|
|
if [ -r "$LOGFILE" ]; then
|
|
|
|
|
echo yes
|
|
|
|
|
else
|
|
|
|
|
echo "no (log file not found: $LOGFILE)"
|
|
|
|
|
fi
|
|
|
|
|
exit 0
|
2011-03-20 19:14:10 +01:00
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ "$1" = "config" ]; then
|
2018-08-03 13:00:34 +02:00
|
|
|
|
echo 'graph_title RBL Counter'
|
|
|
|
|
echo 'graph_category mail'
|
|
|
|
|
echo 'graph_args --base 1000 -l 0'
|
|
|
|
|
echo 'graph_vlabel block during RBL'
|
|
|
|
|
echo 'spamhaus.label Blocked by Spamhaus.org'
|
|
|
|
|
echo 'spamcop.label Blocked by Spamcop'
|
|
|
|
|
echo 'manitu.label Blocked by manitu.net'
|
|
|
|
|
echo 'msrbl.label Blocked by msrbl.net'
|
|
|
|
|
echo 'njabl.label Blocked by njabl.org'
|
|
|
|
|
exit 0
|
2011-03-20 19:14:10 +01:00
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2018-08-03 13:05:40 +02:00
|
|
|
|
# sbl-xbl.spamhaus.org or zen.spamhaus.org
|
|
|
|
|
printf 'spamhaus.value %s\n' "$(get_blocked_by_domain_count "spamhaus.org")"
|
|
|
|
|
# bl.spamcop.net
|
|
|
|
|
printf 'spamcop.value %s\n' "$(get_blocked_by_domain_count "spamcop.net")"
|
|
|
|
|
# ix.dnsbl.manitu.net
|
|
|
|
|
printf 'manitu.value %s\n' "$(get_blocked_by_domain_count "manitu.net")"
|
|
|
|
|
# combined.rbl.msrbl.net
|
|
|
|
|
printf 'msrbl.value %s\n' "$(get_blocked_by_domain_count "msrbl.net")"
|
|
|
|
|
# combined.njabl.org
|
|
|
|
|
printf 'njabl.value %s\n' "$(get_blocked_by_domain_count "njabl.org")"
|