- Upgrade qmail-scanner to 2.01

- Repocopy qmail-scanner to mail/qmail-scanner1 to preserver 1.x version

I made a big confusion here, i forgot i have transfered maintainership of
qmail-scanner to jmelo@, and I took the PR and did all the job.
I explained to jmelo@ and he approved all these changes.

PR:		ports/115877
Submitted by:	Felippe de Meirelles Motta <lippe@freebsdbrasil.com.br>
Approved by:	jmelo (maintainer)
Repocopied by:	marcus
This commit is contained in:
Renato Botelho 2007-09-04 13:18:39 +00:00
parent a18e616bf2
commit bdc8dde615
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=198741
14 changed files with 354 additions and 401 deletions

View file

@ -6,6 +6,34 @@ You should get into the habit of checking this file for changes each
time you update your ports collection, before attempting any port
upgrades.
20070904:
AFFECTS: users of mail/qmail-scanner
AUTHOR: lippe@freebsdbrasil.com.br
qmail-scanner was updated to 2.x, and 1.x version was repocopied to
mail/qmail-scanner1. There are some differences between these 2 versions:
quarantine-attachments.txt has been renamed to quarantine-events.txt, it is
used to quarantine more than just attachments, and the format of that file
has been changed.
Quarantine directory is now separated into THREE subdirs: "spam", "viruses"
and "policy". This is so sites can arrange different auto-delete jobs to
control the size of these areas if they so wish.
Some features that were hard-wired into the main body of Q-S have been moved
into quarantine-events.txt where they should have been all along. This makes
it possible to change settings without reconfiguring the main body of qmail-
scanner-queue.pl. You will need to rewrite any rules you had in place within
the old quarantine-attachments.txt into the new format quarantine-events.txt
Changed setuid to 6755 - ie it's now setuid and setgid. Forcing all files to
be group qscand will allow those who wish to do so to keep their AV daemons
running as other accounts. They just need to ensure those daemons are members
of the qscand group - and as such should be able to read the necessary files.
e.g. clamd could run as "clamav", but as long as account "clamav" is a member
of group "qscand", clamd is able to read the mail enough to scan it.
20070903:
AFFECTS: users of net/whois, net/gwhois
AUTHOR: nivo+kw+ports.bfa274@is-root.com

View file

@ -492,6 +492,7 @@
SUBDIR += qmail-rblchk
SUBDIR += qmail-remove
SUBDIR += qmail-scanner
SUBDIR += qmail-scanner1
SUBDIR += qmail-spamcontrol
SUBDIR += qmail-tls
SUBDIR += qmail-vida

View file

