Dan Mensom skrev, on 01-05-2007 04:15:

"Well", he proffered cautiously, "my sites don't have this problem and they're using a shared group and retraining dspam as the owner of said shared group, so no message is ever retrained as the original recipient and dspam works flawlessly".

Hrmm, so I'm confused, you mean all your users share the same training
data?

Yes.

How do you deliver to dspam in this case? --user nobody?

My sites (home/test and a high school in Amsterdam with around 350 active mail users out of 1150+ people) use a shared group. This is from my home machine (the domain is leerlingen, the machine's name is tru).

leerlingen:shared:[EMAIL PROTECTED]

School's (the domain is barlaeus.nl, users are [EMAIL PROTECTED]).

barlaeus:shared:*barlaeus.nl

Both work fine.

My users don't use the GUI, maildrop filters mail to their IMAP INBOX, dspam-adjudged spam to their IMAP quarantine folder. They move wrongly-adjudged messages (both spam and innocent - i.e. false positives) to a rejudge folder and a cron script gives it to dspam for retraining every hour. The retrain-user is the group user, barlaeus.

Although the DB only has a single user, there's enough data in each message to make sure that every individual user is judged separately; it works very well, there are very few false positives and the results are very satisfactory:

1029 [root:mercurius.intern] /etc/cron.hourly # dspam_stats -H barlaeus
barlaeus:
                TP True Positives:          17246
                TN True Negatives:          97652
                FP False Positives:           434
                FN False Negatives:           386
                SC Spam Corpusfed:           3415
                NC Nonspam Corpusfed:        3002
                TL Training Left:               0
                SHR Spam Hit Rate          97.81%
                HSR Ham Strike Rate:        0.44%
                OCA Overall Accuracy:      99.29%

Using a shared group cuts down the DB size, the InnoBASE data file is around 1.6 GB.

Do you use
postfix, btw?

Both sites are using Postfix 2.4.

Mind pasting your relevant MTA config lines?

Postfix doesn't have much to do with dspam; dspam runs as a daemon, an smtpd listener passes to dspam as part of a pre-queue content filter via lmtp, dspam (3.8/MySQL) processes and passes back to the last listener and Postfix sends to Courier maildrop via a pipe:

1st smtpd listener -> amavisd-new/ClamAV/Sophos/BitDefender -> second smtpd listener, 2nd listener (sorry for line wrapping):

:10025    inet            n       -       n       -       100     smtpd
        -o content_filter=lmtp:[127.0.0.1]:24
        -o lmtp_send_xforward_command=yes
        -o lmtp_destination_concurrency_limit=5
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_error_sleep_time=0
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o disable_mime_output_conversion=yes

:10026     inet            n       -       n       -       100     smtpd
        -o content_filter=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_error_sleep_time=0
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o receive_override_options=no_unknown_recipient_checks
        -o smtpd_milters=inet:localhost:10004
        -o milter_default_action=tempfail
        -o disable_mime_output_conversion=yes

maildrop   unix            -       n       n       -       -       pipe
        flags=DRhu user=vmail
${recipient} ${extension} ${user} ${nexthop}
argv=/usr/bin/maildrop -w 80 -d ${user} ${sender} ${recipient} ${extension} ${user}

[...]

How is DSPAM 3.8.0? Any major issues? I was a bit leary trying a .0
release.

In fact, 3.8 should have been 3.6.9 with bugfixes to 3.6.8, but Jonz decided on a new version. It's very good and makes my FC6 rpm spec much easier to write for use by all and sundry :)

OT interesting that you're one of the few implementing selinux, having discovered Hitachi's seedit (http://seedit.sourceforge.net/documentation.html) I'm making a renewed effort at it, since it's very necessary for high security. How are you making out?

I use CentOS5's semanage, audit2allow -M and module based policies (see
the RHEL5 manuals for more info). It's not too bad to tune stuff to work,
especially if you tune with setenforce 0. I keep all my daemon's policy
tweaks in separate directories and add to them as needed. However, it does
limit you from doing stuff like executing shell scripts and such from
programs (I have a similar problem with dovecot and script execution).
Obviously allowing shell execution out of the question since shell
spawning is typically the first thing an exploit will do...

Thanks, interesting.

Best,

--Tonni

--
Tony Earnshaw
Email: tonni at hetnet dot nl

Reply via email to