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