summaryrefslogtreecommitdiffstats
path: root/roles/IMAP
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2013-12-14 22:23:09 +0100
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 02:51:22 +0200
commit827332364b00d3b47367fa97901dab8f4bfe4e91 (patch)
tree960fbfb219aee0563718358c1d9721bbdaa9ad4e /roles/IMAP
parent3ba746801d48d0c8375a88097ccd566c007eb8b2 (diff)
Compile Spamassassin rules.
See /usr/share/doc/spamassassin/README.Debian.gz
Diffstat (limited to 'roles/IMAP')
-rw-r--r--roles/IMAP/files/etc/spamassassin/v320.pre64
-rw-r--r--roles/IMAP/handlers/main.yml6
-rw-r--r--roles/IMAP/tasks/spam.yml6
3 files changed, 76 insertions, 0 deletions
diff --git a/roles/IMAP/files/etc/spamassassin/v320.pre b/roles/IMAP/files/etc/spamassassin/v320.pre
new file mode 100644
index 0000000..a5c1b3e
--- /dev/null
+++ b/roles/IMAP/files/etc/spamassassin/v320.pre
@@ -0,0 +1,64 @@
+# This is the right place to customize your installation of SpamAssassin.
+#
+# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
+# tweaked.
+#
+# This file was installed during the installation of SpamAssassin 3.2.0,
+# and contains plugin loading commands for the new plugins added in that
+# release. It will not be overwritten during future SpamAssassin installs,
+# so you can modify it to enable some disabled-by-default plugins below,
+# if you so wish.
+#
+# There are now multiple files read to enable plugins in the
+# /etc/mail/spamassassin directory; previously only one, "init.pre" was
+# read. Now both "init.pre", "v310.pre", and any other files ending in
+# ".pre" will be read. As future releases are made, new plugins will be
+# added to new files, named according to the release they're added in.
+###########################################################################
+
+# Check - Provides main check functionality
+#
+loadplugin Mail::SpamAssassin::Plugin::Check
+
+# HTTPSMismatch - find URI mismatches between href and anchor text
+#
+loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+
+# URIDetail - test URIs using detailed URI information
+#
+loadplugin Mail::SpamAssassin::Plugin::URIDetail
+
+# Shortcircuit - stop evaluation early if high-accuracy rules fire
+#
+# loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
+
+# Plugins which used to be EvalTests.pm
+# broken out into separate plugins
+loadplugin Mail::SpamAssassin::Plugin::Bayes
+loadplugin Mail::SpamAssassin::Plugin::BodyEval
+loadplugin Mail::SpamAssassin::Plugin::DNSEval
+loadplugin Mail::SpamAssassin::Plugin::HTMLEval
+loadplugin Mail::SpamAssassin::Plugin::HeaderEval
+loadplugin Mail::SpamAssassin::Plugin::MIMEEval
+loadplugin Mail::SpamAssassin::Plugin::RelayEval
+loadplugin Mail::SpamAssassin::Plugin::URIEval
+loadplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+# VBounce - anti-bounce-message rules, see rules/20_vbounce.cf
+#
+loadplugin Mail::SpamAssassin::Plugin::VBounce
+
+# Rule2XSBody - speedup by compilation of ruleset to native code
+#
+loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
+
+# ASN - Look up the Autonomous System Number of the connecting IP
+# and create a header containing ASN data for bayes tokenization.
+# See plugin's POD docs for usage info.
+#
+# loadplugin Mail::SpamAssassin::Plugin::ASN
+
+# ImageInfo - rules to match metadata of image attachments
+#
+loadplugin Mail::SpamAssassin::Plugin::ImageInfo
+
diff --git a/roles/IMAP/handlers/main.yml b/roles/IMAP/handlers/main.yml
index 9bd7dab..bda2ab9 100644
--- a/roles/IMAP/handlers/main.yml
+++ b/roles/IMAP/handlers/main.yml
@@ -1,28 +1,34 @@
---
- name: Restart Dovecot
service: name=dovecot state=restarted
- name: Restart Postfix
service: name=postfix state=restarted
- name: Reload Postfix
service: name=postfix state=reloaded
- name: Restart ClamAV
service: name=clamav-daemon state=restarted
+- name: Compile Spamassassin rules
+ sudo_user: debian-spamd
+ # it might take a while...
+ command: /usr/bin/sa-compile --quiet
+ chdir=/var/lib/spamassassin/
+
- name: Restart Amavis
service: name=amavis state=restarted
- name: Copy SQL tables for spamassassin
copy: src=tmp/spamassassin.sql
dest=/tmp/spamassassin.sql
owner=root group=root
mode=0600
- name: Create SQL tables for spamassassin
# see https://svn.apache.org/repos/asf/spamassassin/trunk/sql/
# for the original
mysql_db: name=spamassassin state=import
target=/tmp/spamassassin.sql
encoding=latin1 collation=latin1_unicode_ci
diff --git a/roles/IMAP/tasks/spam.yml b/roles/IMAP/tasks/spam.yml
index e3baca0..51fde4b 100644
--- a/roles/IMAP/tasks/spam.yml
+++ b/roles/IMAP/tasks/spam.yml
@@ -1,47 +1,53 @@
- name: Install spamassassin
apt: pkg={{ item }}
with_items:
- razor
- spamassassin
- spamc
- libdbi-perl
+ - re2c
+ - libc6-dev
+ - gcc
+ - make
notify:
+ - Compile Spamassassin rules
- Restart Amavis
- name: Create a 'spamassassin' database
mysql_db: name=spamassassin state=present
encoding=latin1 collation=latin1_general_ci
notify:
- Copy SQL tables for spamassassin
- Create SQL tables for spamassassin
- meta: flush_handlers
- name: Copy SpamAssassin's configuration
copy: src=etc/{{ item }}
dest=/etc/{{ item }}
owner=root group=root
mode=0644
with_items:
- spamassassin/local.cf
- spamassassin/v310.pre
+ - spamassassin/v320.pre
notify:
- Restart Amavis
- name: Provision /etc/default/spamassassin
lineinfile: dest=/etc/default/spamassassin
regexp='^(\s*#)?\s*{{ item.var }}='
"line={{ item.var }}={{ item.value }}"
owner=root group=root
mode=0644
with_items:
- { var: ENABLED, value: 0 }
- { var: CRON, value: 1 }
- name: Create a 'amavis' SQL user
# This *must* be the user we run spamd as
# See https://svn.apache.org/repos/asf/spamassassin/trunk/sql/README.bayes
mysql_user: >
name=amavis auth_plugin=auth_socket
priv="spamassassin.awl: SELECT,INSERT,UPDATE,DELETE
/spamassassin.bayes_seen: SELECT,INSERT, DELETE