diff options
author | dinoex <dinoex@FreeBSD.org> | 2004-06-11 13:54:37 +0800 |
---|---|---|
committer | dinoex <dinoex@FreeBSD.org> | 2004-06-11 13:54:37 +0800 |
commit | 8a3599c6799a09972ed8c444b7241c3ae3ff6490 (patch) | |
tree | 3ecc4ef7929da235564a9eb592fca6d46187f6bf | |
parent | fcfb9a7deea4b3d2dd604ed11cb994f32d2cc4a2 (diff) | |
download | freebsd-ports-gnome-8a3599c6799a09972ed8c444b7241c3ae3ff6490.tar.gz freebsd-ports-gnome-8a3599c6799a09972ed8c444b7241c3ae3ff6490.tar.zst freebsd-ports-gnome-8a3599c6799a09972ed8c444b7241c3ae3ff6490.zip |
Spamilter is a Sendmail milter written entierly in C, and therefore
is faster and less cpu intensive than other interperative based solutions.
It blocks spam using the following methods;
* Configurable Realtime DNS Blacklists
* Sender Address verification
* Configurable Black and White lists
* Invalid MTA hostname verfication
* Basic Virus/Worm file attachment rejection for files ending
in .pif, .scr, etc.. via MsExtChk filter
* SPF via libspf
Also;
* Realtime firewall blocking of MTA hosts with invalid host names via
MtaHostIpfw filter
* Realtime rate limited connection blocking via firewall rule injection
All actions are logged via syslog with both the sender and the recipient.
From this, report generation and notification to recipients showing
activity becomes extremely simple.
WWW: http://www.wanlink.com/spamilter/index.php
-rw-r--r-- | mail/Makefile | 1 | ||||
-rw-r--r-- | mail/spamilter/Makefile | 100 | ||||
-rw-r--r-- | mail/spamilter/distinfo | 2 | ||||
-rw-r--r-- | mail/spamilter/files/patch-Makefile.tmpl | 37 | ||||
-rw-r--r-- | mail/spamilter/files/spamilter.sh | 36 | ||||
-rw-r--r-- | mail/spamilter/pkg-descr | 24 |
6 files changed, 200 insertions, 0 deletions
diff --git a/mail/Makefile b/mail/Makefile index 804921520aa1..e84d7a21c65e 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -384,6 +384,7 @@ SUBDIR += spambnc SUBDIR += spamd SUBDIR += spamguard + SUBDIR += spamilter SUBDIR += spamoracle SUBDIR += spampd SUBDIR += spamprobe diff --git a/mail/spamilter/Makefile b/mail/spamilter/Makefile new file mode 100644 index 000000000000..3df7e1ec1cb6 --- /dev/null +++ b/mail/spamilter/Makefile @@ -0,0 +1,100 @@ +# New ports collection makefile for: spamilter +# Date created: 21. Apr 2004 +# Whom: dirk.meyer@dinoex.sub.org +# +# $FreeBSD$ +# + +PORTNAME= spamilter +PORTVERSION= 0.59 +CATEGORIES= mail +MASTER_SITES= http://www.wanlink.com/spamilter/download/ +EXTRACT_SUFX= .tgz + +MAINTAINER= dinoex@FreeBSD.org +COMMENT= A Sendmail LibMilter filter to block spam + +.if !defined(SENDMAIL_MILTER_IN_BASE) +BUILD_DEPENDS= ${LOCALBASE}/lib/libmilter.a:${PORTSDIR}/mail/sendmail +.endif + +WRKSRC= ${WRKDIR}/${PORTNAME} +USE_REINPLACE= yes +HAS_CONFIGURE= yes +CFLAGS+= ${PTHREAD_CFLAGS:S=""==} +LDFLAGS+= ${PTHREAD_LIBS} +MAKE_ENV+= LDFLAGS="${LDFLAGS}" + +BINFILES= spamilter-system-report spamilter-user-report +DOCSFILES= Changelog INSTALL LICENSE docs/docs.html docs/docs.txt + +.include <bsd.port.pre.mk> + +.if ${OSVERSION} > 500000 +ALL_TARGET= spamilter dnsblchk mxlookup iflookup +.else +PLIST_FILES+= bin/ipfwmtad +.endif +.if ${OSVERSION} > 501000 +BROKEN= resource starvation in threads +.endif + +.if !defined(SENDMAIL_MILTER_IN_BASE) +LDFLAGS+= -L${LOCALBASE}/lib +CONFIGURE_ARGS+= --sendmail_dir ${LOCALBASE} +.endif +#CFLAGS+= -DDEBUG_TIMESTAMP + +PLIST_FILES+= bin/dnsblchk bin/mxlookup bin/spamilter \ + bin/spamilter-system-report bin/spamilter-user-report \ + etc/rc.d/milter-spamilter.sh.sample +.if !defined(NOPORTDOCS) +PLIST_FILES+= %%DOCSDIR%%/Changelog %%DOCSDIR%%/INSTALL %%DOCSDIR%%/LICENSE +PLIST_FILES+= %%DOCSDIR%%/docs.html %%DOCSDIR%%/docs.txt +PLIST_DIRS+= %%DOCSDIR%% +.endif + +.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 + +pre-configure: + @${SED} -e "s=%%PREFIX%%=${PREFIX}=" ${FILESDIR}/spamilter.sh \ + > ${WRKSRC}/spamilter.sh + ${REINPLACE_CMD} \ + -e "s=/etc/spamilter.rc=${PREFIX}/etc/spamilter.rc=" \ + ${WRKSRC}/spamilter.c \ + ${WRKSRC}/docs/docs.html ${WRKSRC}/docs/docs.txt + +post-configure: + ${REINPLACE_CMD} \ + -e "s|^CFLAGS=|#CFLAGS=|" \ + -e "s|^LDFLAGS=|#LDFLAGS=|" \ + -e "s|^LIBDIRS=|#LIBDIRS=|" \ + -e "s|/usr/local/bind|${LOCALBASE}/bind|" \ + -e "s|/usr/local/|${PREFIX}/|" \ + ${WRKSRC}/Makefile +.if ${OSVERSION} > 500000 + ${REINPLACE_CMD} \ + -e "s| install-ipfwmtad | |" \ + ${WRKSRC}/Makefile +.endif + +post-install: + ${INSTALL_SCRIPT} ${WRKSRC}/spamilter.sh \ + ${PREFIX}/etc/rc.d/milter-spamilter.sh.sample +.for i in ${BINFILES} + ${INSTALL_SCRIPT} ${WRKSRC}/${i} ${PREFIX}/bin/ +.endfor +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} +.for i in ${DOCSFILES} + ${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}/ +.endfor +.endif + +.include <bsd.port.post.mk> diff --git a/mail/spamilter/distinfo b/mail/spamilter/distinfo new file mode 100644 index 000000000000..15a5f6ae903d --- /dev/null +++ b/mail/spamilter/distinfo @@ -0,0 +1,2 @@ +MD5 (spamilter-0.59.tgz) = 4d3d619100874ca44f7afb934ad79061 +SIZE (spamilter-0.59.tgz) = 108498 diff --git a/mail/spamilter/files/patch-Makefile.tmpl b/mail/spamilter/files/patch-Makefile.tmpl new file mode 100644 index 000000000000..151bc2a12dd6 --- /dev/null +++ b/mail/spamilter/files/patch-Makefile.tmpl @@ -0,0 +1,37 @@ +--- Makefile.tmpl.orig Sun Apr 11 01:53:56 2004 ++++ Makefile.tmpl Wed Apr 21 17:48:38 2004 +@@ -68,7 +68,7 @@ + <Linux> rm -f *.o *core spamilter dnsblchk dnsblupd mxlookup iflookup + <ALL> cd libspf; ${MAKE} $@ + <ALL> +-<BSD>install: spamilter install-dnsblchk install-ipfwmtad install-mxlookup install-startup ++<BSD>install: spamilter install-dnsblchk install-ipfwmtad install-mxlookup + <SunOS>install: spamilter install-dnsblchk install-mxlookup + <Linux>install: spamilter install-dnsblchk install-mxlookup + <ALL> install -c -m ${BINMODE} -g ${BINGRP} -o ${BINOWN} spamilter ${BINDIR} +@@ -92,14 +92,14 @@ + <ALL> cd ..; tar --exclude CVS -cfvz spamilter.tgz spamilter/* + <ALL> + <BSD>spamilter: Makefile ${SRCS} spamilter.o ${OBJS} libspf.a ${INCLUDES} +-<BSD> ${CC} ${CFLAGS} -o spamilter spamilter.o ${OBJS} libspf.a ${LIBDIRS} ${LIBS} ++<BSD> ${CC} ${CFLAGS} -o spamilter spamilter.o ${OBJS} libspf.a ${LDFLAGS} ${LIBDIRS} ${LIBS} + <SunOS>spamilter: Makefile ${SRCS} ${NRSRCS} ${SVSRCS} spamilter.o libspf.a ${OBJS} ${NROBJS} ${SVOBJS} ${INCLUDES} + <SunOS> ${CC} ${CFLAGS} -o spamilter spamilter.o ${OBJS} libspf.a ${NROBJS} ${SVOBJS} ${LIBDIRS} ${LIBS} + <Linux>spamilter: Makefile ${SRCS} ${NRSRCS} spamilter.o ${OBJS} libspf.a ${NROBJS} ${INCLUDES} + <Linux> ${CC} ${CFLAGS} -o spamilter spamilter.o ${OBJS} libspf.a ${NROBJS} ${LIBDIRS} ${LIBS} + <ALL> + <BSD>dnsblchk: Makefile ${SRCS} dnsblchk.o ${OBJS} ${INCLUDES} dnsblchk.c +-<BSD> ${CC} ${CFLAGS} -o dnsblchk dnsblchk.o dnsbl.o dns.o smisc.o misc.o mx.o smtp.o inet.o ifi.o ${LIBDIRS} ${LIBS} ++<BSD> ${CC} ${CFLAGS} -o dnsblchk dnsblchk.o dnsbl.o dns.o smisc.o misc.o mx.o smtp.o inet.o ifi.o ${LDFLAGS} ${LIBDIRS} ${LIBS} + <SunOS>dnsblchk: Makefile ${SRCS} ${NRSRCS} ${SVSRCS} dnsblchk.o ${OBJS} ${NROBJS} ${SVOBJS} ${INCLUDES} dnsblchk.c + <SunOS> ${CC} ${CFLAGS} -o dnsblchk dnsblchk.o dnsbl.o dns.o smisc.o misc.o mx.o smtp.o inet.o ifi.o ${NROBJS} ${SVOBJS} ${LIBDIRS} ${LIBS} + <Linux>dnsblchk: Makefile ${SRCS} ${NRSRCS} dnsblchk.o ${OBJS} ${NROBJS} ${INCLUDES} dnsblchk.c +@@ -123,7 +123,7 @@ + <SunOS> ${CC} ${CFLAGS} -o mxlookup mxlookup.o mx.o ${NROBJS} -lresolv + <ALL> + <ALL>iflookup: Makefile iflookup.c ifi.c iflookup.o ifi.o ifi.h +-<ALL> ${CC} ${CFLAGS} -o iflookup iflookup.o ifi.o ${LIBDIRS} ${LIBS} ++<ALL> ${CC} ${CFLAGS} -o iflookup iflookup.o ifi.o ${LDFLAGS} ${LIBDIRS} ${LIBS} + <ALL> + <ALL>libspf.a: + <ALL> cd libspf; ${MAKE} diff --git a/mail/spamilter/files/spamilter.sh b/mail/spamilter/files/spamilter.sh new file mode 100644 index 000000000000..db0c3f1df62e --- /dev/null +++ b/mail/spamilter/files/spamilter.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# +if ! test -x %%PREFIX%%/bin/spamilter +then + exit 0 +fi +case "$1" in +start) + rm -f /tmp/Spamilter.pid + %%PREFIX%%/bin/spamilter && + echo -n ' spamilter' + ;; +stop) + if test -r /tmp/Spamilter.pid + then + kill `head -1 /tmp/Spamilter.pid` + else + echo " spamilter: not running" 2>&1 + fi + rm -f /tmp/Spamilter.pid + ;; +reload) + if test -r /tmp/Spamilter.pid + then + kill -USR1 `head -1 /tmp/Spamilter.pid` + else + echo " spamilter: not running" 2>&1 + fi + ;; +*) + echo "Usage: ${0##*/}: { start | stop | reload }" >&2 + exit 64 + ;; +esac diff --git a/mail/spamilter/pkg-descr b/mail/spamilter/pkg-descr new file mode 100644 index 000000000000..225f9162b963 --- /dev/null +++ b/mail/spamilter/pkg-descr @@ -0,0 +1,24 @@ +Spamilter is a Sendmail milter written entierly in C, and therefore +is faster and less cpu intensive than other interperative based solutions. + +It blocks spam using the following methods; + + * Configurable Realtime DNS Blacklists + * Sender Address verification + * Configurable Black and White lists + * Invalid MTA hostname verfication + * Basic Virus/Worm file attachment rejection for files ending + in .pif, .scr, etc.. via MsExtChk filter + * SPF via libspf + +Also; + + * Realtime firewall blocking of MTA hosts with invalid host names via + MtaHostIpfw filter + * Realtime rate limited connection blocking via firewall rule injection + +All actions are logged via syslog with both the sender and the recipient. +From this, report generation and notification to recipients showing + activity becomes extremely simple. + +WWW: http://www.wanlink.com/spamilter/index.php |