Hi,

I've been meaning to try dspam for a while but always have been hesitant to try 
because of somewhat confusing documentation, but finally I tried it today, and 
it seems to work, barely.

Before I have dspam, my mail server setup is running:

        smtp -> dkim-filter -> dovecot with sieve plugin (virtual user with 
psql)


By having dspam, I imagine, I would have it somewhat like this:

        smtp -> dkim-filter -> dspam -> dovecot with sieve plugin


Before I talk about my problems, let me show my configurations:
The server itself is running on:
        - Ubuntu 8.04 LTS
        - Dspam 3.6.8 installed via Ubuntu repo
        - Postfix 2.5.1
        - Dovecot 1.0.10
        - dkim-filter 2.5.4

in /etc/dspam/dspam.conf, I have:
StorageDriver /usr/lib/dspam/libpgsql_drv.so
TrustedDeliveryAgent "/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}"
UntrustedDeliveryAgent "/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}"
DeliveryHost        127.0.0.1
DeliveryPort        10026
DeliveryIdent       localhost
DeliveryProto       SMTP
OnFail error
Trust root
Trust dspam
Trust vmail
Trust postfix 
Trust dovecot
TrainingMode teft
TestConditionalTraining on
Feature chained
Feature whitelist
Algorithm graham burton
PValue graham
SupressWebStats on
Preference "spamAction=tag"
Preference "signatureLocation=headers"  # 'message' or 'headers'
Preference "showFactors=off"
Preference "spamSubject=[SPAM]"
ServerMode auto
ServerParameters        "--deliver=innocent"
ServerIdent             "localhost.localdomain"
ServerDomainSocketPath  "/var/spool/postfix/var/run/dspam.sock"

in /etc/dspam/dspam.d/pgsql.conf, I have:
PgSQLServer     127.0.0.1
#PgSQLPort       5432
PgSQLUser      ...
PgSQLPass      ...
PgSQLDb        ...
PgSQLUIDInSignature     on
PgSQLVirtualTable          dspam_virtual_uids
PgSQLVirtualUIDField       uid
PgSQLVirtualUsernameField  username

with this setup, dspam is running fine.

Then, I hooked it up to Postfix by having these...

master.cf:
        smtp      inet  n       -       -       -       -       smtpd
                -o content_filter=lmtp:unix:/var/run/dspam.sock
        
        [..... and right before the dovecot line, I have:]
        
        dspam                 unix    -       n       n       -       -    pipe
                flags=Ru user=dspam argv=/usr/bin/dspam
    --client
    --deliver=innocent,spam
    --user ${recipient}
    --mail-from=${sender}
        localhost:10026 inet  n -       n       -       -        smtpd
    -o content_filter=
    -o 
receive_override_options=no_unknown_recipient_checks,no_header_body_checks
    -o smtpd_helo_restrictions=
    -o smtpd_client_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8
        dspam-retrain   unix    -       n       n       -       10      pipe
                flags=Rhq user=dspam argv=/usr/bin/dspamc --client --mode=teft 
--class=${nexthop} --source=error --u            ser ${sender}

some additions to main.cf:
        virtual_mailbox_maps = pgsql:/etc/postfix/pgsql/virtual_mailbox_maps.cf 
hash:/etc/postfix/dspam_aliases
        transport_maps = hash:/etc/postfix/transport
        dspam_destination_recipient_limit = 1

        smtpd_recipient_restrictions =
                permit_mynetworks,
                permit_sasl_authenticated,
                reject_non_fqdn_hostname,
                reject_non_fqdn_recipient,
                reject_unauth_destination,
                reject_rbl_client zen.spamhaus.org,
                check_recipient_access pcre:/etc/postfix/dspam_filter_access
                permit

my /etc/postfix/dspam_aliases:
        s...@mydomain.com x
        nos...@mydomain.com   x

my /etc/postfix/transport:
        s...@mydomain.com  dspam-retrain:spam
        nos...@mydomain.com   dspam-retrain:innocent

my /etc/postfix/dspam_filter_access:
        /./ FILTER dspam:dspam


Again, with these setups, both dspam and postfix can run, but not without its 
problems. Hence, my questions :)

1. Whenever there's an incoming mail, I think I perceive it as mail being 
transferred to smtp, gets redirected to dspam, then reinjected to smtp, then 
dovecot for delivery.  my /var/log/mail.log looks like this:

        Aug 25 15:22:59 myhostname postfix/smtpd[24554]: connect from 
web55008.mail.re4.yahoo.com[206.190.58.142]
        Aug 25 15:23:03 myhostname postfix/smtpd[24554]: NOQUEUE: filter: RCPT 