@ -6,165 +6,249 @@
#
PORTNAME= qmail-scanner
PORTVERSION= 1.25
PORTREVISION= 2
PORTVERSION= 2.01
CATEGORIES= mail security
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
DISTNAME= ${PORTNAME}-${PORTVERSION:S/.r/rc/}
MASTER_SITES= SF
EXTRACT_SUFX= .tgz
MAINTAINER= jmelo@FreeBSD.org
MAINTAINER= lippe@freebsdbrasil.com.br
COMMENT= Content/Anti-virus Scanner for qmail
MANUAL_PACKAGE_BUILD= Requires qmail built with non-standard setting
BUILD_DEPENDS= reformime:${PORTSDIR}/mail/maildrop \
${SITE_PERL}/${PERL_ARCH}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes
BUILD_DEPENDS+= reformime:${PORTSDIR}/mail/maildrop \
${SITE_PERL}/${PERL_ARCH}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes \
${SITE_PERL}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64
QMAIL_QUEUE= ${QMAIL_PREFIX}/bin/qmail-queue
USE_PERL5= yes
NO_BUILD= yes
# Barely optionnal
.if !defined(WITHOUT_TNEF)
USE_QMAIL= yes
CONFLICTS= qmail-scanner-1.*
QS_USER?= qscand
QS_ADMIN?= postmaster
QS_ID?= 85
DOCS= logging_first_80_chars.eml patch_for_nod32_single_user.eml \
reformime-test.eml spamc-nasty.eml spamc-nice.eml vpopmail-issues.eml
CONTRIB= mrtg-qmail-scanner.cfg check_AV_daemons logrotate.qmail-scanner \
qs2mrtg.pl qs_config.sh qscan-spam-to-users.pl rbl_scanner.txt \
sub-avpdaemon.pl sub-sender-cache.pl test-avgd.pl test-clamd.pl \
test-sophie.pl test-trophie.pl test_installation.sh test_password.zip \
qmail-scanner-queue.c
SPOOLDIR?= /var/spool/qscand
PLIST_SUB= SPOOLDIR=${SPOOLDIR}
OPTIONS= TNEF "Mark Simpson's Patch (Recommended)" on \
FIX_MIME "Fix broken MIME messages" off \
REDUNDANT "Scan attachments and body mails" on \
NORMALIZE "Decode encoded headers per MIME Base64" off \
UNZIP "Force UNZIP all zip files" off
HAS_CONFIGURE= yes
CONFIGURE_ARGS+=--qmaildir "${QMAIL_PREFIX}" \
--spooldir "${SPOOLDIR}" \
--bindir "${PREFIX}/bin" \
--qmail-queue-binary "${QMAIL_QUEUE}" \
--mime-unpacker "reformime" \
--batch
SUB_FILES= pkg-message
SUB_LIST= SPOOLDIR="${SPOOLDIR}" \
QS_USER=${QS_USER} \
QS_ID=${QS_ID}
PKGINSTALL?= ${WRKDIR}/pkg-install
.include <bsd.port.pre.mk>
.if defined(WITH_TNEF)
BUILD_DEPENDS+= ${LOCALBASE}/bin/tnef:${PORTSDIR}/converters/tnef
.endif
# Options
QMAILSCAN_ADMIN?= root
.if defined(QMAILSCAN_ADMINREALNAME)
CONFIGURE_ARGS+= --admin-realname "${QMAILSCAN_ADMINREALNAME}"
.if !defined(WITH_FIX_MIME)
CONFIGURE_ARGS+= --fix-mime no
.endif
.if defined(QMAILSCAN_ARCHIVE)
CONFIGURE_ARGS+= --archive yes
.if !defined(WITH_REDUNDANT)
CONFIGURE_ARGS+= --redundant no
.endif
QMAILSCAN_NOTIFY?= psender,precips
.if defined(QMAILSCAN_LANG)
CONFIGURE_ARGS+= --lang "${QMAILSCAN_LANG}"
.if !defined(WITH_NORMALIZE)
CONFIGURE_ARGS+= --normalize no
.endif
.if defined(QMAILSCAN_LOCALDOMAINS) && !empty(QMAILSCAN_LOCALDOMAINS)
CONFIGURE_ARGS+= --local-domains "${QMAILSCAN_LOCALDOMAINS}"
.endif
.if defined(QMAILSCAN_LOGCRYPTO)
CONFIGURE_ARGS+= --log-crypto yes
.endif
.if defined(QMAILSCAN_NOTUNZIP)
CONFIGURE_ARGS+= --unzip no
.else
.if defined(WITH_UNZIP)
CONFIGURE_ARGS+= --unzip yes
.if defined(QMAILSCAN_MAXZIPSIZE)
CONFIGURE_ARGS+= --max-zip-size "${QMAILSCAN_MAXZIPSIZE}"
.endif
.if !defined(QMAILSCAN_NOTBLKZIPPW)
BUILD_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip
CONFIGURE_ARGS+= --block-password-protected yes
.endif
.endif
.if defined(QMAILSCAN_SCANNERS)
CONFIGURE_ARGS+= --scanners "${QMAILSCAN_SCANNERS}"
.else
CONFIGURE_ARGS+= --scanners auto
.endif
QMAILSCAN_SILENTVIRUSES?= auto
.if defined(QMAILSCAN_SPAMSREDIRECT)
CONFIGURE_ARGS+= --spams-redirect "${QMAILSCAN_SPAMSREDIRECT}"
.endif
.if defined(QMAILSCAN_SPAMSTOSUFFIX)
CONFIGURE_ARGS+= --spams-tosuffix "${QMAILSCAN_SPAMSTOSUFFIX}"
.endif
RUN_DEPENDS= ${BUILD_DEPENDS}
.if !defined(QS_USER)
CONFIGURE_ARGS+= --qs-user "${QS_USER}"
.endif
USE_QMAIL= yes
.if !defined(QS_ADMIN)
CONFIGURE_ARGS+= --admin "${QS_ADMIN}"
.endif
SPOOLDIR= ${PREFIX}/qmailscan
PLIST_SUB= SPOOLDIR="${SPOOLDIR:S,${PREFIX}/,,}"
.if defined(QS_ADMIN_DESC)
CONFIGURE_ARGS+= --admin-description "${QS_ADMIN_DESC}"
.endif
HAS_CONFIGURE= yes
CONFIGURE_ARGS+= \
--qmaildir "${QMAIL_PREFIX}" --spooldir "${SPOOLDIR}" \
--bindir "${PREFIX}/bin" --qmail-queue-binary "${QMAIL_QUEUE}" \
--admin "${QMAILSCAN_ADMIN}" --notify "${QMAILSCAN_NOTIFY}" \
--silent-viruses "${QMAILSCAN_SILENTVIRUSES}" \
--redundant yes \
--add-dscr-hdrs yes \
--log-details syslog --debug no \
--batch
.if defined(QS_SCANNERS)
CONFIGURE_ARGS+= --scanners "${QS_SCANNERS}"
.endif
.if defined(QS_SKIP_MSGS)
CONFIGURE_ARGS+= --skip-text-msgs "${QS_SKIP_MSGS}"
.endif
.if !defined(QS_NOTIFY)
CONFIGURE_ARGS+= --notify psender,precips
.endif
.if defined(QS_LOCALDOMAINS) && !empty(QS_LOCALDOMAINS)
CONFIGURE_ARGS+= --local-domains "${QS_LOCALDOMAINS}"
.endif
.if defined(QS_SA_QUARANTINE)
CONFIGURE_ARGS+= --sa-quarantine "${QS_SA_QUARANTINE}"
.endif
.if defined(QS_LANG)
CONFIGURE_ARGS+= --lang "${QS_LANG}"
.endif
.if defined(QS_ARCHIVE)
CONFIGURE_ARGS+= --archive "${QS_ARCHIVE}"
.endif
.if defined(QS_MAX_SCAN_SIZE)
CONFIGURE_ARGS+= --max-scan-size "${QS_MAX_SCAN_SIZE}"
.endif
.if defined(QS_LOGDETAILS)
CONFIGURE_ARGS+= --log-details "${QS_LOGDETAILS}"
.endif
.if defined(QS_LOGCRYPTO)
CONFIGURE_ARGS+= --log-crypto "${QS_LOGCRYPTO}"
.endif
.if defined(QS_EOLCHECK)
CONFIGURE_ARGS+= --ignore-eol-check "${QS_EOLCHECK}"
.endif
.if defined(QS_HEADERS)
CONFIGURE_ARGS+= --add-dscr-hdrs "${QS_HEADERS}"
.endif
.if defined(QS_DEBUG)
CONFIGURE_ARGS+= --debug "${QS_DEBUG}"
.endif
.if defined(QS_MAX_ZIP_SIZE)
CONFIGURE_ARGS+= --max-zip-size "${QS_MAX_ZIP_SIZE}"
.endif
pre-configure:
@${ECHO_MSG} ""
@${ECHO_MSG} "----------------------------------------"
@${ECHO_MSG} "You may use the following build options:"
@${ECHO_MSG} ""
@${ECHO_MSG} "QMAILSCAN_ADMIN email adress of qmail-scanner admin for alerts"
@${ECHO_MSG} "QMAILSCAN_ADMINREALNAME* name to use when sending alerts"
@${ECHO_MSG} "QMAILSCAN_LANG specify languages for QS mails (notify, etc..)"
@${ECHO_MSG} " supported languages are: af_ZA, cs_CZ, da_DK, de_DE,"
@${ECHO_MSG} " en_GB, en_PL, enlt_LT, enlt_LT_short, es_ES, fr_FR,"
@${ECHO_MSG} " it_IT, ja_JP.EUC, nl_NL, no_NO, pl_PL, pt_BR, pt_PT,"
@${ECHO_MSG} " sk_SK, sv_SE, tr_TR, tr_TR_ascii and tw_BIG5"
@${ECHO_MSG} " default depends on your LANG variable"
@${ECHO_MSG} " (en_GB if LANG is not set)"
@${ECHO_MSG} "QMAILSCAN_LOCALDOMAINS domains classified as local domains preventing alerts"
@${ECHO_MSG} " of externals users (and mailing-lists...)"
@${ECHO_MSG} "QMAILSCAN_LOGCRYPTO simply notes in the log record if the message"
@${ECHO_MSG} " contained any form of digital signing or encryption"
@${ECHO_MSG} " (S/MIME, PGP and password protected files)"
@${ECHO_MSG} " default is disabled"
@${ECHO_MSG} "QMAILSCAN_MAXZIPSIZE zip that would have unpacked into more diskspace"
@${ECHO_MSG} " than this value will be blocked (prevent DoS)"
@${ECHO_MSG} " default is 1000000000"
@${ECHO_MSG} "QMAILSCAN_NOTBLKZIPPW zip password protected are blocked by default"
@${ECHO_MSG} " setting this variable to disable this function"
@${ECHO_MSG} "QMAILSCAN_NOTIFY who has to be notify of viruses/spams"
@${ECHO_MSG} " defaults to 'psender,precips'"
@${ECHO_MSG} "QMAILSCAN_SCANNERS list of installed content scanner"
@${ECHO_MSG} " default is automatic, so you do not need to set this"
@${ECHO_MSG} "QMAILSCAN_SILENTVIRUSES viruses that qs shoud not notify about"
@${ECHO_MSG} "QMAILSCAN_SPAMSREDIRECT* set this if you want to redirect all spams to a"
@${ECHO_MSG} " specific email address"
@${ECHO_MSG} "QMAILSCAN_SPAMSTOSUFFIX* suffix to alter spams recipients with"
@${ECHO_MSG} "QS_USER User to run Q-S"
@${ECHO_MSG} " (Default: qscand)"
@${ECHO_MSG} "QS_ADMIN Administrator Q-S Address"
@${ECHO_MSG} " (Default: postmaster)"
@${ECHO_MSG} "QS_ADMIN_DESC Real Name of Administrator Q-S"
@${ECHO_MSG} " (Default: System Anti-Virus Administrator)"
@${ECHO_MSG} "QS_SCANNERS List of scanners installed, e.g. bitdefender,nod32"
@${ECHO_MSG} " (Default: auto)"
@${ECHO_MSG} "QS_SKIP_MSGS Q-S will skip running any anti-virus scanners on"
@${ECHO_MSG} " any messages it works out are text-only."
@${ECHO_MSG} " (Default: yes|no)"
@${ECHO_MSG} "QS_NOTIFY Who has to be notify of viruses/spams"
@${ECHO_MSG} " (Default: 'psender|precips')"
@${ECHO_MSG} "QS_LOCALDOMAINS Domains classified as local domains preventing alerts"
@${ECHO_MSG} " of externals users (and mailing-lists...)"
@${ECHO_MSG} "QS_SA_QUARANTINE If SA tags a message as having a score higher than"
@${ECHO_MSG} " 'required_hits', then that message will be quarantined"
@${ECHO_MSG} " into a new maildir '/.spam/' and not delivered to end-user"
@${ECHO_MSG} " (Default: disabled, Options: Any positive number)"
@${ECHO_MSG} "QS_LANG Specify languages for Q-S mails alerts"
@${ECHO_MSG} " Supported languages are: af_ZA, cs_CZ, da_DK, de_DE,"
@${ECHO_MSG} " en_GB, en_PL, enlt_LT, enlt_LT_short, es_ES, fr_FR,"
@${ECHO_MSG} " it_IT, ja_JP.EUC, nl_NL, no_NO, pl_PL, pt_BR, pt_PT,"
@${ECHO_MSG} " sk_SK, sv_SE, tr_TR, tr_TR_ascii and tw_BIG5"
@${ECHO_MSG} " Default depends on your LANG variable"
@${ECHO_MSG} " (Default: en_GB if LANG is not set)"
@${ECHO_MSG} "QS_ARCHIVE If "yes", all copies of processed mail will be moved into the"
@${ECHO_MSG} " maildir '$SPOOLDIR/$ARCHIVEDIR/'. Any other string besides 'yes'"
@${ECHO_MSG} " and 'no' will be treated as a REGEX. Only mail from or to an"
@${ECHO_MSG} " address that contains that regex will be archived."
@${ECHO_MSG} " e.g. 'jhaar|harry'"
@${ECHO_MSG} " (Default: no, Options: yes|no|regex)"
@${ECHO_MSG} "QS_LOGDETAILS Whether or not to log to mailstats.csv/via syslog the attachment"
@${ECHO_MSG} " structure of every Email message. Logs to "syslog" by default."
@${ECHO_MSG} " (Default: syslog, Options: yes|syslog|no)"
@${ECHO_MSG} "QS_LOGCRYPTO Simply notes in the log record if the message"
@${ECHO_MSG} " contained any form of digital signing or encryption"
@${ECHO_MSG} " (S/MIME, PGP and password protected files)"
@${ECHO_MSG} " (Default: no, Options: yes|no)"
@${ECHO_MSG} "QS_MAXSCANSIZE Email messages (raw size) larger than this number (in bytes)"
@${ECHO_MSG} " will skip all AV and Spam scanning checks. It's to stop Q-S"
@${ECHO_MSG} " scanning 300Mbyte TIFF file messages and the like."
@${ECHO_MSG} " (Default: 100Mbytes)"
@${ECHO_MSG} "QS_MAXZIPSIZE Zip that would have unpacked into more diskspace"
@${ECHO_MSG} " than this value will be blocked (prevent DoS)"
@${ECHO_MSG} " (Default: 1Gbytes)"
@${ECHO_MSG} "QS_EOLCHECK Making this "yes" stops Qmail-Scanner from treating '\r' or '\0'"
@${ECHO_MSG} " chars in the headers of MIME mail messages as being suspicious"
@${ECHO_MSG} " enough to quarantine mail over."
@${ECHO_MSG} " (Default: no, Options: yes|no)"
@${ECHO_MSG} "QS_HEADERS This adds the now old-fashion X-Qmail-Scanner headers to the message."
@${ECHO_MSG} " "all" adds the "rcpt to" headers too - this is a privacy hole."
@${ECHO_MSG} " (Default: no, Options: yes|no|all)"
@${ECHO_MSG} "QS_DEBUG Whether or not debugging is turned on. Can be also set to a number."
@${ECHO_MSG} " NOTE: Numbers over 100 cause Q-S to not cleanup working files"
@${ECHO_MSG} " (Default: yes, Options: yes|no|number)"
@${ECHO_MSG} ""
@${ECHO_MSG} "When you set the last option to 'spam', a detected spam will be delivered to"
@${ECHO_MSG} "'user-spam@domain' instead of 'user@domain'."
@${ECHO_MSG} ""
@${ECHO_MSG} "* Please note these options are only available with FreeBSD ports "
@${ECHO_MSG} "So please, do not report relatives bugs to qmail-scanner team, but maintainer."
@${ECHO_MSG} "----------------------------------------"
@${ECHO_MSG} ""
@PKG_PREFIX=${PREFIX} ${SH} ${PKGDIR}/pkg-install ${PKGNAME} PRE-INSTALL
@if ! ${TEST} -f ${QMAIL_QUEUE}; then \
${ECHO_MSG} "Unable to found qmail-queue binary trying '${QMAIL_QUEUE}'."; \
${ECHO_MSG} "Please set QMAIL_PREFIX to your qmail installation directory !"; \
exit 1; \
fi
post-configure:
${TEST} -f ${WRKSRC}/qmail-scanner-queue.pl
do-configure:
@${SED} -e 's,%%SPOOLDIR%%,${SPOOLDIR},g; s,%%QS_USER%%,${QS_USER},g; \
s,%%QS_ID%%,${QS_ID},g; s,%%PREFIX%%,${PREFIX},g' \
${FILESDIR}/pkg-install.in > ${WRKDIR}/pkg-install
@PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
do-install:
-${TEST} -f ${PREFIX}/bin/qmail-scanner-queue.pl && \
${MV} ${PREFIX}/bin/qmail-scanner-queue.pl \
${PREFIX}/bin/qmail-scanner-queue.pl.old
${INSTALL_SCRIPT} ${WRKSRC}/qmail-scanner-queue.pl ${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKSRC}/contrib/qs2mrtg.pl ${PREFIX}/bin
${INSTALL_DATA} ${WRKSRC}/quarantine-attachments.txt \
${SPOOLDIR}/quarantine-attachments.sample
${TEST} -f ${SPOOLDIR}/quarantine-attachments.txt || \
${INSTALL_DATA} ${WRKSRC}/quarantine-attachments.txt ${SPOOLDIR}
${INSTALL_DATA} ${WRKSRC}/contrib/mrtg-qmail-scanner.cfg \
${PREFIX}/share/examples/qs2mrtg
@PKG_PREFIX=${PREFIX} ${SH} ${PKGDIR}/pkg-install ${PKGNAME} POST-INSTALL
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}/contrib
. for i in ${DOCS}
${INSTALL_DATA} ${WRKSRC}/contrib/${i} ${DOCSDIR}/contrib
. endfor
. for j in ${CONTRIB}
${INSTALL_SCRIPT} ${WRKSRC}/contrib/${j} ${DOCSDIR}/contrib
. endfor
.endif
@${MKDIR} ${SPOOLDIR}
@${INSTALL_DATA} ${WRKSRC}/quarantine-events.txt ${SPOOLDIR}/quarantine-events.txt.sample
@${INSTALL_SCRIPT} ${WRKSRC}/qmail-scanner-queue.template ${PREFIX}/bin/qmail-scanner-queue.pl
@${ECHO_MSG} ""
@${CAT} ${PKGMESSAGE}
post-install:
@PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
post-deinstall:
@${ECHO_MSG}
@${ECHO_MSG} ""
@${ECHO_MSG} "If you're not updating this port, you can delete directory '${SPOOLDIR}'."
@${ECHO_MSG} ""
test:
@${WRKSRC}/contrib/test_installation.sh -doit
.include <bsd.port.mk>
.include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
MD5 (qmail-scanner-1.25.tgz) = 0117c425efb75208682fabcba4e1dd24
SHA256 (qmail-scanner-1.25.tgz) = 6fa5743a0d180bc4d1a626c4bf56c06a29ec3c0d7cb2ce834add8faceefb9c01
SIZE (qmail-scanner-1.25.tgz) = 221156
MD5 (qmail-scanner-2.01.tgz) = 3fa95fb2e6bcea5adf450b6f1497ff5e
SHA256 (qmail-scanner-2.01.tgz) = 4bf69d3581c23b552deffafcfca49f325c5fe6c5ee6012055f201b8535243472
SIZE (qmail-scanner-2.01.tgz) = 226699

