SpamAssassin is a computer program used for e-mail spam filtering.
SpamAssassin uses a variety of spam-detection techniques, including DNS-based and fuzzy-checksum-based spam detection, Bayesian filtering, external programs, blacklists, and online databases. It will save your mailbox from many unwanted spam emails.
For this tutorial we are using Ubuntu 16.04 distribution, however, you should be able to use it for all Debian and Ubuntu distributions we offer on Time4VPS.
Update SystemFirst things first. Like always, first of all, we recommend updating your server. It can be done by simply executing:
apt-get update
InstallationAfter our server is up to date we can start the installation. Use apt-get to install
Spamassassin and
spamc:
apt-get install spamassassin spamc -y
While installing you can get a message about the kernel, we are using stable kernel version 2.6.32 for OpenVZ, so you do not need to worry about that, just click OK.
Adding UserThere are a few steps that has to be taken to make it fully functional. To run
SpamAssassin you need to create a new user on your VPS. First, add the group
spamd:
groupadd spamd
Then add the user spamd with the home directory
/var/log/spamassassin:
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
Then create the directory
/var/log/spamassassin:
mkdir /var/log/spamassassin
And change the ownership of the directory to
spamd:
chown spamd:spamd /var/log/spamassassin
Setting UpOpen the
SpamAssassin config file:
nano /etc/default/spamassassin
Note: If you do not have
nano installed on your server, you can do it simply with the command:
apt-get install nano
To enable
Spamassassin and automatic rule updates in order to get the latest spam filtering rules to find the
CRON and
ENABLED variables and change then to:
ENABLED=1
CRON=1
Now create a variable named
SAHOME with the
Spamassassin home directory:
SAHOME="/var/log/spamassassin/"
Find and change the
OPTIONS variable to:
OPTIONS="--create-prefs --max-children 2 --username spamd \
-H ${SAHOME} -s ${SAHOME}spamd.log"
After setting up is complete we can start the
Spamassassin daemon by using the following code:
service spamassassin start
Configuring PostfixSpamAssassin is set up, however, emails are still not going through it. To enabling that, open
Postfix config file:
nano /etc/postfix/master.cf
Find the line:
smtp inet n - - - - smtpd
And add the following to the end of the line:
-o content_filter=spamassassin
Now,
Postfix will pipe the mail through
SpamAssassin.
To setup after-queue content filter add the following line to 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}
For the changes to take effect restart
postfix:
service postfix restart
ConfigurationTo get the maximum use of
SpamAssassin you have to create rules. Open the
SpamAssassin default rules file using:
nano /etc/spamassassin/local.cf
To activate a rules uncomment line by removing the # symbol in the beginning of the line. Some line we recommend to uncomment:
rewrite_header Subject *****SPAM*****
- To add a spam header to spam mail.
required_score 5.0
- Spamassassin gives a score to each mail after running different tests on it. This line marks the mail as spam if the score is more than the value specified in the rule.
use_bayes 1
- To use Bayes theorem to check mails.
bayes_auto_learn 1
- To enable Bayes auto-learning.
After adding the above details, save the file and restart spam assassin.
service spamassassin restart
TestingTo see if SpamAssassin is working, you can check the SpamAssassin log file using:
nano /var/log/spamassassin/spamd.log
or send the email from an external server and check the mail headers.
ConclusionUsing
SpamAssassin, it is very easy to protect your mailbox from spammers. The best thing about
SpamAssassin is that we can create rules by ourselves and manage it.
Comments
In case you're using
spamassassin for the main time4vps.eu mail server, please be advised that it has severe problems. I tried to mail you a scan of my ID as you requested for reducing "
fraudulent orders" and your mail server replied: