summaryrefslogtreecommitdiffstats
path: root/mail/antivirus-milter
diff options
context:
space:
mode:
authordinoex <dinoex@FreeBSD.org>2004-01-05 17:51:18 +0000
committerdinoex <dinoex@FreeBSD.org>2004-01-05 17:51:18 +0000
commit09dbba97cce585766c43bd692ad4d310e7871963 (patch)
treeb19e3aa90d9ff126670bb1acc0ad209e8ea2a53d /mail/antivirus-milter
parenteb5760eaaea65c9173024fd539b4dea459e71c6a (diff)
downloadFreeBSD-ports-09dbba97cce585766c43bd692ad4d310e7871963.zip
FreeBSD-ports-09dbba97cce585766c43bd692ad4d310e7871963.tar.gz
Sendmail milter wich uses Mcafee Virus Scan
The milter recives messages from sendmail, and saves them as a file in a directory. The directory name and the file name are the "$i" (queue identifier) from Sendmail, making it easier to identify them. Once the entire message has been received, the milter runs "ripmime" on the file to extract any attachments. If rupmime returns without an error then it will run "uvscan" on the diretory to scan all the files in it. If uvscan returns an error, then the milter will look for viruses output from uvscan, and reject the message reporting which viruses were found. If viruses were found then the entire directory is moved to quarantine, otherwise it is deleted. The milter also does extention checks. Certain extentions are blocked completely. In specific, extenions of .scr, .vbs, .pif, and .com are blocked. Author gave permission to distribute it with BSD-License. WWW: http://www.nmt.edu/~wcolburn/antivirus/
Diffstat (limited to 'mail/antivirus-milter')
-rw-r--r--mail/antivirus-milter/Makefile71
-rw-r--r--mail/antivirus-milter/distinfo1
-rw-r--r--mail/antivirus-milter/files/antivirus-milter.sh28
-rw-r--r--mail/antivirus-milter/files/antivirus.conf11
-rw-r--r--mail/antivirus-milter/files/patch-Makefile21
-rw-r--r--mail/antivirus-milter/pkg-descr20
-rw-r--r--mail/antivirus-milter/pkg-plist5
7 files changed, 157 insertions, 0 deletions
diff --git a/mail/antivirus-milter/Makefile b/mail/antivirus-milter/Makefile
new file mode 100644
index 0000000..7dae7a4
--- /dev/null
+++ b/mail/antivirus-milter/Makefile
@@ -0,0 +1,71 @@
+# New ports collection makefile for: antivirus
+# Date created: 02.Jan 2004
+# Whom: dirk.meyer@dinoex.sub.org
+#
+# $FreeBSD$
+#
+
+PORTNAME= antivirus
+PORTVERSION= 3.30
+CATEGORIES= mail
+MASTER_SITES= http://www.nmt.edu/~wcolburn/antivirus/
+
+MAINTAINER= dinoex@FreeBSD.org
+COMMENT= Sendmail milter wich uses Mcafee Virus Scan
+
+RUN_DEPENDS= ${LOCALBASE}/bin/ripmime:${PORTSDIR}/mail/ripmime
+.if !defined(SENDMAIL_MILTER_IN_BASE)
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libmilter.a:${PORTSDIR}/mail/sendmail
+.endif
+
+USE_REINPLACE= yes
+CFLAGS+= -Wall ${PTHREAD_CFLAGS:S=""==}
+LIBS+= -lmilter ${PTHREAD_LIBS}
+ANTIVIRUS_DIR?= /var/spool/antivirus
+PLIST_SUB+= ANTIVIRUS=${ANTIVIRUS_DIR}
+SED_SCRIPT= -e 's|%%ANTIVIRUS%%|${ANTIVIRUS_DIR}|g' \
+ -e 's|%%PREFIX%%|${PREFIX}|g'
+MAKE_ENV+= SENDMAILBASE="${SENDMAILBASE}" \
+ SENDMAILOBJ="${SENDMAILOBJ}" \
+ LIBS="${LIBS}"
+
+.if !defined(SENDMAIL_MILTER_IN_BASE)
+CFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+SENDMAILBASE= ${LOCALBASE}
+SENDMAILOBJ= ${LOCALBASE}
+.else
+SENDMAILBASE= /usr
+SENDMAILOBJ= /usr
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if defined(SENDMAIL_WITHOUT_MILTER)
+pre-fetch:
+ @${ECHO_MSG}
+ @${ECHO_MSG} You must unset variable SENDMAIL_WITHOUT_MILTER,
+ @${ECHO_MSG} and rebuild sendmail in the ports
+ @${FALSE}
+.endif
+
+do-configure:
+ @${REINPLACE_CMD} -e 's|/etc/mail/antivirus.conf|${LOCALBASE}/etc/antivirus.conf|' \
+ ${CONFIGURE_WRKSRC}/antivirus.c
+ @${SED} ${SED_SCRIPT} ${FILESDIR}/antivirus-milter.sh \
+ > ${WRKSRC}/antivirus-milter.sh
+ @${SED} ${SED_SCRIPT} ${FILESDIR}/antivirus.conf \
+ > ${WRKSRC}/antivirus.conf
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/antivirus \
+ ${PREFIX}/libexec/antivirus
+ ${INSTALL_SCRIPT} ${WRKSRC}/antivirus-milter.sh \
+ ${PREFIX}/etc/rc.d/antivirus-milter.sh.sample
+ ${INSTALL_DATA} ${WRKSRC}/antivirus.conf ${PREFIX}/etc/antivirus.conf-dist
+ ${MKDIR} /var/antivirus/spool /var/antivirus/run /var/antivirus/quarantine
+ ${CHOWN} -R nobody:nobody /var/antivirus/
+ @${ECHO_MSG} "Add to your *.mc configfile:"
+ @${ECHO_MSG} "INPUT_MAIL_FILTER(\`antivirus', \`S=local:${ANTIVIRUS_DIR}/antivirus.sock, F=')"
+
+.include <bsd.port.post.mk>
diff --git a/mail/antivirus-milter/distinfo b/mail/antivirus-milter/distinfo
new file mode 100644
index 0000000..291f88a
--- /dev/null
+++ b/mail/antivirus-milter/distinfo
@@ -0,0 +1 @@
+MD5 (antivirus-3.30.tar.gz) = 179c39d1fd4713e5075e0d916abcdf7b
diff --git a/mail/antivirus-milter/files/antivirus-milter.sh b/mail/antivirus-milter/files/antivirus-milter.sh
new file mode 100644
index 0000000..ae642dc
--- /dev/null
+++ b/mail/antivirus-milter/files/antivirus-milter.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+if ! test -x %%PREFIX%%/libexec/antivirus
+then
+ exit 0
+fi
+case "$1" in
+start)
+ rm -f %%ANTIVIRUS%%/antivirus.sock %%ANTIVIRUS%%/run/antivirus.pid
+ %%PREFIX%%/libexec/antivirus -p local:%%ANTIVIRUS%%/antivirus.sock &
+ echo -n ' antivirus'
+ ;;
+stop)
+ if test -r %%ANTIVIRUS%%/run/antivirus.pid
+ then
+ kill `head -1 %%ANTIVIRUS%%/run/antivirus.pid`
+ else
+ echo " antivirus: not running" 2>&1
+ fi
+ rm -f %%ANTIVIRUS%%/run/antivirus.pid
+ ;;
+*)
+ echo "Usage: ${0##*/}: { start | stop }" >&2
+ exit 64
+ ;;
+esac
diff --git a/mail/antivirus-milter/files/antivirus.conf b/mail/antivirus-milter/files/antivirus.conf
new file mode 100644
index 0000000..e8275fc
--- /dev/null
+++ b/mail/antivirus-milter/files/antivirus.conf
@@ -0,0 +1,11 @@
+HOMEDIR %%ANTIVIRUS%%
+BASEDIR %%ANTIVIRUS%%/spool
+AVSCANDIR /usr/local/bin
+AVSCANNER /usr/local/bin/uvscan
+QUARANTINE %%ANTIVIRUS%%/quarantine
+UNPACKER /usr/local/bin/ripmime
+SAFEUSER nobody
+SAFEGROUP nobody
+PIDFILE %%ANTIVIRUS%%/run/antivirus.pid
+AVPRODUCT mcafee
+AVFAILACTION tempfail
diff --git a/mail/antivirus-milter/files/patch-Makefile b/mail/antivirus-milter/files/patch-Makefile
new file mode 100644
index 0000000..3c54922
--- /dev/null
+++ b/mail/antivirus-milter/files/patch-Makefile
@@ -0,0 +1,21 @@
+--- Makefile.orig Fri Jun 27 19:55:26 2003
++++ Makefile Fri Jan 2 14:21:02 2004
+@@ -1,5 +1,5 @@
+-SENDMAILBASE=/system/compile/sendmail-8.12.9
+-SENDMAILOBJ=obj.Linux.2.2.19.i686
++#SENDMAILBASE=/system/compile/sendmail-8.12.9
++#SENDMAILOBJ=obj.Linux.2.2.19.i686
+
+ INCDIRS=\
+ -I$(SENDMAILBASE)/include/libmilter/ \
+@@ -10,8 +10,8 @@
+ -L$(SENDMAILBASE)/$(SENDMAILOBJ)/libsm/
+
+ # Linux
+-LIBS=-lmilter -lpthread
+-CFLAGS=-Wall -Werror -g
++#LIBS=-lmilter -lpthread
++#CFLAGS=-Wall -Werror -g
+
+ ##
+ ## Solaris
diff --git a/mail/antivirus-milter/pkg-descr b/mail/antivirus-milter/pkg-descr
new file mode 100644
index 0000000..d83c2be
--- /dev/null
+++ b/mail/antivirus-milter/pkg-descr
@@ -0,0 +1,20 @@
+Sendmail milter wich uses Mcafee Virus Scan
+
+The milter recives messages from sendmail, and saves them as a file in
+a directory. The directory name and the file name are the "$i" (queue
+identifier) from Sendmail, making it easier to identify them. Once the
+entire message has been received, the milter runs "ripmime" on the file
+to extract any attachments. If rupmime returns without an error then it
+will run "uvscan" on the diretory to scan all the files in it. If uvscan
+returns an error, then the milter will look for viruses output from
+uvscan, and reject the message reporting which viruses were found. If
+viruses were found then the entire directory is moved to quarantine,
+otherwise it is deleted.
+
+The milter also does extention checks. Certain extentions are blocked
+completely. In specific, extenions of .scr, .vbs, .pif, and .com are
+blocked.
+
+Author gave permission to distribute it with BSD-License.
+
+WWW: http://www.nmt.edu/~wcolburn/antivirus/
diff --git a/mail/antivirus-milter/pkg-plist b/mail/antivirus-milter/pkg-plist
new file mode 100644
index 0000000..40508fc
--- /dev/null
+++ b/mail/antivirus-milter/pkg-plist
@@ -0,0 +1,5 @@
+libexec/antivirus
+etc/antivirus.conf-dist
+etc/rc.d/antivirus-milter.sh.sample
+@exec mkdir -p %%ANTIVIRUS%%/spool %%ANTIVIRUS%%/run %%ANTIVIRUS%%/run/quarantine
+@exec chown -R nobody:nobody %%ANTIVIRUS%%/
OpenPOWER on IntegriCloud