View file

@ -1,5 +1,5 @@
--- ./configure.orig Mon Oct 18 21:26:55 2004
+++ ./configure Mon Jan 31 09:07:22 2005
--- configure.old Tue Aug 14 13:03:10 2007
+++ configure Tue Aug 14 13:04:29 2007
@@ -1,13 +1,6 @@
#!/bin/sh
#
@ -14,132 +14,12 @@
umask 007
OLD_LANG="$LANG"
@@ -51,6 +44,12 @@
#reset all English to en_GB
QSLANG="en_GB"
fi
+
+QSLANG=`echo $QSLANG|sed 's/\..*//'`
+if [ "$QSLANG" = "ja_JP" ]; then
+ #reset all Japanese to ja_JP.EUC
+ QSLANG="ja_JP.EUC"
+fi
@@ -73,7 +66,7 @@
LANGUAGES="`ls -d locale/[a-z]*|sed 's?^locale\/??g'`"
LANGUAGES=`echo $LANGUAGES`
if [ ! -d "./locale/$QSLANG" ]; then
echo "
@@ -87,7 +86,8 @@
QUARANTINE_PASSWORD_PROTECTED="0"
DESCRIPTIVE_HEADERS="0"
NOTIFY_ADDRESSES="psender,nmlvadm"
-USERNAME="$USER"
+ADMIN_MAIL="$USER"
+ADMIN_REALNAME="System Anti-Virus Administrator"
MANUAL_INSTALL="0"
INSTALLIT="0"
DONOTCONFIRM="0"
@@ -100,13 +100,17 @@
-SPOOLDIR="/var/spool/qscan"
+SPOOLDIR="/var/spool/qscand"
QMAILDIR="/var/qmail"
while [ -n "$1" ]
do
+
+
case $1 in
--qs-user) if [ "$2" != "" ] ; then shift ; fi ; QS_USER="$1" ;;
--spooldir) if [ "$2" != "" ] ; then shift ; fi ; AS_QQ="$1" ;;
--qmaildir) if [ "$2" != "" ]; then shift ; fi ; QMAILDIR="$1" ;;
--bindir) if [ "$2" != "" ] ; then shift ; fi ; BINDIR="$1" ;;
- --user|--admin) if [ "$2" != "" ] ; then shift ; fi ; USERNAME="$1" ;;
- --domain) if [ "$2" != "" ] ; then shift ; fi ; MAILDOMAIN="$1" ;;
+ --admin|--user) if [ "$2" != "" ] ; then shift ; fi ; ADMIN_MAIL=`echo $1 | sed 's/@/\\\\@/'` ;;
+ --admin-realname) if [ "$2" != "" ] ; then shift ; fi ; ADMIN_REALNAME="$1" ;;
+ --spams-redirect) if [ "$2" != "" ] ; then shift ; fi ; SPAMS_REDIRECT=`echo $1 | sed 's/@/\\\\@/'` ;;
+ --spams-tosuffix) if [ "$2" != "" ] ; then shift ; fi ; SPAMS_TOSUFFIX="$1" ;;
--notify) if [ "$2" != "" ]; then shift ; fi ; NOTIFY_ADDRESSES="$1" ;;
--batch) DONOTCONFIRM="1" ; if [ "$2" != "" -a "`echo $2|grep '\-'`" = "" ] ; then shift ; fi ;;
--silent-viruses) if [ "$2" != "" ]; then shift ; fi ; FIND_SILENT_VIRUSES="$1" ;;
@@ -138,9 +142,17 @@
--spooldir <spooldir> defaults to $AS_QQ/
--bindir <installdir> where to install qmail-scanner-queue.pl
Defaults to /var/qmail/bin/
- --admin <username> user to Email alerts to (default: $USERNAME)
- --domain <domain name> "user"@"domain" makes up Email address
- to Email alerts to.
+ --admin <email> email to send alerts to (default: $ADMIN_MAIL)
+ --admin-realname <...> realname for sending alerts
+ Defaults to "$ADMIN_REALNAME"
+ nb: use '_' instead of ' ' (sorry for inconvenience)
+ --spams-redirect <email> email to redirect detected spams to
+ Defaults to empty (no redirection)
+ --spams-tosuffix <suffix> suffix to alter recipient with
+ i.e. recipient user@domain
+ will be transform into user-suffix@domain
+ Defaults to empty (do not alter recipients)
+ nb: 'spams-admin' option has precedence on this
--scanners <list of installed content scanners>
Defaults to "auto" - will use
whatever scanners are found on system.
@@ -910,7 +922,7 @@
#Test to see if spamc is calling Unix sockets instead of TCP
SPAMD_SOCKET=`ps -ef 2>/dev/null|egrep 'spamd.*socket'|grep -v grep|sed -e 's/^.*socketpath=//'|awk '{print $1}'`
if [ "$SPAMD_SOCKET" = "" ]; then
- SPAMD_SOCKET=`ps aux 2>/dev/null|egrep 'spamd.*socket'|grep -v grep|sed -e 's/^.*socketpath=//'|awk '{print $1}'`
+ SPAMD_SOCKET=`ps auxwww 2>/dev/null|egrep 'spamd.*socket'|grep -v grep|sed -e 's/^.*socketpath[\ |=]//'|awk '{print $1}'`
fi
if [ "$SPAMD_SOCKET" != "" -a -S "$SPAMD_SOCKET" ]; then
SPAMC_BINARY="$SPAMC_BINARY -U $SPAMD_SOCKET"
@@ -1005,9 +1017,14 @@
MAILDOMAIN=${MAILDOMAIN:-$FQDN}
LOCAL_DOMAINS_ARRAY=${LOCAL_DOMAINS_ARRAY:-$MAILDOMAIN}
-CMDLINE="$0 --spooldir $AS_QQ --qmaildir $QMAILDIR --bindir $BINDIR --qmail-queue-binary $QMAILQUEUE_BIN --admin $USERNAME --domain $MAILDOMAIN --notify $NOTIFY_ADDRESSES --local-domains $LOCAL_DOMAINS_ARRAY --silent-viruses $SILENT_VIRUSES --lang $QSLANG --debug $DEBUG_LEVEL --unzip $FORCE_UNZIP --block-password-protected $QUARANTINE_PASSWORD_PROTECTED --add-dscr-hdrs $DESCRIPTIVE_HEADERS --archive $ARCHIVEIT --redundant $REDUNDANT --log-details $LOG_DETAILS --log-crypto $LOG_CRYPTO --fix-mime $FIX_MIME --ignore-eol-check $DISABLE_EOL_CHECK --scanners \"$SCANNERS\""
-
+CMDLINE="$0 --spooldir $AS_QQ --qmaildir $QMAILDIR --bindir $BINDIR --qmail-queue-binary $QMAILQUEUE_BIN --admin $ADMIN_MAIL --admin-realname \"$ADMIN_REALNAME\" --domain $MAILDOMAIN --notify $NOTIFY_ADDRESSES --local-domains $LOCAL_DOMAINS_ARRAY --silent-viruses $SILENT_VIRUSES --lang $QSLANG --debug $DEBUG_LEVEL --unzip $FORCE_UNZIP --block-password-protected $QUARANTINE_PASSWORD_PROTECTED --add-dscr-hdrs $DESCRIPTIVE_HEADERS --archive $ARCHIVEIT --redundant $REDUNDANT --log-details $LOG_DETAILS --log-crypto $LOG_CRYPTO --fix-mime $FIX_MIME --ignore-eol-check $DISABLE_EOL_CHECK --scanners \"$SCANNERS\""
+if [ -n "$SPAMS_REDIRECT" ]; then
+ CMDLINE="$CMDLINE --spams-redirect $SPAMS_REDIRECT"
+fi
+if [ -n "$SPAMS_TOSUFFIX" ]; then
+ CMDLINE="$CMDLINE --spams-tosuffix $SPAMS_TOSUFFIX"
+fi
if [ "$MANUAL_INSTALL" = "1" ]; then
CMDLINE="$CMDLINE --no-QQ-check $MANUAL_INSTALL"
fi
@@ -1381,7 +1398,7 @@
fi
fi
-USERNAME=${USERNAME:-$LOGNAME}
+ADMIN_MAIL=${ADMIN_MAIL:-$LOGNAME}
SCANNER_ARRAY=`echo $SCANNER_ARRAY|sed 's/^,//g'`
@@ -1461,7 +1478,13 @@
fi
echo "archiving $ASTRING into $AS_QQ/$ARCHIVEDIR/"
fi
-echo "virus-admin=$USERNAME@$MAILDOMAIN"
+echo "admin=$ADMIN_MAIL"
+if [ -n "$SPAMS_REDIRECT" ]; then
+ echo "spams-admin=$SPAMS_REDIRECT"
+fi
+if [ -n "$SPAMS_TOSUFFIX" ]; then
+ echo "spams-suffix=$SPAMS_TOSUFFIX"
+fi
echo "local-domains=$LOCAL_DOMAINS_ARRAY"
echo "silent-viruses=$FIND_SILENT_VIRUSES_ARRAY"
echo "scanners=$SCANNER_ARRAY"
@@ -1623,10 +1646,12 @@
s?SPAMC_BINARY?$SPAMC_BINARY?g;
s?SPAMC_OPTIONS?$SPAMC_OPTIONS?g;
s?SPAMC_SUBJECT?$SPAMC_SUBJECT?g;
-s?USERNAME?$USERNAME?g;
+s?ADMIN_MAIL?$ADMIN_MAIL?g;
+s?ADMIN_REALNAME?$ADMIN_REALNAME?g;
+s?SPAMS_REDIRECT?$SPAMS_REDIRECT?g;
+s?SPAMS_TOSUFFIX?$SPAMS_TOSUFFIX?g;
s?SKIP_TEXT_MSGS?$SKIP_TEXT_MSGS?g;
s?FQDN?$FQDN?g;
-s?MAILDOMAIN?$MAILDOMAIN?g;
s?LOCAL_DOMAINS_ARRAY?$LOCAL_DOMAINS_ARRAY?g;
s?NOTIFY_ADDRESSES?$NOTIFY_ADDRESSES?g;
s?FIND?$FIND?g;
BINDIR="$QMAILDIR/bin"

