1#!/bin/sh 2# 3# $FreeBSD$ 4# 5 6# If there is a global system configuration file, suck it in. 7# 8if [ -r /etc/defaults/periodic.conf ] 9then 10 . /etc/defaults/periodic.conf 11 source_periodic_confs 12fi 13 14catmsgs() { 15 find /var/log -name 'messages.*' -mtime -2 | 16 sort -t. -r -n -k 2,2 | 17 while read f 18 do 19 case $f in 20 *.gz) zcat -f $f;; 21 *.bz2) bzcat -f $f;; 22 esac 23 done 24 [ -f /var/log/messages ] && cat /var/log/messages 25} 26 27case "$daily_status_named_enable" in 28 [Yy][Ee][Ss]) 29 echo 30 echo 'Checking for denied zone transfers (AXFR and IXFR):' 31 32 start=`date -v-1d '+%b %e'` 33 rc=$(catmsgs | 34 fgrep -E "^$start.*named\[[[:digit:]]+\]: transfer of .*failed .*: REFUSED" | 35 sed -e "s/.*transfer of \'\(.*\)\/IN\' from \(.*\)#[0-9]*: .*/\1 from \2/" | 36 sort -f | uniq -ic | ( 37 usedns=0 38 case "$daily_status_named_usedns" in 39 '') ;; 40 [yY][eE][sS]) usedns=1 ;; 41 esac 42 43 while read line ;do 44 ipaddr=`echo "$line" | sed -e 's/^.*from //'` 45 if [ $usedns -eq 1 ]; then 46 name=`host "${ipaddr}" 2>/dev/null | \ 47 sed 's/.*domain name pointer \(.*\)\./\1/'` 48 fi 49 if [ -n "${name}" ]; then 50 echo "${line} (${name})" 51 else 52 echo "${line}" 53 fi 54 done ) | \ 55 tee /dev/stderr | wc -l) 56 [ $rc -gt 0 ] && rc=1 57 ;; 58 59 *) rc=0;; 60esac 61 62exit $rc 63