User:Paul/sandbox/Install SpamAssassin

From UNPM.org Wiki
Jump to navigation Jump to search

WARNING: This article is in a user sandbox, indicating it is a rough draft, and as such, is likely incomplete, contains buggy and insecure configurations, and is subject to substantial and frequent changes.

Most of the commands in this article require root privileges:

username@servername:~$ sudo -i

Install and configure SpamAssassin

Install the base set of packages:

root@servername:~# aptitude install spamass-milter pyzor razor libmail-dkim-perl

The SpamAssassin milter will require the spamd user, which needs to be created:

root@servername:~# adduser --shell /bin/false --home /var/lib/spamassassin --disabled-password --disabled-login --gecos "" spamd
root@servername:~# usermod -a -G spamd spamass-milter
root@servername:~# mv /etc/default/spamassassin /etc/default/original.spamassassin
root@servername:~# nano /etc/default/spamassassin

Paste into the new file:

SAHOME="/var/lib/spamassassin"
SAGLOBALCFGPATH="/etc/spamassassin"

# Change to one to enable spamd
ENABLED=1

# Options
# See man spamd for possible options. The -d option is automatically added.
OPTIONS="--max-children 5 --helper-home-dir ${SAHOME} -u spamd -g spamd --siteconfigpath ${SAGLOBALCFGPATH} --socketpath=/var/spool/postfix/spamassassin/spamd.sock --socketowner=spamd --socketgroup=spamd --socketmode=0660"

# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Otherwise, the init script will not be able to shut spamd down.
PIDFILE="/var/run/spamd.pid"

# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin's rules on a nightly basis
CRON=1

Configure to interface with Postfix through unix domain sockets:

root@servername:~# mkdir /var/spool/postfix/spamassassin
root@servername:~# chown spamd:root /var/spool/postfix/spamassassin/
root@servername:~# nano /etc/default/spamass-milter

Comment out the default OPTIONS and paste in:

OPTIONS="-u spamass-milter -i 127.0.0.1 -m -I -- --socket=/var/spool/postfix/spamassassin/spamd.sock"
root@servername:~# nano /etc/spamassassin/local.cf

Add:

## Set Pyzor & Razor config file paths
razor_config /var/lib/spamassassin/.razor/razor-agent.conf
pyzor_options --homedir /var/lib/spamassassin/.pyzor
root@servername:~# mkdir /var/lib/spamassassin/{.razor,.pyzor,.spamassassin}
root@servername:~# pyzor --homedir /var/lib/spamassassin/.pyzor discover
root@servername:~# razor-admin -home=/var/lib/spamassassin/.razor -register
root@servername:~# razor-admin -home=/var/lib/spamassassin/.razor -create
root@servername:~# razor-admin -home=/var/lib/spamassassin/.razor -discover
root@servername:~# chown spamd:spamd -R /var/lib/spamassassin/
root@servername:~# nano /var/lib/spamassassin/.razor/razor-agent.conf

Add:

razorhome = /var/lib/spamassassin/.razor
root@servername:~# service spamassassin restart && service spamass-milter restart
root@servername:~# spamassassin --lint
root@servername:~# sa-update

Next step

Configure Dovecot

External links

SpamAssassin

A Mailserver on Ubuntu 12.04: Postfix, Dovecot, MySQL | Ex Ratione

Taking e-mail back, part 3 | Ars Technica