View file

@ -1,51 +0,0 @@
--- qmail-scanner-queue.template.orig Wed Mar 10 21:02:05 2004
+++ qmail-scanner-queue.template Mon Mar 15 01:26:52 2004
@@ -85,11 +85,17 @@
#From: line information used when making reports
-my $V_FROM='USERNAME@MAILDOMAIN';
-my $V_FROMNAME='System Anti-Virus Administrator';
+my $V_FROM='ADMIN_MAIL';
+my $V_FROMNAME='ADMIN_REALNAME';
# Address carbon-copied on any virus reports
-my $QUARANTINE_CC='USERNAME@MAILDOMAIN';
+my $QUARANTINE_CC='ADMIN_MAIL';
+
+# Address to where spams are redirected
+my $SPAMSADMIN='SPAMS_REDIRECT';
+
+# Suffix to alter recipients with (when spam detected)
+my $SPAMSSUFFIX='SPAMS_TOSUFFIX';
#Array of local domains that are checked against for
#deciding whether or not to send recipient alerts to
@@ -302,6 +308,7 @@
}
my ($quarantine_event,$quarantine_event_tmp,$quarantine_DOS)=0;
+my $spam_event=0;
my $file_id = &uniq_id();
@@ -424,7 +431,18 @@
&email_quarantine_report;
} else {
&qmail_parent_check;
- &qmail_requeue($env_returnpath,$env_recips,"$scandir/$wmaildir/new/$file_id");
+ if ($spam_event) {
+ if ($SPAMSADMIN) {
+ &qmail_requeue($env_returnpath,"T$SPAMSADMIN\0\0","$scandir/$wmaildir/new/$file_id");
+ } elsif ($SPAMSSUFFIX) {
+ $env_recips =~ s/\@/\-$SPAMSSUFFIX\@/g;
+ &qmail_requeue($env_returnpath,$env_recips,"$scandir/$wmaildir/new/$file_id");
+ } else {
+ &qmail_requeue($env_returnpath,$env_recips,"$scandir/$wmaildir/new/$file_id");
+ }
+ } else {
+ &qmail_requeue($env_returnpath,$env_recips,"$scandir/$wmaildir/new/$file_id");
+ }
}
alarm 0;
};

