How to install and configure SpamAssassin with Postfix in Debian 8

SpamAssassin

1. Introduction

Spamassassin is a spam detection and prevention software intentionally made for incoming email spamming. We can prevent incoming spam mails by using various methods such as making content-matching rules. It flags an email as spam according to the resulting score of the mail which gets during the test.

In this article, We can see how to install and configure Spamassassin 3.4 in Debian 8.

2. Requirement

All the system softwares should be uptodate before starting the installation. Please follow the below commands to update your Debian system.

# apt-get update
# apt-get upgrade

3. Installation

After completing the software update, please install SpamAssassin using the following command :

# apt-get install spamc spamassassin

Thus the installation is completed. You can see the version by executing the commands below :

# spamassassin -V
SpamAssassin version 3.4.0
  running on Perl version 5.20.2

4. Setting Privileges

By default, The SpamAssasin will run under the root. We need to assign it to a low privileged user as a security measure. Executing the below commands one by one :

# groupadd -g 5555 spamd
# useradd -u 5555 -g spamd -s /sbin/nologin -d /usr/local/spamassassin spamd
# mkdir -p /usr/local/spamassassin/log
# chown spamd:spamd -R /usr/local/spamassassin

5. Enable SpamAssasin

To enable SpamAssassin daemon, Open the file /etc/default/spamassassin and edit the option ‘ENABLED=0’ to ‘ENABLED=1’.

6. Configure Spamassassin

Open the file given below :

# vi /etc/spamassassin/local.cf

Add or Change the following parameters and save the file.

rewrite_header Subject *****SPAM*****
required_score 3.0
report_safe 0
use_bayes 1
bayes_auto_learn 1

We have completed the Spamassassin configuration. Let see the postfix configuration.

7. Configure Postfix

Open the postfix master.cf file :

# vi /etc/postfix/master.cf

Search for the line given below :

smtp      inet  n       -       -       -       -       smtpd

Change the line as below :

smtp 	inet  n 	-	-	-	- 	smtpd -o content_filter=spamassassin

Then, add the following line at the end of the file :

spamassassin unix - n n - - pipe
  user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Atlast, Save the file and restart the services :

# service spamassassin restart
# service postfix restart

Now you can see the SpamAssassin starts running :

# netstat -tnulp | grep spam
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 15972/spamassassin.

8. Conclusion

Thus we have completed the installation and configuration of SpamAssassin.

2 Replies to “How to install and configure SpamAssassin with Postfix in Debian 8”

  1. Hey, thanks for this article ! Note that you should use “systemd” instead of a “daemon” for SA.
    “Open the file /etc/default/spamassassin and edit the option ‘ENABLED=0’ to ‘ENABLED=1’”
    sould be :
    # systemctl enable spamassassin.service

    as stated in the file /etc/default/spamassassin :
    # If you’re using systemd (default for jessie), the ENABLED setting is
    # not used. Instead, enable spamd by issuing:
    # systemctl enable spamassassin.service
    # Change to “1” to enable spamd on systems using sysvinit:
    ENABLED=0

  2. /etc/init.d/spamassassin: 12: /etc/default/spamassassin: rewrite_header: not found
    /etc/init.d/spamassassin: 13: /etc/default/spamassassin: required_score: not found
    /etc/init.d/spamassassin: 14: /etc/default/spamassassin: report_safe: not found
    /etc/init.d/spamassassin: 15: /etc/default/spamassassin: use_bayes: not found
    /etc/init.d/spamassassin: 16: /etc/default/spamassassin: bayes_auto_learn: not found

Leave a Reply

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