Introduction
Introduction Statistics Contact Development Disclaimer Help
Title: Easy spamAssassin with OpenSMTPD
Author: Solène
Date: 10 March 2021
Tags: openbsd mail
Description:
# Introduction
Today I will explain how to setup very easily the anti-spam
SpamAssassin and make it work with the OpenSMTPD mail server (OpenBSD
default mail server). I will suppose you are already familiar with
mail servers.
# Installation
We will need two packages to install: opensmtpd-filter-spamassassin and
p5-Mail-SpamAssassin. The first one is a "filter" for OpenSMTPD, it's
a special meaning in smtpd context, it will run spamassassin on
incoming emails and the latter is the spamassassin daemon itself.
## Filter
As explained in the pkg-readme file from the filter package
/usr/local/share/doc/pkg-readmes/opensmtpd-filter-spamassassin , a few
changes must be done to the smtpd.conf file. Mostly a new line to
define the filter and add "filter "spamassassin"" to lines starting by
"listen".
Website of the filter author who made other filters
## SpamAssassin
SpamAssassin works perfectly fine out of the box, "rcctl enable
spamassassin" and "rcctl start spamassassin" is enough to make it work.
Official SpamAssassin project website
# Usage
It should really work out of the box, but you can train SpamAssassin
what are good mails (called "ham") and what are spam by running the
command "sa-learn --ham" or "sa-learn --spam" on directories containing
that kind of mail, this will make spamassassin more efficient at
filtering by content. Be careful, this command should be run as the
same user as the daemon used by SpamAssassin.
In /var/log/maillog, spamassassin will give information about scoring,
up to 5.0 (default), a mail is rejected. For legitimate mails, headers
are added by spamassassin.
# Learning
I use a crontab to run once a day sa-learn on my "Archives" directory
holding all my good mails and "Junk" directory which has Spam.
```code: crontab
0 2 * * * find /home/solene/maildir/.Junk/cur/ -mtime -1 -type f -exec sa-l…
5 2 * * * find /home/solene/maildir/.Archives/cur/ -mtime -1 -type f -exec sa-l…
```
# Extra configuration
SpamAssassin is quite slow but can be speeded up by using redis (a
key/value database in memory) for storing tokens that help analyzing
content of emails. With redis, you would not have to care anymore
about which user is running sa-learn.
You can install and run redis by using "pkg_add redis" and "rcctl
enable redis" and "rcctl start redis", make sure that your port
TCP/6379 is blocked from outside. You can add authentication to your
redis server &if you feel it's necessary. I only have one user on my
email server and it's me.
You then have to add some content to /etc/mail/spamassassin/local.cf ,
you may want to adapt to your redis configuration if you changed
something.
```spamassassin configuration
bayes_store_module Mail::SpamAssassin::BayesStore::Redis
bayes_sql_dsn server=127.0.0.1:6379;database=4
bayes_token_ttl 300d
bayes_seen_ttl 8d
bayes_auto_expire 1
```
Configure a Bayes backend (like redis or SQL)
# Conclusion
Restart spamassassin after this change and enjoy. SpamAssassin has
many options, I only shared the most simple way to setup it with
opensmtpd.
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.