Okay, I found a few things that you need to do to get this working.

I have attached a unified diff of my current scanmails script -- your
mileage may vary.

Here's what you would do to reproduce what I have, from beginning to end.

install 4.04 of mcafee virusscan for linux

./configure --enable-qmail --enable-x-headers=no

Once that's done, BEFORE running make, apply the attached patch to
src/scanmails/scanmails

Good, now make. :)

make a directory called "/tmp/virusmails"
make a directory called "/var/log/scanmails"
touch "/var/log/scanmails/logfile"

mv /var/qmail/bin/qmail-local /var/qmail/bin/qmail-local-real
mv /var/qmail/bin/qmail-remote /var/qmail/bin/qmail-remote-real
ln /var/qmail/bin/qmail-local /usr/sbin/scanmails
ln /var/qmail/bin/qmail-remote /usr/sbin/scanmails

That did it for me.


--- scanmails   Thu Dec  9 20:47:40 1999
+++ /usr/src/amavis-0.2.0-pre6/src/scanmails/scanmails  Thu Dec  9 20:49:46 1999
@@ -2,6 +2,9 @@
 #
 # File: /usr/sbin/scanmails
 #
+# Patched 12/9/1999 by Dustin Miller ([EMAIL PROTECTED])
+# Use at your own risk -- this works on mine, might not on yours.
+#
 # This file is part of AMaViS - A Mail Virus Scanner
 #             Version : 0.2.0-pre6
 #    available at:
@@ -52,7 +55,7 @@
 # Path to NAI AntiVirus (uvscan)               #
 #     (if installed)                           #
 ################################################
-uvscan=/usr/sbin/uvscan
+uvscan=/usr/local/bin/uvscan
 uvscan_version=4
 
 ################################################
@@ -83,7 +86,7 @@
 # "virusmailsdir" indicates the path where      #
 #       infected files are saved in            #
 ################################################
-virusmailsdir=/root/virusmails
+virusmailsdir=/tmp/virusmails
 
 ################################################
 # "tmpdir" indicates where the script operates #
@@ -103,7 +106,8 @@
 # - if "do_log" is set to "yes"                #
 ################################################
 var_log=/var/log
-do_log=no
+systemlogdir=${var_log}/scanmails/
+do_log=yes
 do_syslog=yes
 syslog_level=mail.info
 
@@ -242,11 +246,11 @@
 receiver=`echo ${RECEIPIENT} | ${sed} -e "s/[\\\`\\\\\$\(\)]//g"`
 sender=`echo ${SENDER} | ${sed} -e "s/[\\\`\\\\\$\(\)]//g"`
 
-if [ "$sender" != "$2" -o "$receiver" != "$7" ] ; then
+if [ "$sender" != "${SENDER}" -o "$receiver" != "${RECEIPIENT}" ] ; then
        cat <<EOF | ${mail} -s "AMaViS Intrusion???" ${mailto}
        
 ############################################################
-   $7 or $2 is not a valid Email address
+   ${RECEIPIENT} or ${SENDER} is not a valid Email address
    (changed to $receiver and $sender)!
 ############################################################
 
@@ -644,7 +648,7 @@
       fi       
       scanstatus5=0
     else           ## Version 4.x
-      ${uvscan} --secure -rv --summary ${tmpdir}/unpacked/ >> ${tmpdir}/logfile 2>&1
+      ${uvscan} -rv --summary ${tmpdir}/unpacked/ >> ${tmpdir}/logfile 2>&1
       scanstatus5=$?
       scanstatus1=0
     fi  
@@ -840,9 +844,12 @@
   echo The attached mail has been found to contain a virus >${tmpdir}/virusmail
   echo Originally $0 "$@" >>${tmpdir}/virusmail
   echo The mail has been stored as ${virusmailsdir}/virus$$ >> ${tmpdir}/virusmail
-  mkdir -p ${var_log}/${scanscriptname}
-  cat ${tmpdir}/logfile >>${var_log}/${scanscriptname}/logfile
-  cat ${tmpdir}/virusmail ${tmpdir}/logfile | ${mail} -s "FOUND VIRUS IN MAIL $*" 
${mailto}
+  if [ "x${do_log}" = "xyes" ]; then
+       mkdir -p ${systemlogdir}
+       cat ${tmpdir}/logfile >>${systemlogdir}/logfile
+  fi
+  echo ------attached message below------ >${tmpdir}/virusmail
+  cat ${tmpdir}/virusmail ${virusmailsdir}/virus$$ | ${mail} -s "FOUND VIRUS IN MAIL 
+$*" ${mailto}
 
 ################### send a mail back to sender ######################
 
@@ -897,33 +904,27 @@
 
 else
   echo No virus found - good >> ${tmpdir}/logfile
-  if [ "x${deliver}" != "x" ] && [ -x ${deliver} ] ; then
+  if [ "x${usingqmail}" != "x" ]; then
     if [ "x$x_header" = "xyes" ] && [ "x${formail}" != "x" ] && [ -x ${formail} ] ; 
then
-      if [ "x${usingqmail}" != "x" ]; then
-        # If invoked as anything other than "scanmails", invoke the real
-       # program else fall thru to exit
-       if [ "${scanscriptname}" != "scanmails" ] ; then
-         cat ${tmpdir}/receivedmail |\
-           ${formail} -f \
-                       -A "${X_Header_String}" \
-           |  ${scanscriptname}-real "$@"
-       fi    
-      else    
-        cat ${tmpdir}/receivedmail |\
-            ${formail} -f \
-                       -A "${X_Header_String}" \
-        | ${deliver} "$@"
+      if [ "${scanscriptname}" != "scanmails" ] ; then
+       cat ${tmpdir}/receivedmail |\
+         ${formail} -f \
+                    -A "${X_Header_String}" \
+         |  ${scanscriptname}-real "$@"
+      fi    
+    else    
+      if [ "${scanscriptname}" != "scanmails" ] ; then
+        ${scanscriptname}-real "$@" < ${tmpdir}/receivedmail
       fi
+    fi
+  elif [ "x${deliver}" != "x" ] && [ -x ${deliver} ] ; then
+    if [ "x$x_header" = "xyes" ] && [ "x${formail}" != "x" ] && [ -x ${formail} ] ; 
+then
+      cat ${tmpdir}/receivedmail |\
+          ${formail} -f \
+                     -A "${X_Header_String}" \
+      | ${deliver} "$@"
     else 
-      if [ "x${usingqmail}" != "x" ]; then
-        # If invoked as anything other than "scanmails", invoke the real
-       # program else fall thru to exit
-       if [ "${scanscriptname}" != "scanmails" ] ; then
-         ${scanscriptname}-real "$@" < ${tmpdir}/receivedmail
-       fi  
-      else  
-        ${deliver} "$@" <${tmpdir}/receivedmail
-      fi       
+      ${deliver} "$@" <${tmpdir}/receivedmail
     fi 
   else
     pid=$$
@@ -937,8 +938,8 @@
 
   if [ "x${do_log}" = "xyes" ]
   then
-    mkdir -p ${var_log}/${scanscriptname}
-    cat ${tmpdir}/logfile >> ${var_log}/${scanscriptname}/logfile
+    mkdir -p ${systemlogdir}
+    cat ${tmpdir}/logfile >> ${systemlogdir}/logfile
   fi
 fi
 

Reply via email to