forked from Lainports/freebsd-ports
Add simscan - a good, simple, and fast qmail scanner, which works with
SpamAssassin/ClamAV, written in C. PR: 78629[1], 79135[2] Submitted by: Anton Karpov <toxa@toxahost.ru> [1], Cristiano Deana <cris@gufi.org> [2]
This commit is contained in:
parent
2f8c610bcd
commit
3ada00cdc3
9 changed files with 282 additions and 0 deletions
|
|
@ -433,6 +433,7 @@
|
|||
SUBDIR += sigit
|
||||
SUBDIR += sigrot
|
||||
SUBDIR += silkymail
|
||||
SUBDIR += simscan
|
||||
SUBDIR += sma
|
||||
SUBDIR += smail
|
||||
SUBDIR += smtpclient
|
||||
|
|
|
|||
144
mail/simscan/Makefile
Normal file
144
mail/simscan/Makefile
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
# New ports collection makefile for: simscan
|
||||
# Date created: 1 Apr 2005
|
||||
# Whom: Anton Karpov <toxa@toxahost.ru>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= simscan
|
||||
PORTVERSION= 1.1
|
||||
CATEGORIES= mail security
|
||||
MASTER_SITES= http://www.inter7.com/simscan/
|
||||
MASTER_SITE_SUBDIR= ${PORTNAME}
|
||||
DISTNAME= ${PORTNAME}-${PORTVERSION:S/.r/rc/}
|
||||
|
||||
MAINTAINER= toxa@toxahost.ru
|
||||
COMMENT= Fast Content/Anti-virus Scanner for qmail Written in C
|
||||
|
||||
BUILD_DEPENDS= ${QMAIL_QUEUE}:${PORTSDIR}/mail/qmail
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
|
||||
# A normal qmail installation puts everything into /var/qmail/.
|
||||
# Must match your qmail installation
|
||||
QMAIL_DIR?= /var/qmail
|
||||
WORKDIR?= ${QMAIL_DIR}/${PORTNAME}
|
||||
QMAIL_QUEUE= ${QMAIL_DIR}/bin/qmail-queue
|
||||
PLIST_SUB= QMAIL_DIR=${QMAIL_DIR} \
|
||||
SIMSCAN_DIR=${PORTNAME}
|
||||
|
||||
OPTIONS= CLAMAV "Support for ClamAV Virus Scanning" on \
|
||||
RIPMIME "Ripmime Processing (if Clamav ScanMail disabled)" on \
|
||||
SPAMD "Support for SpamAssassin Spam Filtering" off \
|
||||
USER "Turn On Per User SpamAssassin (required SPAMD)" off \
|
||||
DOMAIN "Turn On Per Domain Based Checking" off \
|
||||
ATTACH "Turn On Attachment Scanning (required CLAMAV)" off \
|
||||
DROPMSG "Drop Message in Case of Virus Found" off \
|
||||
PASSTHRU "Pass Spam Thru, Do Not Reject (required SPAMD)" off \
|
||||
HEADERS "Add a Received Line With Versions of Scanners" off
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
CONFIGURE_ARGS=--enable-clamavdb-path=/var/db/clamav \
|
||||
--enable-qmaildir=${QMAIL_DIR} \
|
||||
--enable-spamc-user=n \
|
||||
--enable-workdir=${WORKDIR}
|
||||
|
||||
.if defined(WITHOUT_CLAMAV)
|
||||
CONFIGURE_ARGS+=-enable-clamav=n
|
||||
.else
|
||||
BUILD_DEPENDS+= clamdscan:${PORTSDIR}/security/clamav
|
||||
.endif
|
||||
|
||||
.if defined(WITHOUT_RIPMIME)
|
||||
CONFIGURE_ARGS+=--disable-ripmime
|
||||
.else
|
||||
BUILD_DEPENDS+= ripmime:${PORTSDIR}/mail/ripmime
|
||||
.endif
|
||||
|
||||
.if defined(WITH_SPAMD)
|
||||
BUILD_DEPENDS+= spamassassin:${PORTSDIR}/mail/p5-Mail-SpamAssassin
|
||||
CONFIGURE_ARGS+=--enable-spam=y
|
||||
CONFIGURE_ARGS+=--enable-spamassassin-path=${LOCALBASE}/bin/spamassassin
|
||||
.endif
|
||||
|
||||
.if defined(WITH_USER)
|
||||
CONFIGURE_ARGS+=--enable-spamc-user=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_DOMAIN)
|
||||
CONFIGURE_ARGS+=--enable-per-domain=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_ATTACH)
|
||||
CONFIGURE_ARGS+=--enable-attach=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_DROPMSG)
|
||||
CONFIGURE_ARGS+=--enable-dropmsg=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PASSTHRU)
|
||||
CONFIGURE_ARGS+=--enable-spam-passthru=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_HEADERS)
|
||||
CONFIGURE_ARGS+=--enable-received=y
|
||||
CONFIGURE_ARGS+=--enable-sigtool-path=${LOCALBASE}/bin/sigtool
|
||||
.endif
|
||||
|
||||
.if defined(SPAM_HITS)
|
||||
CONFIGURE_ARGS+=--enable-spam-hits=${SPAM_HITS}
|
||||
.endif
|
||||
|
||||
.if defined(QUARANTINE_DIR)
|
||||
CONFIGURE_ARGS+=--enable-quarantinedir=${QUARANTINE_DIR}
|
||||
.endif
|
||||
|
||||
.if defined(SPAMC_ARGS)
|
||||
CONFIGURE_ARGS+=--enable-spamc-args=${SPAMC_ARGS}
|
||||
.endif
|
||||
|
||||
.if defined(QMAIL_QUEUE)
|
||||
CONFIGURE_ARGS+=--enable-qmail-queue=${QMAIL_QUEUE}
|
||||
.endif
|
||||
|
||||
PORTDOCS= AUTHORS ChangeLog README TODO
|
||||
|
||||
if ! ${TEST} -f ${QMAIL_QUEUE}; then \
|
||||
${ECHO_MSG} "Unable to found qmail-queue binary trying '${QMAIL_QUEUE}'."; \
|
||||
${ECHO_MSG} "Please set QMAIL_DIR to your qmail installation directory !"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
pre-configure:
|
||||
@${ECHO_MSG} ""
|
||||
@${ECHO_MSG} "=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~="
|
||||
@${ECHO_MSG} "You may also use the following build options:"
|
||||
@${ECHO_MSG} ""
|
||||
@${ECHO_MSG} "QMAIL_DIR Base qmail directory. Default is /var/qmail"
|
||||
@${ECHO_MSG} "WORKDIR Directory to unpack emails. Default is /var/qmail/simscan"
|
||||
@${ECHO_MSG} "QMAIL_QUEUE Define full path and name of the qmail-queue program"
|
||||
@${ECHO_MSG} " Incoming mail is passed to this program after being"
|
||||
@${ECHO_MSG} " scanned by SimScan. Default is /var/qmail/bin/qmail-queue"
|
||||
@${ECHO_MSG} "SPAMC_ARGS Define the arguments to pass to spamc."
|
||||
@${ECHO_MSG} " Be sure to place quotes around the options you define"
|
||||
@${ECHO_MSG} "SPAM_HITS Reject spam only above this hit level"
|
||||
@${ECHO_MSG} " Default is 10.0. Useful without PASSTHRU option"
|
||||
@${ECHO_MSG} "QUARANTINE_DIR Directory to keep spam and/or infected emails"
|
||||
@${ECHO_MSG} " Default is disabled"
|
||||
@${ECHO_MSG} "=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~="
|
||||
@${ECHO_MSG} ""
|
||||
|
||||
post-install:
|
||||
@${CHMOD} 04711 ${QMAIL_DIR}/bin/simscan
|
||||
@${CHOWN} simscan:simscan ${QMAIL_DIR}/bin/simscan ${QMAIL_DIR}/bin/simscanmk
|
||||
.if !defined(NOPORTDOCS)
|
||||
@${MKDIR} ${DOCSDIR}
|
||||
.for i in ${PORTDOCS}
|
||||
@${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}
|
||||
.endfor
|
||||
.endif
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
2
mail/simscan/distinfo
Normal file
2
mail/simscan/distinfo
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
MD5 (simscan-1.1.tar.gz) = 2ba25145dc0c1b6159f26f3f4c03d3c6
|
||||
SIZE (simscan-1.1.tar.gz) = 130114
|
||||
13
mail/simscan/pkg-deinstall
Normal file
13
mail/simscan/pkg-deinstall
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
USER=simscan
|
||||
GROUP=${USER}
|
||||
|
||||
if [ x$2 != xDEINSTALL ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
pw groupdel -n ${GROUP} || true
|
||||
pw userdel -n ${GROUP} || true
|
||||
7
mail/simscan/pkg-descr
Normal file
7
mail/simscan/pkg-descr
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Simscan is a simple program that enables qmail-smtpd to reject
|
||||
viruses, spam and block attachments during the SMTP conversation
|
||||
so the email never makes it into your computers. It is completely
|
||||
open source and uses other open source components.
|
||||
Very efficient and written in C.
|
||||
|
||||
WWW: http://www.inter7.com/?page=simscan
|
||||
49
mail/simscan/pkg-install
Normal file
49
mail/simscan/pkg-install
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
USER=simscan
|
||||
GROUP=${USER}
|
||||
UID=74
|
||||
GID=${UID}
|
||||
SIMDIR=/var/qmail/simscan
|
||||
|
||||
if [ "$2" = "PRE-INSTALL" ]; then
|
||||
|
||||
echo adding simscan user
|
||||
|
||||
if pw group show "${GROUP}" 2>/dev/null; then
|
||||
echo "You already have a group \"${GROUP}\", so I will use it."
|
||||
else
|
||||
if pw groupadd ${GROUP} -g ${GID}; then
|
||||
echo "Added group \"${GROUP}\"."
|
||||
else
|
||||
echo "Adding group \"${GROUP}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if pw user show "${USER}" 2>/dev/null; then
|
||||
echo "You already have a user \"${USER}\", so I will use it."
|
||||
else
|
||||
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
|
||||
-d /nonexistent -s /sbin/nologin -c "Simscan User"
|
||||
then
|
||||
echo "Added user \"${USER}\"."
|
||||
else
|
||||
echo "Adding user \"${USER}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ "$2" = "POST-INSTALL" ]; then
|
||||
|
||||
if [ ! -d "$SIMDIR" ]; then
|
||||
/bin/mkdir -p "$SIMDIR" || exit 1
|
||||
/usr/sbin/chown "$USER:$GROUP" "$SIMDIR" || exit 1
|
||||
/bin/chmod 0750 "$SIMDIR" || exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
23
mail/simscan/pkg-message
Normal file
23
mail/simscan/pkg-message
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
|
||||
NOTES:
|
||||
|
||||
* You have to configure your anti-virus and anti-spam products!
|
||||
|
||||
* You have to modify your qmail startup files to call simscan.
|
||||
In most cases, you just need to edit /var/qmail/tcp.smtp in
|
||||
order to call simscan instead of qmail-queue, by setting up
|
||||
QMAILQUEUE variable. For example:
|
||||
|
||||
127.0.0.1:allow,RELAYCLIENT=""
|
||||
192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
|
||||
:allow,QMAILQUEUE="/var/qmail/bin/simscan"
|
||||
|
||||
* Don't forget to rebuild tcp.smtp.cdb from new tcp.smtp using tcprules!
|
||||
|
||||
* Also, read documentation about how to configure
|
||||
attachment blocking and per domain processing.
|
||||
Additional documentation can be found here:
|
||||
http://qmailwiki.inter7.com/index.php?title=Simscan
|
||||
|
||||
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
|
||||
7
mail/simscan/pkg-plist
Normal file
7
mail/simscan/pkg-plist
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
@cwd %%QMAIL_DIR%%
|
||||
bin/simscanmk
|
||||
bin/simscan
|
||||
@unexec rmdir %%QMAIL_DIR%%/%%SIMSCAN_DIR%% || true
|
||||
@unexec echo ""
|
||||
@unexec echo "If you're not updating this port, you can delete %%QMAIL_DIR%%/%%SIMSCAN_DIR%% directory"
|
||||
@unexec echo ""
|
||||
36
mail/simscan/scripts/configure
vendored
Normal file
36
mail/simscan/scripts/configure
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
USER=simscan
|
||||
GROUP=${USER}
|
||||
UID=74
|
||||
GID=${UID}
|
||||
|
||||
echo adding simscan user
|
||||
|
||||
|
||||
if pw group show "${GROUP}" 2>/dev/null; then
|
||||
echo "You already have a group \"${GROUP}\", so I will use it."
|
||||
else
|
||||
if pw groupadd ${GROUP} -g ${GID}; then
|
||||
echo "Added group \"${GROUP}\"."
|
||||
else
|
||||
echo "Adding group \"${GROUP}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if pw user show "${USER}" 2>/dev/null; then
|
||||
echo "You already have a user \"${USER}\", so I will use it."
|
||||
else
|
||||
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
|
||||
-d /nonexistent -s /sbin/nologin -c "Simscan User"
|
||||
then
|
||||
echo "Added user \"${USER}\"."
|
||||
else
|
||||
echo "Adding user \"${USER}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
Loading…
Add table
Reference in a new issue