diff options
| author | Guilhem Moulin <guilhem@fripost.org> | 2013-12-09 08:11:16 +0100 | 
|---|---|---|
| committer | Guilhem Moulin <guilhem@fripost.org> | 2015-06-07 02:51:17 +0200 | 
| commit | 7c089f71667a1a14cc508772ca289d4d1d2edd27 (patch) | |
| tree | 2858164a1015603ebb8f2478b920e84a7dd62dd6 /roles/IMAP/tasks | |
| parent | 185cf14065554038820c696e7d35f47017b43783 (diff) | |
Configure the content filter.
Antispam & antivirus, using ClamAV and SpamAssassin through Amavisd-new.
Each user has his/her amavis preferences, and own Bayes filter (to
maximize privacy).
One question remains, though: how to set spamassassin's trusted_networks
/ internal_networks / msa_networks? It seems not obivious to get it
write with IPSec and dynamic IPs.
(Cf. https://wiki.apache.org/spamassassin/AwlWrongWay)
Diffstat (limited to 'roles/IMAP/tasks')
| -rw-r--r-- | roles/IMAP/tasks/amavis.yml | 56 | ||||
| -rw-r--r-- | roles/IMAP/tasks/main.yml | 2 | ||||
| -rw-r--r-- | roles/IMAP/tasks/spam.yml | 51 | 
3 files changed, 109 insertions, 0 deletions
| diff --git a/roles/IMAP/tasks/amavis.yml b/roles/IMAP/tasks/amavis.yml new file mode 100644 index 0000000..6f47328 --- /dev/null +++ b/roles/IMAP/tasks/amavis.yml @@ -0,0 +1,56 @@ +- name: Install amavis and its decoders +  apt: pkg={{ item }} +  with_items: +    - amavisd-new +    - libnet-ldap-perl +    - libauthen-sasl-perl +    - gzip +    - bzip2 +    - xz-utils +    - lzop +    - rpm2cpio +    - pax +    - binutils +    - p7zip-full +    - unrar-free +    - arj +    - nomarch +    - zoo +    - ripole +    - cabextract +    - unar +    - tnef +  notify: +    - Restart Amavis + +- name: Add 'clamav' to the group 'amavis' +  user: name=clamav groups=amavis append=yes +  register: r1 +  notify: +    - Restart ClamAV +    - Restart Amavis + +- name: Configure Amavis (1) +  copy: src=etc/amavis/conf.d/05-domain_id +        dest=/etc/amavis/conf.d/05-domain_id +        owner=root group=root +        mode=0644 +  register: r2 +  notify: +    - Restart Amavis + +- name: Configure Amavis (2) +  template: src=etc/amavis/conf.d/{{ item }}.j2 +            dest=/etc/amavis/conf.d/{{ item }} +            owner=root group=root +            mode=0644 +  register: r3 +  with_items: +    - 15-content_filter_mode +    - 50-user +  notify: +    - Restart Amavis + +- name: Start Amavis +  service: name=amavis state=started +  when: not (r1.changed or r2.changed or r3.changed) diff --git a/roles/IMAP/tasks/main.yml b/roles/IMAP/tasks/main.yml index df21dd2..b43f9fb 100644 --- a/roles/IMAP/tasks/main.yml +++ b/roles/IMAP/tasks/main.yml @@ -1,3 +1,5 @@  ---  - include: imap.yml   tags=imap,dovecot  - include: mda.yml    tags=mda,mail,postfix +- include: amavis.yml tags=amavis +- include: spam.yml   tags=spam,spamassassin diff --git a/roles/IMAP/tasks/spam.yml b/roles/IMAP/tasks/spam.yml new file mode 100644 index 0000000..d326656 --- /dev/null +++ b/roles/IMAP/tasks/spam.yml @@ -0,0 +1,51 @@ +- name: Install spamassassin +  apt: pkg={{ item }} +  with_items: +    - razor +    - spamassassin +    - spamc +    - libdbi-perl +  notify: +    - 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 +  notify: +    - Restart Amavis + +- name: Ensure SpamAssassin is not auto-started at boot time +  lineinfile: dest=/etc/default/spamassassin +              regexp='^(\s*#)?\s*ENABLED=' +              line='ENABLED=0' +              owner=root group=root +              mode=0644 + +- 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 +           /spamassassin.bayes_token:       SELECT,INSERT,UPDATE,DELETE +           /spamassassin.bayes_global_vars: SELECT +           /spamassassin.bayes_vars:        SELECT,INSERT,UPDATE,DELETE +           /spamassassin.bayes_expire:      SELECT,INSERT,       DELETE" +      state=present +  notify: +    - Restart Amavis | 
