How to install and configure SpamAssassin with Postfix in Debian 8
Index
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.
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
/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