I'm submitting this in the hope it may be of use to someone, and in the open source spirit of "release early, release often." I spent several hours yesterday installing qmail-scanner and building RPMs for it, so maybe this will save someone out there some time. It is by no means finished (I just started using qmail-scanner yesterday!), so please treat it as a guide. Maybe once some improvements are made and it is more fully tested, Jason can post it on the home page.
Thanks for the great software. -Adi
%define name qmail-scanner %define real_name qmail-scanner %define version 1.11 %define real_version 1.11 %define release 2 %define initdir %{_initrddir} Summary: Qmail-Scanner is a content scanner for Qmail Name: %{name} Version: %{version} Release: %{release} License: GPL Group: Networking/Mail URL: http://qmail-scanner.sourceforge.net/ Source: http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.11.tgz Patch: qmail-scanner-quarattach_tabs.patch Requires: perl >= 5.005_03 perl-Time-HiRes qmail daemontools /usr/bin/reformime Buildroot: %{_tmppath}/%{name}-root Prefix: %{_prefix} BuildPrereq: perl >= 5.005_03 qmail Distribution: Qmail-Scanner %define __find_provides /usr/lib/rpm/find-provides.perl %define __find_requires /usr/lib/rpm/find-requires.perl %description Qmail-Scanner, (also known as scan4virus) is an addon that enables a Qmail Email server to scan all gatewayed Email for certain characteristics (i.e. a content scanner). It is typically used for its anti-virus protection functions, in which case it is used in conjunction with commercial virus scanners. but also enables a site (at a server/site level) to react to Email that contains specific strings in particular headers, or particular attachment filenames or types (e.g. *.VBS attachments). It also can be used as an archiving tool for auditing or backup purposes. Qmail-Scanner is integrated into the mail server at a lower level than some other Unix-based virus scanners, resulting in better performance. It is capable of scanning not only locally sent/received Email, but also Email that crosses the server in a relay capacity. %prep -q %setup -q -n %{real_name}-%{real_version} %patch %build yes | ./configure --archive yes %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/var/spool/qmailscan maildirmake $RPM_BUILD_ROOT/var/spool/qmailscan/quarantine maildirmake $RPM_BUILD_ROOT/var/spool/qmailscan/working maildirmake $RPM_BUILD_ROOT/var/spool/qmailscan/archive install -m 0644 quarantine-attachments.txt \ $RPM_BUILD_ROOT/var/spool/qmailscan/quarantine-attachments.txt chown -R qmailq:qmail $RPM_BUILD_ROOT/var/spool/qmailscan/ mkdir -p $RPM_BUILD_ROOT/var/qmail/bin #(i.e same perms as qmail-queue) install -m 4755 qmail-scanner-queue.pl \ $RPM_BUILD_ROOT/var/qmail/bin/qmail-scanner-queue.pl chown qmailq:qmail $RPM_BUILD_ROOT/var/qmail/bin/qmail-scanner-queue.pl [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress %files #%defattr(-,root,root) %doc CHANGES COPYING FAQ.php manual-install.php perlscanner.php README README.html TODO.php /var/qmail/bin/qmail-scanner-queue.pl /var/spool/qmailscan/ %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %post PATH="/usr/local/bin:$PATH" export PATH # initialize the version file setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -z # initialize the perlscanner database setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -g if svc-isup smtpd; then if ! [ -e /service/smtpd/env/ ]; then mkdir /service/smtpd/env/ fi echo "/var/qmail/bin/qmail-scanner-queue.pl" > /service/smtpd/env/QMAILQUEUE echo "" echo "qmail-scanner-queue.pl has been added to /service/smtpd/env/QMAILQUEUE" echo "Now, you need to add 'envdir /service/smtpd/env' to your" echo "/service/smtpd/run script, and then restart qmail-smtpd with:" echo " svc-stop smtpd; svc-start smtpd" echo "" else echo "" echo "Now update your Qmail startup script(s) (e.g. /etc/rc.d/init.d/qmail )" echo "so that Qmail knows to use qmail-scanner-queue.pl instead of qmail-queue." echo "See the README file for details." echo "" fi %postun rm -f /var/spool/qmailscan/qmail-scanner-queue-version.txt rm -f /var/spool/qmailscan/quarantine-attachments.db if [ -e /service/smtpd/env/QMAILQUEUE ] && [ `cat /service/smtpd/env/QMAILQUEUE` = "/var/qmail/bin/qmail-scanner-queue.pl" ] then rm -f /service/smtpd/env/QMAILQUEUE fi %changelog * Tue Apr 30 2002 Adi Fairbank <[EMAIL PROTECTED]> - made a few improvements for release 2 * Mon Apr 29 2002 Adi Fairbank <[EMAIL PROTECTED]> - initial RPM spec file
--- quarantine-attachments.txt~ Wed Mar 6 18:17:35 2002 +++ quarantine-attachments.txt Mon Apr 29 16:22:38 2002 @@ -71,11 +71,11 @@ #The following matches Date: headers that are over 100 chars in length #these are impossible in the wild .{100,} Virus-Date: MIME Header Buffer Overflow -.{100,} Virus-Mime-Version: MIME Header Buffer Overflow -.{100,} Virus-Message-ID: MIME Header Buffer Overflow +.{100,} Virus-Mime-Version: MIME Header Buffer Overflow +.{100,} Virus-Message-ID: MIME Header Buffer Overflow .{100,} Virus-From: MIME Header Buffer Overflow -.{100,} Virus-Return-Path: MIME Header Buffer Overflow -.{100,} Virus-Resent-Date: MIME Header Buffer Overflow +.{100,} Virus-Return-Path: MIME Header Buffer Overflow +.{100,} Virus-Resent-Date: MIME Header Buffer Overflow # #Let's stop that nasty BadTrans virus from uploading your keystrokes... [EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED]|[EMAIL PROTECTED] Virus-To: BadTrans Trojan exploit!