View file

@ -1,10 +0,0 @@
--- sub-spamassassin.pl.orig Thu Dec 4 22:17:55 2003
+++ sub-spamassassin.pl Mon Mar 15 01:27:28 2004
@@ -61,6 +61,7 @@
$tag_score .= "SA:1($sa_score/$sa_max):";
$sa_comment = "Yes, hits=$sa_score required=$sa_max" if ($sa_fast);
&debug("SA: yup, this smells like SPAM");
+ $spam_event = 1;
}
if ($sa_score > 0) {
$sa_score=int($sa_score);

View file

@ -0,0 +1,49 @@
#!/bin/sh
PREFIX=%%PREFIX%%
PW="/usr/sbin/pw"
CHOWN="/usr/sbin/chown"
CHMOD="/bin/chmod"
MKDIR="/bin/mkdir -p"
NOLOGIN="/usr/sbin/nologin"
QS_USER=%%QS_USER%%
QS_ID=%%QS_ID%%
SPOOLDIR=%%SPOOLDIR%%
case "$1" in
PRE-INSTALL)
# User and group
${PW} groupshow -n ${QS_USER} >/dev/null 2>&1 \
|| ${PW} groupadd -n ${QS_USER} -g ${QS_ID}
${PW} usershow -n ${QS_USER} >/dev/null 2>&1 \
|| ${PW} useradd ${QS_USER} -g ${QS_USER} -u ${QS_ID} -s ${NOLOGIN}
;;
POST-INSTALL)
# Directories
for i in working archives; do
for j in tmp cur new; do
[ ! -d ${SPOOLDIR}/${i}/${j} ] && (${MKDIR} ${SPOOLDIR}/${i}/${j} || exit 1)
done
done
for i in viruses policy spam; do
for j in tmp cur new; do
[ ! -d ${SPOOLDIR}/quarantine/${i}/${j} ] && (${MKDIR} ${SPOOLDIR}/quarantine/${i}/${j} || exit 1)
done
done
# Mod and owner
${CHOWN} -R ${QS_USER}:${QS_USER} ${SPOOLDIR}
${CHOWN} ${QS_USER}:${QS_USER} ${PREFIX}/bin/qmail-scanner-queue.pl
${CHMOD} 4755 ${PREFIX}/bin/qmail-scanner-queue.pl
# Initialize
${PREFIX}/bin/qmail-scanner-queue.pl -z
${PREFIX}/bin/qmail-scanner-queue.pl -g
# Mod and owner (final)
${CHOWN} -R ${QS_USER}:${QS_USER} ${SPOOLDIR}
;;
esac

