Hi @ everyone,

GOTCHA !

Finally, I found the solution myself: The issue is in the systemd spamassassin.service unit file of Arch Linux! This is how /usr/lib/systemd/system/spamassassin.service looks like:

[Unit]
Description=Spamassassin daemon
After=syslog.target network.target

[Service]
ExecStart=/usr/bin/vendor_perl/spamd -x -u spamd -g spamd
StandardOutput=null
StandardError=null
Restart=always

[Install]
WantedBy=multi-user.target

Looking at https://spamassassin.apache.org/full/3.0.x/dist/doc/spamd.html , it isn't clear what exactly "-x" is doing, since it is listed within one single line of two opposite clear-text options:

"""
-x, --nouser-config, --user-config
Turn off(on) reading of per-user configuration files (user_prefs) from the user's home directory. The default behaviour is to read per-user configuration from the user's home directory.
"""

So, -x could have meant both, to turn this on or off in my reading.

More clearly this is written in the manpage of spamd:

-x, --nouser-config               Disable user config files

Seems as if when -x is set, "allow_user_rules 1" neither has any effect, nor is a warning printed anywhere that there are opposite options in place or ignored, nor has this apeared in Debuging output.

I have solved this by

1. cp /usr/lib/systemd/system/spamassassin.service /etc/systemd/system/
2. Changed "ExecStart=" from "/usr/bin/vendor_perl/spamd -x -u spamd -g spamd" to "/usr/bin/vendor_perl/spamd -u spamd -g spamd"
3. systemctl daemon-reload
4. systemctl restart spamassassin

Now it works again like a charm, running spamd as spamd:spamd, and using spamc.

Thanks @ all for trying to help in this case! :)

Best regards,
Marc

Am 09.09.2015 um 08:46 schrieb Marc Richter:
Hi everyone,

I'm running SA 3.4.1 with Perl 5.22.0 .
It works quite well, but since a few weeks, it looks like my user_prefs
isn't taken into account by SA anymore. Let's show this by example:

There are *lots* of blacklist_from entries in there; one of them is:

blacklist_from          *@neuronation.*

Today, I got another mail with the following (relevant) headers:

X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on
     tango012.marc-richter.info
X-Spam-Level: ***
X-Spam-Status: No, score=3.6 required=4.0
tests=BAYES_99,BAYES_999,DKIM_SIGNED,
  DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,
  RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_PASS,URIBL_BLOCKED
     autolearn=no autolearn_force=no version=3.4.1
From: NeuroNation <mai...@neuronation.de>
Date: Wed, 09 Sep 2015 06:05:02 +0000 (UTC)

Thus, this mail should get +100 for matching my blacklist_from entry.
But, as you can see, it isn't.

When I'm running "spamassassin --test-mode < my_maildir_file", I get
expected results:

spamassassin --test-mode < .maildir/cur/msg.SbGC\:2\,S

[...]
Inhaltsanalyse im Detail:   (99.9 Punkte, 3.0 ben�tigt)

Pkte Regelname              Beschreibung
---- ----------------------
--------------------------------------------------
  0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL
was blocked.
                             See
http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
                              for more information.
                             [URIs: neuronation.de]
-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [192.254.116.16 listed in wl.mailspike.net]
  100 USER_IN_BLACKLIST      From: address is in the user's black-list
  0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail
                             domains are different
-0.0 SPF_PASS               SPF: Senderechner entspricht SPF-Datensatz
  0.0 RP_MATCHES_RCVD        Envelope sender domain matches handover
relay domain
  0.0 HTML_MESSAGE           BODY: Nachricht enth�lt HTML
-0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature
from author's
                             domain
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not
necessarily valid
-0.1 DKIM_VALID             Message has at least one valid DKIM or DK
signature
-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders

SA is started by postfix; in the master.cf of postfix there are these
lines:

smtp      inet  n    -    n    -    -    smtpd -o
content_filter=spamassassin
spamassassin
     unix  -    n    n    -    -    pipe
     flags=Rq user=spamfilter argv=/home/spamfilter/filter.sh -oi -f
${sender} ${recipient}

/home/spamfilter/filter.sh contains:

#!/bin/sh
# filter.sh
#
# This script redirects mail flagged as spam to a separate account
# You must first create a user account named "spamvac" to hold the
flagged mail
SENDMAIL="/usr/sbin/sendmail -i"
SPAMASSASSIN=/usr/bin/vendor_perl/spamc
COMMAND="$SENDMAIL $@"
USER=`echo $COMMAND | awk '{ print $NF }' | sed 's/@.*$//'`
NEW_COMMAND=`echo $COMMAND | awk '{ $6 = "spamfilter"; NF = 6; print }'`
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
umask 077
OUTPUT="`mktemp /tmp/mailfilter.XXXXXXXXXX`"
if [ "$?" != 0 ]; then
         /usr/bin/logger -s -p mail.warning -t filter "Unable to create
temporary file."
         exit $EX_TEMPFAIL
fi
# Clean up when done or when aborting.
trap "rm -f $OUTPUT" EXIT SIGTERM
$SPAMASSASSIN -x -E -u $USER > $OUTPUT
return="$?"
if [ "$return" == 1 ]; then
         $NEW_COMMAND < $OUTPUT
         exit $?
elif [ "$return" != 0 ]; then
         /usr/bin/logger -s -p mail.warning -t filter "Temporary
SpamAssassin failure (spamc return $return)"
         exit $EX_TEMPFAIL
fi
$SENDMAIL "$@" < $OUTPUT
exit $?

SA should have access to my user_prefs; these are the groups for the
user "spamfilter":
tango012 ~ # groups spamfilter
users spamd
tango012 ~ #

The full path-permission to my user_prefs are:
ww@tango012 ~ $ ls -ld /home /home/Whitewolf_Fox
/home/Whitewolf_Fox/.spamassassin
/home/Whitewolf_Fox/.spamassassin/user_prefs
drwxr-xr-x 13 root root  4096 23. Jul 10:36 /home
drwxr-xr-x 27 ww   users 4096  9. Sep 08:32 /home/Whitewolf_Fox
drwxrwx---  2 ww   spamd 4096  9. Sep 08:32
/home/Whitewolf_Fox/.spamassassin
-rw-rw----  1 ww   spamd 8622  4. Sep 15:15
/home/Whitewolf_Fox/.spamassassin/user_prefs
ww@tango012 ~ $

Standing here, I'm out of ideas, since this looks all good to me.

Can somebody imagine what's wrong here?

Best regards,
Marc

Reply via email to