First, some thanks to those that have already posted and given me some 
insights along the way in getting

* dovecot2-2.2.15_3              Secure, fast and powerful IMAP and POP3 
server
* postfix-2.11.3_4,1             Secure alternative to widely-used Sendmail
* dspam-3.10.2                   Bayesian spam filter
* mysql56-server-5.6.22          Multithreaded SQL database (server)

up and running (mainly) together, jailed on FreeBSD 9.3

I've got postfix after-queue filtering the mail through dspam as per the 
"advanced " described at http://www.postfix.org/FILTER_README.html.

The mail, both innocent and spam, is successfully delivered through 
procmail to Maildir and is managed through Dovecot.

As I have multiple aliases that all get delivered to the same system 
user, I have configured a MySQL back-end with the addition of the 
virtual_users.sql schema for dsmap_virtual_uids (the one that has the 
uid generated through auto_increment). This has been enabled in 
dspam.conf. (Yes, better error messages than "received invalid result 
(!DSR_ISSPAM && !DSR_ISINNOCENT): -2" would have been helpful.)



I am stumped as to how to debug further though, as when I try to train 
dspam:

root@mail:/ # dspam --source=error 
--signature=10,54df1c80752941515871655 --class=spam --debug
(or)
root@mail:/ # dspamc --source=error 
--signature=10,54df1c80752941515871655 --class=spam --debug

I get

Feb 14 08:01:58 mail dspam[53601]: Unable to determine the destination user
Feb 14 08:01:58 mail dspam[53601]: DSPAM agent misconfigured: aborting

There aren't any additional clues that I can see in maillog or in 
dspam.debug


The signature pretty clearly exists in the database, as does the 
associated UID


mysql> SELECT uid, signature, length, created_on FROM 
dspam_signature_data WHERE signature='10,54df1c80752941515871655' ;
+-----+----------------------------+--------+------------+
| uid | signature                  | length | created_on |
+-----+----------------------------+--------+------------+
|  10 | 10,54df1c80752941515871655 |  37216 | 2015-02-14 |
+-----+----------------------------+--------+------------+
1 row in set (0.00 sec)

mysql> SELECT * FROM dspam_virtual_uids WHERE uid='10' ;
+-----+--------------------+
| uid | username           |
+-----+--------------------+
|  10 | free...@wagsky.com |
+-----+--------------------+
1 row in set (0.00 sec)


(That email address is from before the days of spam, so it already gets 
hit pretty hard, and I'm not "exposing" it any more here).

Other signatures for other uids behave the same way.



Any suggestions on where to explore from here to resolve this?

Thanks,

Jeff


(Needless to say, I'm rapidly building up a lot of spam I can use for 
training!)




root@mail:/ # dspam --version

DSPAM Anti-Spam Suite 3.10.2 (agent/library)

Copyright (C) 2002-2012 DSPAM Project
http://dspam.sourceforge.net.

DSPAM may be copied only under the terms of the GNU Affero General Public
License, a copy of which can be found with the DSPAM distribution kit.

Configuration parameters:  '--sysconfdir=/usr/local/etc' 
'--with-logdir=/var/log/dspam' '--with-dspam-home=/var/db/dspam' 
'--with-dspam-home-owner=root' '--with-dspam-home-group=mail' 
'--with-dspam-home-mode=0770' '--with-dspam-owner=root' 
'--with-dspam-group=mail' '--enable-syslog' '--enable-debug' 
'--enable-daemon' '--enable-clamav' 
'--with-sqlite-includes=/usr/local/include' 
'--with-sqlite-libraries=/usr/local/lib' 
'--with-mysql-includes=/usr/local/include/mysql' 
'--with-mysql-libraries=/usr/local/lib/mysql' 
'--enable-client-compression' 
'--with-storage-driver=sqlite3_drv,hash_drv,mysql_drv' 
'--enable-virtual-users' '--with-dspam-mode=4510' '--prefix=/usr/local' 
'--mandir=/usr/local/man' '--infodir=/usr/local/info/' 
'--build=amd64-portbld-freebsd9.2' 
'build_alias=amd64-portbld-freebsd9.2' 'CC=cc' 'CFLAGS=-pipe -g 
-fstack-protector -fno-strict-aliasing' 'LDFLAGS= -L/usr/local/lib 
-fstack-protector' 'LIBS=' 'CPPFLAGS=-I/usr/local/include' 'CPP=cpp'




root@mail:/ # egrep -v '^#' /usr/local/etc/postfix/master.cf | egrep '^.+$'
smtp      inet  n       -       n       -       -       smtpd
    -o content_filter=lmtp:unix:dspam/dspam.sock
    -o receive_override_options=no_address_mappings
localhost:24 inet  n    -       n       -       10      smtpd
   -o syslog_name=postfix/reinject
   -o content_filter=
   -o 
receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
   -o smtpd_helo_restrictions=
   -o smtpd_client_restrictions=
   -o smtpd_sender_restrictions=
   # Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
   -o smtpd_relay_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
[...]



root@mail:/ # egrep -v '^#' /usr/local/etc/dspam.conf | egrep '^.+$'
Home /var/db/dspam
StorageDriver /usr/local/lib/dspam/libmysql_drv.so
DeliveryHost        127.0.0.1
DeliveryPort        24
DeliveryIdent        localhost
DeliveryProto        SMTP
OnFail error
Trust root
Trust dspam
TrainingMode teft
TestConditionalTraining on
Feature whitelist
Feature tb=5
Algorithm graham burton
Tokenizer osb
PValue bcr
WebStats on
Preference "trainingMode=TEFT"        # { TOE | TUM | TEFT | NOTRAIN } 
-> default:teft
Preference "spamAction=tag"        # { quarantine | tag | deliver } -> 
default:quarantine
Preference "spamSubject=[SPAM]"        # { string } -> default:[SPAM]
Preference "statisticalSedation=5"    # { 0 - 10 } -> default:0
Preference "enableBNR=on"        # { on | off } -> default:off
Preference "enableWhitelist=on"        # { on | off } -> default:on
Preference "signatureLocation=headers"    # { message | headers } -> 
default:message
Preference "tagSpam=off"        # { on | off }
Preference "tagNonspam=off"        # { on | off }
Preference "showFactors=off"        # { on | off } -> default:off
Preference "optIn=off"            # { on | off }
Preference "optOut=off"            # { on | off }
Preference "whitelistThreshold=10"    # { Integer } -> default:10
Preference "makeCorpus=off"        # { on | off } -> default:off
Preference "storeFragments=off"        # { on | off } -> default:off
Preference "localStore="        # { on | off } -> default:username
Preference "processorBias=on"        # { on | off } -> default:on
Preference "fallbackDomain=off"        # { on | off } -> default:off
Preference "trainPristine=off"        # { on | off } -> default:off
Preference "optOutClamAV=off"        # { on | off } -> default:off
Preference "ignoreRBLLookups=off"    # { on | off } -> default:off
Preference "RBLInoculate=off"        # { on | off } -> default:off
Preference "notifications=off"        # { on | off } -> default:off
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride fallbackDomain
AllowOverride ignoreGroups
AllowOverride ignoreRBLLookups
AllowOverride localStore
AllowOverride makeCorpus
AllowOverride optIn
AllowOverride optOut
AllowOverride optOutClamAV
AllowOverride processorBias
AllowOverride RBLInoculate
AllowOverride showFactors
AllowOverride signatureLocation
AllowOverride spamAction
AllowOverride spamSubject
AllowOverride statisticalSedation
AllowOverride storeFragments
AllowOverride tagNonspam
AllowOverride tagSpam
AllowOverride trainPristine
AllowOverride trainingMode
AllowOverride whitelistThreshold
AllowOverride dailyQuarantineSummary
AllowOverride notifications
MySQLServer        /tmp/mysql.sock
MySQLUser        dspam
MySQLPass        <redacted>
MySQLDb            dspam
MySQLCompress        true
MySQLReconnect        true
MySQLConnectionCache    10
MySQLVirtualTable        dspam_virtual_uids
MySQLVirtualUIDField        uid
MySQLVirtualUsernameField    username
MySQLUIDInSignature    on
HashRecMax        98317
HashAutoExtend        on
HashMaxExtents        0
HashExtentSize        49157
HashPctIncrease        10
HashMaxSeek        10
HashConnectionCache    10
Notifications    off
PurgeSignatures 14    # Stale signatures
PurgeNeutral    90    # Tokens with neutralish probabilities
PurgeUnused    90    # Unused tokens
PurgeHapaxes    30    # Tokens with less than 5 hits (hapaxes)
PurgeHits1S    15    # Tokens with only 1 spam hit
PurgeHits1I    15    # Tokens with only 1 innocent hit
LocalMX 127.0.0.1
LocalMX 192.168.6.126
SystemLog    on
UserLog        on
Opt out
ServerMode auto  # see postfix.txt
ServerParameters    "--deliver=innocent,spam"
ServerDomainSocketPath    "/var/spool/postfix/dspam/dspam.sock"
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off
GroupConfig /var/db/dspam/group




------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Dspam-user mailing list
Dspam-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-user

Reply via email to