View file

@ -0,0 +1,22 @@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Congratulations! Qmail-Scanner is now installed!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Please, configure correctly your anti-virus and anti-spam;
- You HAVE to reinstall this port each time you add or remo-;
ve one;
- Now configure the environment variable to use qmail-scanner:
You just need to add for your tcpserver file (generally called
as: tcp.smtp):
QMAILQUEUE="%%PREFIX%%/bin/qmail-scanner-queue.pl"
Or create an new file in /service/smtpd/env, with the following
content and called as "QMAILQUEUE":
%%PREFIX%%/bin/qmail-scanner-queue.pl
NOTE: always you change anything in your environment dir, you just
need to restart your smtpd, for it use: "svc -k /service/smtpd".
You can test your installation by running 'make test' in port dir.

View file

@ -1,11 +1,10 @@
Qmail-Scanner is e-mail content scanner that enables a qmail server to
scan all messages it receives for certain characteristics (normally viruses),
and react accordingly.
Qmail-Scanner is an add-on that enables a Qmail email server to scan gatewayed
email for certain characteristics (i.e. a content scanner). It is typically used
for its anti-virus and anti-spam protection functions, in which case it is used
in conjunction with external scanners.
If you have a commercial virus scanner (eg, Sophos sweep, McAfee
uvscan, etc) installed when you build qmail-scanner, qmail-scanner
will configure itself to use that. Otherwise, it will only use its
internal content filter which only allows you to block mail based
on text in the subject/body, general types of attachments, etc.
It also enables a site (at a server/site level) to create "Policy blocks":
i.e. react to email that contains specific strings in particular headers, or
particular attachment filenames or types (e.g. *.VBS attachments).
WWW: http://qmail-scanner.sourceforge.net/

