Ian,

The only problem with using clamav-filter (or something appropriate) as a milter, etc. Was it did not fall into what Zimbra designed. Quite frankly I think it would have been a lot smoother with Sendmail+Milter+Clamav+whatever else they wanted.

However, that is not the direction they picked, either for licensing or whatever.

One thing with Zimbra, is you don't exactly get to pick what you want. They throw a ball of software at you, and expect you to work with it. I admit, if I didn't review their code as much, and try and see how it worked. I would have been more oblivious and pleased with Zimbra maybe.

Scott

Ian G Batten wrote:
On 13 Nov 07, at 1335, Adam Tauno Williams wrote:

3. Can't handle high load very well, in fact it handles load horribly.
I have a friend who works at a small shop who reports exactly the same
issue with Zimbra, s..ll...ooo..wwww...

3) ClamAV.  Do note how much email I said we dealt with a minute.  We
didn't get a great deal of email. Maybe 2000 email a day? Not overly
much.  However as the ClamAV database would grow, if you restarted
ClamAV or Zimbra eventually it would take too long for ClamAV to start
and would not listen on the port assigned and would make mail fail to
deliver.  (Ouch huh?)
In defense of CLAMAV I can say that we run it on our SMTP server (not on
the IMAP or groupware server which seems like a bad idea).  It works
well and is pretty stable. If your CLAMAV was causing you this problem
then Zimbra must have boloxed the setup or you just had a bad version.

Clamav-milter works very well for sendmail shops, without any amavis involvement at all. The slow startup bug is an artefact of one particular release: it now comes up in about 15 seconds. Once it's running it's perfectly rapid enough to cope with our complete internal load. clamd-milter can do the parsing of archives, breaking up of MIME etc at least as well as amavisd.

If you don't have an equivalent to clamav-filter for your MTA of choice, then you need to make sure that you start clamd, and then pass the material to be scanned with clamdscan (note the d). clamd will need to be running as a user that can read the temporary files, because the best way to use clamd is to pass filenames over the AF_UNIX domain socket.

We in fact run clamav-milter with its built-in clamd support, for reasons I can't offhand remember. So we fire up clamd, then clamav- milter, then clamav-milter passes temporary files to clamd.

If you have to use amavisd, make sure you tell it to use clamdscan rather than clamscan. The latter does indeed take 10 seconds to fire up.

clamd likes large pages, Solaris fans.

Our milter startup script: there is some local stuff in there.

#!/bin/sh

case "$1" in
start) mv /var/clamav/clamd.log /var/clamav/clamd.log.old
       LD_PRELOAD=mpss.so.1
       MPSSHEAP=4M
       MPSSSTACK=64K
        export LD_PRELOAD MPSSHEAP MPSSSTACK
       newtask -p clam /usr/local/sbin/clamd
       attempt=1
       sleep=5
       while [ $attempt -lt 5 ]; do
          if /usr/local/bin/clamdscan /etc/termcap; then
             break
          else
             attempt=`expr $attempt + 1`
             sleep=`expr $sleep + 5`
             echo sleeping for $sleep seconds, attempt $attempt
             sleep $sleep
          fi
       done

#      [EMAIL PROTECTED] \
#      --postmaster-only \

       newtask -p milter /usr/local/sbin/clamav-milter \
       --dont-blacklist=`/usr/local/bin/fujitsuhosts` \
       --noreject \
       --dont-wait \
       --local \
       --outgoing \
       --quiet \
       --external \
       --pidfile=/var/clamav/milter.pid \
       --whitelist-file=/etc/mail/clamav-whitelist \
       inet:2010

newtask -p spam /usr/perl5/bin/spamd -s local6 -u spamd -x -d --pidfile=/var/run/spamd.pid
       su spamd << \ZZZ
newtask -p milter /usr/local/sbin/spamassassin_milter -p inet: 2002 &
ZZZ
newtask -p milter /usr/local/sbin/mailarchive -u archive -p inet:4001 newtask -p milter /usr/local/sbin/spamtrap -u spamtrap -p inet: 4000

       ;;
stop) for i in /var/clamav/milter.pid /var/run/spamd.pid; do
          test -f $i && kill `cat $i`
       done
       pkill -u spamd
       pkill -u clamav
       pkill -u archive
       pkill -u spamtrap
       ;;
esac





----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


!DSPAM:4739ffa181401346466276!



----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to