Difference between revisions of "Spamassassin"

From wiki
(Add header reporting)
(Learning from dovecot)
Line 22: Line 22:
 
add_header all Status _YESNO_, hits=_HITS_ tests=_TESTSSCORES(,)_ autolearn=_AUTOLEARN_
 
add_header all Status _YESNO_, hits=_HITS_ tests=_TESTSSCORES(,)_ autolearn=_AUTOLEARN_
 
add_header all Details required=_REQD_ version=_VERSION_ _REPORT_
 
add_header all Details required=_REQD_ version=_VERSION_ _REPORT_
 +
add_header all Pyzor _PYZOR
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 33: Line 34:
 
<syntaxhighlight lang="console">
 
<syntaxhighlight lang="console">
 
# su vmail -s /bin/sh -c "sa-learn --spam --progress --dir /var/maildir/<username>/Maildir/.Spam/cur/"
 
# su vmail -s /bin/sh -c "sa-learn --spam --progress --dir /var/maildir/<username>/Maildir/.Spam/cur/"
# su vmail -s /bin/sh -c "sa-learn --spam --progress --dir /var/maildir/<username>/Maildir/cur/"
+
# su vmail -s /bin/sh -c "sa-learn --ham --progress --dir /var/maildir/<username>/Maildir/cur/"
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 75: Line 76:
  
 
In file <code>/etc/dovecot/conf.d/20-imap.conf</code>, modify the option ''mail_plugins'' and add ''antispam'' to the list
 
In file <code>/etc/dovecot/conf.d/20-imap.conf</code>, modify the option ''mail_plugins'' and add ''antispam'' to the list
<syntaxhighlight lang="ini">
+
<syntaxhighlight lang="shell">
 
protocol imap {
 
protocol imap {
 
   # Space separated list of plugins to load (default is global mail_plugins).
 
   # Space separated list of plugins to load (default is global mail_plugins).
Line 81: Line 82:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Edit file <code>/etc/dovecot/conf.d/90-antispam.conf</code> and set or edit the following options
 +
<syntaxhighlight lang="shell">
 +
  antispam_backend = pipe
 +
  antispam_trash_pattern_ignorecase = trash;Deleted Items;Deleted Messages
 +
  antispam_spam_pattern_ignorecase = Spam;Junk
 +
  antispam_pipe_program_spam_arg = -r
 +
  antispam_pipe_program_notspam_arg = -k
 +
  antispam_pipe_program = /usr/bin/spamassassin
 +
</syntaxhighlight>
 +
  
 
[[Category:Install]]
 
[[Category:Install]]

Revision as of 22:24, 8 March 2016


Warning Warning: This page is a work in progress and is not completed. Important informations might be missing or wrong.

Install

# apt install spamassassin

Configure

After changing config in /etc/spamassassin/, don't forget tell SpamAssassin to reload config

# service spamassassin reload

Report Headers

SpamAssassin can had headers in the messages it scan. It will help you investigate things in case you get false-positive are false-negative.

Add the following lines to /etc/spamassassin/local.cf

add_header all Status _YESNO_, hits=_HITS_ tests=_TESTSSCORES(,)_ autolearn=_AUTOLEARN_
add_header all Details required=_REQD_ version=_VERSION_ _REPORT_
add_header all Pyzor _PYZOR

Bayesian filter

To reach a good efficiency, SpamAssassin Bayesian filter need to be trained with both spam and ham messages. You can use your actual mailbox for that but note the following points:

  • Be sure that the folders you use for training contain only spam or ham. If a folder contain a mix of them, SpamAssassin will learn wrong info and produce bad quality results
  • To be effective you need between 1000 and 5000 messages each of both spam and ham.
  • You need to have more ham than spam to train. Otherwise, SpamAssassin might become biased toward spam.
# su vmail -s /bin/sh -c "sa-learn --spam --progress --dir /var/maildir/<username>/Maildir/.Spam/cur/"
# su vmail -s /bin/sh -c "sa-learn --ham --progress --dir /var/maildir/<username>/Maildir/cur/"

To check the status of the database, you can run

# su vmail -s /bin/sh -c "sa-learn --dump magic"

Integrate with exim

# apt install sa-exim

Configuration is stored in /etc/exim4/sa-exim.conf.

Edit the following setting

SAspamcUser: vmail

By defauld sa-exim is disabled. Remove the following lines to enable it

#----------------------------------------------------------------------
# Remove or comment out the following line to enable sa-exim
SAEximRunCond: 0
#----------------------------------------------------------------------

You can now restart exim to take you settings into account

# service exim4 restart

Integrate with dovecot

# apt install dovecot-antispam

In file /etc/dovecot/conf.d/20-imap.conf, modify the option mail_plugins and add antispam to the list

protocol imap {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins antispam
}

Edit file /etc/dovecot/conf.d/90-antispam.conf and set or edit the following options

  antispam_backend = pipe
  antispam_trash_pattern_ignorecase = trash;Deleted Items;Deleted Messages
  antispam_spam_pattern_ignorecase = Spam;Junk
  antispam_pipe_program_spam_arg = -r
  antispam_pipe_program_notspam_arg = -k
  antispam_pipe_program = /usr/bin/spamassassin