SpamAssassin
SpamAssassin is a mail filter to identify spam.
Installation
Install the spamassassin package.
Create a spamassassin directory in /etc/mail and change the owner and group:
# mkdir /etc/mail/spamassassin/sa-update-keys # chown spamd:spamd /etc/mail/spamassassin/sa-update-keys # chmod 700 /etc/mail/spamassassin/sa-update-keys
Next start/enable spamassassin.service.
Usage
Go over /etc/mail/spamassassin/local.cf and configure it to your needs.
Updating rules
Update the SpamAssassin matching patterns and compile them:
# sudo -u spamd sa-update && sudo -u spamd sa-compile
You will want to run this periodically, the best way to do so is by setting up a Systemd/Timers.
Create the following service, which will run these commands:
/etc/systemd/system/spamassassin-update.service
[Unit] Description=spamassassin housekeeping stuff After=network.target [Service] User=spamd Group=spamd Type=oneshot ExecStart=/usr/bin/vendor_perl/sa-update SuccessExitStatus=1 ExecStart=/usr/bin/vendor_perl/sa-compile ExecStart=!/usr/bin/systemctl -q --no-block try-restart spamassassin.service # uncomment the following ExecStart line to train SA's bayes filter # and specify the path to the mailbox that contains spam email(s) #ExecStart=/usr/bin/vendor_perl/sa-learn --spam <path_to_your_spam_mailbox>
Then create the timer, which will execute the previous service daily:
/etc/systemd/system/spamassassin-update.timer
[Unit] Description=spamassassin house keeping [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target
Set max size for scanning
The default max size for scanning is 500 KB (see man spamc). You can modify it: create the spamc configuration file. For example :
/etc/mail/spamassassin/spamc.conf
# spamc global configuration file # max message size for scanning = 1Mo -s 1000000
Plugins
ClamAV
Install and setup clamd as described in ClamAV.
Follow one of the above instructions to call SpamAssassin from within your mail system.
Install the package. Then install the ClamAV perl library as follows:
# /usr/bin/vendor_perl/cpanp -i File::Scan::ClamAV
Add the 2 files from https://wiki.apache.org/spamassassin/ClamAVPlugin into . Edit and update to point to your Clamd socket location (default is ).
Finally, restart spamassassin.service.
Razor
Vipul's Razor is a distributed, collaborative, spam detection and filtering network.
Make sure you have installed SpamAssassin first, then:
Install the package.
Register with Razor.
# mkdir /etc/mail/spamassassin/razor # chown spamd:spamd /etc/mail/spamassassin/razor # sudo -u spamd -s $ cd /etc/mail/spamassassin/razor $ razor-admin -home=/etc/mail/spamassassin/razor -register $ razor-admin -home=/etc/mail/spamassassin/razor -create $ razor-admin -home=/etc/mail/spamassassin/razor -discover
To tell SpamAssassin about Razor, add the following line to /etc/mail/spamassassin/local.cf:
razor_config /etc/mail/spamassassin/razor/razor-agent.conf
To tell Razor about itself, add the following line to :
razorhome = /etc/mail/spamassassin/razor/
Finally, restart spamassassin.service.