Author: Humphrey Mpairwe
Last Updated: Wed, Sep 29, 2021SpamAssassin is an open-source mail filter that identifies spam emails using a wide range of heuristic tests. This guide explains how to install SpamAssassin on Ubuntu 20.04 LTS or 21.04.
Install SpamAssassin.
$ sudo apt-get update
$ sudo apt-get install spamassassin spamc -y
Add a SpamAssassin user and disable the login.
$ sudo adduser spamd --disabled-login
Assign the spamd
user account to SpamAssassin and set the log and default home directories.
Edit the configuration settings.
$ sudo nano /etc/default/spamassassin
Find the line:
ENABLED=1
Uncomment it by removing #
and change the value from 1
to 0
.
ENABLED=0
Find the line:
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
Change it to include the SpamAssassin user account and log files directory.
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /home/spamd/ -s /home/spamd/spamd.log"
Find the line:
CRON=0
Change the value from 0
to 1
.
CRON=1
Save and close the file.
Make a backup of the SpamAssassin local configuration file.
$ sudo mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.bk
Create a new SpamAssassin local configuration file.
$ sudo nano /etc/spamassassin/local.cf
Paste the information below to the file.
rewrite_header Subject ***** SPAM _SCORE_ *****
report_safe 0
required_score 5.0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
use_dcc 0
use_pyzor 0
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
endif
Save and close the file.
Edit your Postfix configuration file.
$ sudo nano /etc/postfix/master.cf
Locate these entries.
smtp inet n - y - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
submission inet n - y - - smtpd
Below the smtp
configuration, add a SpamAssassin content filter.
smtp inet n - y - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Save and close the file.
Restart Postfix and enable SpamAssassin to run at system startup.
$ sudo systemctl restart postfix.service
$ sudo systemctl enable spamassassin.service
$ sudo systemctl start spamassassin.service
To learn more about SpamAssassin, please see the official website.