View file

@ -1,45 +0,0 @@
#!/bin/sh
CHMOD=/bin/chmod
CHOWN=/usr/sbin/chown
MKDIR=/bin/mkdir
PW=/usr/sbin/pw
GU_ID=98
GU_NAME=qscand
PREFIX=${PKG_PREFIX}
SPOOLDIR=${PREFIX}/qmailscan
case "$2" in
PRE-INSTALL)
# User and group
${PW} groupshow -n ${GU_NAME} >/dev/null 2>&1 \
|| ${PW} groupadd -n ${GU_NAME} -g ${GU_ID}
${PW} usershow -n ${GU_NAME} >/dev/null 2>&1 \
|| ${PW} useradd ${GU_NAME} -g ${GU_NAME} -u ${GU_ID} -s /sbin/nologin
${MKDIR} -p ${SPOOLDIR}
${MKDIR} -p ${PREFIX}/share/examples/qs2mrtg
;;
POST-INSTALL)
# Directories
for i in quarantine working archives; do
for j in tmp cur new; do
${MKDIR} -p ${SPOOLDIR}/$i/$j
done
done
${MKDIR} -p ${SPOOLDIR}/tmp
# Mod and owner
${CHOWN} -R ${GU_NAME}:${GU_NAME} ${SPOOLDIR}
${CHOWN} ${GU_NAME}:${GU_NAME} ${PREFIX}/bin/qmail-scanner-queue.pl
${CHMOD} 4755 ${PREFIX}/bin/qmail-scanner-queue.pl
# Initialize
${PREFIX}/bin/qmail-scanner-queue.pl -z
${PREFIX}/bin/qmail-scanner-queue.pl -g
# Mod and owner (final)
${CHOWN} -R ${GU_NAME}:${GU_NAME} ${SPOOLDIR}
;;
esac

