clamsmtp 1.8: Add clamsmtp, an smtp proxy with virus scanning support
authorJamie Lenehan <lenehan@twibble.org>
Wed, 11 Oct 2006 07:43:14 +0000 (07:43 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Wed, 11 Oct 2006 07:43:14 +0000 (07:43 +0000)
cia clamav (clamad-daemon). It has optional support transparent
proxying as well.

packages/clamsmtp/.mtn2git_empty [new file with mode: 0644]
packages/clamsmtp/clamsmtp_1.8.bb [new file with mode: 0644]
packages/clamsmtp/files/.mtn2git_empty [new file with mode: 0644]
packages/clamsmtp/files/clamsmtp.init [new file with mode: 0644]
packages/clamsmtp/files/doc.configure.txt [new file with mode: 0644]
packages/clamsmtp/files/update-config.patch [new file with mode: 0644]

diff --git a/packages/clamsmtp/.mtn2git_empty b/packages/clamsmtp/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/clamsmtp/clamsmtp_1.8.bb b/packages/clamsmtp/clamsmtp_1.8.bb
new file mode 100644 (file)
index 0000000..38103de
--- /dev/null
@@ -0,0 +1,40 @@
+DESCRIPTION = "ClamSMTP is an SMTP filter that allows you to check for \
+viruses using the ClamAV anti-virus software. It accepts SMTP connections \
+and forwards the SMTP commands and responses to another SMTP server. The \
+'DATA' email body is intercepted and scanned before forwarding. ClamSMTP \
+has an optional transparent proxy mode."
+HOMEPAGE = "http://memberwebs.com/nielsen/software/clamsmtp/"
+SECTION = "network"
+LICENSE = "BSD"
+DEPENDS = "clamav"
+RDEPENDS_${PN} = "clamav-daemon"
+PR = "r1"
+
+SRC_URI = "http://memberwebs.com/nielsen/software/clamsmtp/clamsmtp-${PV}.tar.gz \
+           file://update-config.patch;patch=1 \
+           file://clamsmtp.init \
+           file://doc.configure.txt"
+
+inherit autotools update-rc.d
+
+do_configure () {
+        # no autoreconf please
+        aclocal
+        autoconf
+        libtoolize --force
+        oe_runconf
+}
+do_install_append () {
+        install -m 0755 -d ${D}${sysconfdir}/init.d \
+                           ${D}${docdir}/clamsmtp
+        install -m 755 ${WORKDIR}/clamsmtp.init ${D}${sysconfdir}/init.d/clamsmtpd
+        install -m 644 doc/clamsmtpd.conf ${D}${sysconfdir}/clamsmtpd.conf
+        install -m 644 README ${D}${docdir}/clamsmtp
+        install -m 644 ${WORKDIR}/doc.configure.txt ${D}${docdir}/clamsmtp/configure.txt
+        install -m 644 scripts/virus_action.sh ${D}${docdir}/clamsmtp
+}
+
+CONFFILES_${PN} = "${sysconfdir}/clamsmtpd.conf"
+
+INITSCRIPT_NAME = "clamsmtpd"
+INITSCRIPT_PARAMS = "defaults 65 35"
diff --git a/packages/clamsmtp/files/.mtn2git_empty b/packages/clamsmtp/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/clamsmtp/files/clamsmtp.init b/packages/clamsmtp/files/clamsmtp.init
new file mode 100644 (file)
index 0000000..7f30d1f
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+DAEMON=/usr/sbin/clamsmtpd
+CLAMSMTPD_CONFIG=/etc/clamsmtpd.conf
+PIDFILE=/var/run/clamav/clamsmtpd.pid
+NAME="clamsmtpd"
+DESC="ClamSMTPD"
+
+test -r /etc/default/$NAME && . /etc/default/$NAME
+test -x "$DAEMON" || exit 0
+test ! -r "$CLAMSMTPD_CONFIG" && exit 0
+        
+case "$1" in
+  start)
+    echo "Starting $DESC: "
+    start-stop-daemon --oknodo -S -x $DAEMON -- -p $PIDFILE -f $CLAMSMTPD_CONFIG
+    echo "$NAME."
+    ;;
+
+  stop)
+    echo "Stopping $DESC:"
+    start-stop-daemon -K -p $PIDFILE
+    ;;
+
+  restart)
+    $0 stop >/dev/null 2>&1
+    $0 start
+    ;;
+
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 0
+    ;;
+esac
diff --git a/packages/clamsmtp/files/doc.configure.txt b/packages/clamsmtp/files/doc.configure.txt
new file mode 100644 (file)
index 0000000..b06487f
--- /dev/null
@@ -0,0 +1,15 @@
+The following items needs to be considered when using clamsmtp:
+
+1. Scanning is done via clamd (clamav-daemon)
+
+   The clamd daemon must be running for scanning to take place.
+
+2. Transparent proxy
+
+   For transparent proxying you need an IP tables rule such as:
+
+     iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 10025
+
+   where eth0 is the incomming port, and 10025 is the port that clamsmtpd
+   is running on. Also remember to enable transparent proxy support in the
+   configuration file.
diff --git a/packages/clamsmtp/files/update-config.patch b/packages/clamsmtp/files/update-config.patch
new file mode 100644 (file)
index 0000000..dd67c39
--- /dev/null
@@ -0,0 +1,23 @@
+Run as the clamav user.
+Use the sock that clamd actually creates.
+
+--- clamsmtp-1.8/doc/clamsmtpd.conf    2006/10/11 06:43:31     1.1
++++ clamsmtp-1.8/doc/clamsmtpd.conf    2006/10/11 06:44:04
+@@ -29,7 +29,7 @@
+ #Listen: 0.0.0.0:10025
+ # The address clamd is listening on
+-#ClamAddress: /var/run/clamav/clamd
++ClamAddress: /var/run/clamav/clamd.ctl
+ # A header to add to all scanned email
+ #Header: X-Virus-Scanned: ClamAV using ClamSMTP
+@@ -47,7 +47,7 @@
+ #TransparentProxy: off
+ # User to switch to
+-#User: clamav
++User: clamav
+ # Virus actions: There's an option to run a script every time a virus is found. 
+ # !IMPORTANT! This can open a hole in your server's security big enough to drive