from web55008.mail.re4.yahoo.com[206.190.58.142]: <rez...@mydomain.com>: 
Recipient address triggers FILTER dspam:dspam;                  
from=<rez...@yahoo.com> to=<rez...@mydomain.com> proto=SMTP 
helo=<web55008.mail.re4.yahoo.com>
        Aug 25 15:23:03 myhostname postfix/smtpd[24554]: 4923E11C368: 
client=web55008.mail.re4.yahoo.com[206.190.58.142]
        Aug 25 15:23:05 myhostname postfix/cleanup[24568]: 4923E11C368: 
message-id=<420173.20101...@web55008.mail.re4.yahoo.com>
        Aug 25 15:23:05 myhostname dkim-filter[22819]: 4923E11C368 external 
host web55008.mail.re4.yahoo.com attempted to send as yahoo.com
        Aug 25 15:23:06 myhostname dkim-filter[22819]: 4923E11C368: bad 
signature data
        Aug 25 15:23:06 myhostname postfix/qmgr[24572]: 4923E11C368: 
from=<rez...@yahoo.com>, size=1908, nrcpt=1 (queue active)
        Aug 25 15:23:07 myhostname postfix/smtpd[24554]: disconnect from 
web55008.mail.re4.yahoo.com[206.190.58.142]
        Aug 25 15:23:08 myhostname postfix/smtpd[24579]: connect from 
myhostname.mydomain.com[127.0.0.1]
        Aug 25 15:23:08 myhostname postfix/smtpd[24579]: 566A011C3A4: 
client=myhostname.mydomain.com[127.0.0.1]
        Aug 25 15:23:08 myhostname postfix/cleanup[24568]: 566A011C3A4: 
message-id=<420173.20101...@web55008.mail.re4.yahoo.com>
        Aug 25 15:23:08 myhostname postfix/qmgr[24572]: 566A011C3A4: 
from=<rez...@yahoo.com>, size=2381, nrcpt=1 (queue active)
        Aug 25 15:23:08 myhostname postfix/smtpd[24579]: disconnect from 
myhostname.mydomain.com[127.0.0.1]
        Aug 25 15:23:08 myhostname postfix/pipe[24573]: 4923E11C368: 
to=<rez...@mydomain.com>, relay=dspam, delay=6.9, delays=5.3/0.01/0/1.6, 
dsn=2.0.0, status=sent (delivered via dspam service)
        Aug 25 15:23:08 myhostname postfix/qmgr[24572]: 4923E11C368: removed
        Aug 25 15:23:08 myhostname postfix/pipe[24581]: 566A011C3A4: 
to=<rez...@mydomain.com>, relay=dovecot, delay=0.35, delays=0.15/0.01/0/0.19, 
dsn=2.0.0, status=sent (delivered via dovecot service)
        Aug 25 15:23:08 myhostname postfix/qmgr[24572]: 566A011C3A4: removed

So it looks like the incoming mail is received a few times.. Is this normal? 
Would this cause a "bottleneck" when there are lots of incoming mail at the 
same time? Do you guys have any better solution?

2. I still can't seem to get dspam-retrain to work whenever I forward an 
uncaught spam message to s...@mydomain.com.  When I forward the message, I 
would get:
        
        Aug 25 16:31:25 myhostname postfix/qmgr[24572]: E13E511C3A4: 
from=<rez...@mydomain.com>, size=2854, nrcpt=1 (queue active)
        Aug 25 16:31:25 myhostname dspam[24476]: Unable to find a valid 
signature. Aborting.
        Aug 25 16:31:25 myhostname dspam[24476]: process_message returned error 
-5.  dropping message.
        Aug 25 16:31:25 myhostname postfix/lmtp[26099]: E13E511C3A4: 
to=<s...@mydomain.com>, relay=myhostname.mydomain.com[/var/run/dspam.sock], 
delay=1, delays=0.92/0.01/0/0.08, dsn=2.6.0, status=sent (250 2.6.0             
       <s...@mydomain.com> Message accepted for delivery)

But, when I looked at the header of the message I was forwarding, it had a 
"X-DSPAM-Signature". But why didn't it see it as a valid signature?

3. The last thing I notice is, whenever there's a warning or error (like the 
message above, or if there's a ehlo required error), dspam would spit something 
like this on stdout:

        WARNING:  nonstandard use of \\ in a string literal
       LINE 1: ... '2,4c74dee8244761101518019', 3492, CURRENT_DATE, 
'\\000\\00...
                                                              ^
        HINT:  Use the escape string syntax for backslashes, e.g., E'\\'. 

I assume it was caused by the pgsql_objects.sql but I have no idea how to fix 
them.

I hope I gave enough information on where I'm having problems with, and I 
really appreciate your help to assist me to sort out my problems.

Thank you,
Reza
------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Dspam-user mailing list
Dspam-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-user

Reply via email to