Setting up a dedicated spamassassin server

Default Spamassassin install from Ubuntu is a little bit misconfigured and is not suitable for remote Anti-Spam service. So I am writing up the config changes I had to make in order to make it work flawlessly.

1. Make a dedicated user for Spamassassin, default config runs Spamassassin as root, then the executable itself would complain about it and fall back to nobody.

sudo adduser spamd --disabled-login

2. Open /etc/default/spamassassin and edit the following line

OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /home/spamd/ --listen=0.0.0.0 --allowed-ips=(your_server_ip)"

3. Edit /etc/spamassassin/local.cf and Add/Uncomment the following lines to suit your needs

rewrite_header Subject [SPAM]
use_bayes 1

bayes_path /var/spamassassin/bayes_db/bayes
bayes_file_mode 0775

bayes_auto_learn 1

bayes_auto_learn_threshold_nonspam -0.001
bayes_auto_learn_threshold_spam 10.0

4.Make directories for Bayes database and give appropriate permissions

sudo mkdir -p /var/spamassassin/bayes_db
sudo chown -R spamd:spamd /var/spamassassin

5.Start Spamassassin Service

sudo systemctl daemon-reload
sudo systemctl restart spamassassin

Here are some convenient commands to manage your Spamassassin service

Restore Bayes backup data:
sudo -H -u spamd sa-learn –restore spamassassin.backup
Sync Bayes database:
sudo -H -u spamd sa-learn –sync
Learn mail in folder as spam:
sudo -H -u spamd sa-learn –spam –showdots –dir /home/manatails/mail/spam
Learn mail in folder as ham:
sudo -H -u spamd sa-learn –ham –showdots –dir /home/manatails/mail/ham
Print bayes database stats:
sudo -H -u spamd sa-learn –dump magic

In ubuntu logs are stored at /var/log/mail.log

Leave a Reply

Your email address will not be published. Required fields are marked *