View file

@ -1,12 +0,0 @@
****************************************************
NOTES:
- You have to configure your anti-virus and anti-spams products!
- You HAVE to reinstall this port each time you add or remove one!
Now, you have to modify your qmail startup files to call qmail-scanner.
In most case, you just need to add:
export QMAILQUEUE="${PREFIX}/bin/qmail-scanner-queue.pl"
to your tcpserver startup file.
You can test installation by running 'make test' in port dir.
****************************************************

View file

@ -1,23 +1,29 @@
@comment $FreeBSD$
bin/qmail-scanner-queue.pl
bin/qs2mrtg.pl
share/examples/qs2mrtg/mrtg-qmail-scanner.cfg
@dirrm share/examples/qs2mrtg
@unexec if cmp -s %D/%%SPOOLDIR%%/quarantine-attachments.txt %D/%%SPOOLDIR%%/quarantine-attachments.sample; then rm -f %D/%%SPOOLDIR%%/quarantine-attachments.txt && rm -f %D/%%SPOOLDIR%%/quarantine-attachments.db; fi
%%SPOOLDIR%%/quarantine-attachments.sample
@exec [ ! -f %D/%%SPOOLDIR%%/quarantine-attachments.txt ] && cp %D/%%SPOOLDIR%%/quarantine-attachments.sample %D/%%SPOOLDIR%%/quarantine-attachments.txt
%%SPOOLDIR%%/qmail-scanner-queue-version.txt
@dirrmtry %%SPOOLDIR%%/archives/cur
@dirrmtry %%SPOOLDIR%%/archives/new
@dirrmtry %%SPOOLDIR%%/archives/tmp
@dirrmtry %%SPOOLDIR%%/archives
@dirrmtry %%SPOOLDIR%%/quarantine/cur
@dirrmtry %%SPOOLDIR%%/quarantine/new
@dirrmtry %%SPOOLDIR%%/quarantine/tmp
@dirrmtry %%SPOOLDIR%%/quarantine
@dirrmtry %%SPOOLDIR%%/working/cur
@dirrmtry %%SPOOLDIR%%/working/new
@dirrmtry %%SPOOLDIR%%/working/tmp
@dirrmtry %%SPOOLDIR%%/working
@dirrmtry %%SPOOLDIR%%/tmp
@dirrmtry %%SPOOLDIR%%
%%PORTDOCS%%%%DOCSDIR%%/contrib/logging_first_80_chars.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/patch_for_nod32_single_user.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/reformime-test.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/spamc-nasty.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/spamc-nice.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/vpopmail-issues.eml
%%PORTDOCS%%%%DOCSDIR%%/contrib/check_AV_daemons
%%PORTDOCS%%%%DOCSDIR%%/contrib/logrotate.qmail-scanner
%%PORTDOCS%%%%DOCSDIR%%/contrib/mrtg-qmail-scanner.cfg
%%PORTDOCS%%%%DOCSDIR%%/contrib/qmail-scanner-queue.c
%%PORTDOCS%%%%DOCSDIR%%/contrib/qs2mrtg.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/qs_config.sh
%%PORTDOCS%%%%DOCSDIR%%/contrib/qscan-spam-to-users.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/rbl_scanner.txt
%%PORTDOCS%%%%DOCSDIR%%/contrib/sub-avpdaemon.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/sub-sender-cache.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/test-avgd.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/test-clamd.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/test-sophie.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/test-trophie.pl
%%PORTDOCS%%%%DOCSDIR%%/contrib/test_installation.sh
%%PORTDOCS%%%%DOCSDIR%%/contrib/test_password.zip
%%PORTDOCS%%@dirrm %%DOCSDIR%%/contrib
%%PORTDOCS%%@dirrm %%DOCSDIR%%
@unexec echo ""
@unexec echo "If you are permanently removing qmail-scanner, you should also:" | /usr/bin/fmt
@unexec echo "'rm -rf %%SPOOLDIR%%' and remove user/group 'qscand'." | /usr/bin/fmt
@unexec echo ""

View file

@ -14,14 +14,16 @@ MASTER_SITE_SUBDIR= ${PORTNAME}
DISTNAME= ${PORTNAME}-${PORTVERSION:S/.r/rc/}
EXTRACT_SUFX= .tgz
MAINTAINER= jmelo@FreeBSD.org
MAINTAINER= lippe@freebsdbrasil.com.br
COMMENT= Content/Anti-virus Scanner for qmail
MANUAL_PACKAGE_BUILD= Requires qmail built with non-standard setting
BUILD_DEPENDS= reformime:${PORTSDIR}/mail/maildrop \
${SITE_PERL}/${PERL_ARCH}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes
MANUAL_PACKAGE_BUILD= Requires qmail built with non-standard setting
CONFLICTS= qmail-scanner-2.*
QMAIL_QUEUE= ${QMAIL_PREFIX}/bin/qmail-queue
USE_PERL5= yes