#!/bin/sh # POPbeforeETCSERVICE Script. # Version 1.2 # Copyright (c) 2005 Mappi # All rights reserved. # This script is the one to give the access permit in cooperation # with dracd as for service corresponding to TCP Wrapper. # Default setting. # DBPATH= DBPATH=/etc/mail/dracd.db # FILEPATH= FILEPATH=/etc/hosts.allow # FILEPATH= FILEPATH2=/etc/hosts.allow.bak # Temporary file path TMP=/tmp/access-allow TMP2=/tmp/access-allow.bak SCR=/tmp/access-allow.scr # LOGFILE= LOGFILE=/var/log/access-allow.log # TIME= TIME=20 # SERVICE= # Please input service corresponding to TCP Wrapper. SERVICE=in.telnetd # Default setting end. # Environmental investigation if [ ! "(" -s ${DBPATH} ")" ];then echo "${0}:${DBPATH}: No such file or directory" echo "${0}:${DBPATH}: No such file or directory" >> ${LOGFILE} exit 1 fi if [ ! "(" -s ${FILEPATH} ")" ];then echo "${0}:${FILEPATH}: No such file or directory" echo "${0}:${FILEPATH}: No such file or directory" >> ${LOGFILE} exit 1 fi # Start log output echo "`date` access-allow.sh start..." >> ${LOGFILE} # Delete temporary files. if [ ${TMP} ];then rm -f ${TMP} fi # Main processing. while [ "TRUE" ] do COUNT=`db33_dump -p ${DBPATH} | egrep "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | wc -l | sed s/^[[:space:]]*//g` CT=1 until [ "${CT}" -gt "${COUNT}" ] do echo -n "`db33_dump -p ${DBPATH} | egrep '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | sed -n ${CT}p` " >> ${TMP} CT=`expr ${CT} + 1` done if [ "`cat ${TMP}`" != "`cat ${TMP2}`" ];then echo "/access-allow/a\\" > ${SCR} echo -n "${SERVICE} : " >> ${SCR} cat ${TMP} >> ${SCR} cp ${FILEPATH} ${FILEPATH2} sed /${SERVICE}/d ${FILEPATH2} > ${FILEPATH} cp ${FILEPATH} ${FILEPATH2} sed -f ${SCR} ${FILEPATH2} > ${FILEPATH} echo "`date` add `cat ${TMP}`" >> ${LOGFILE} fi mv ${TMP} ${TMP2} sleep ${TIME} done