progreso (aun no probado)

This commit is contained in:
Mauro Torrez 2019-05-28 19:26:38 -03:00
parent 216fb11972
commit c32b131a57
2 changed files with 184 additions and 152 deletions

View File

@ -1,120 +1,42 @@
--- ---
# junk mailbox name # Mail
dovecot_mailbox_junk: "Junk"
# activar single-instance storage? # carpeta por defecto para el mail
dovecot_sis_enable: yes dovecot_mail_home: "{{ vmail_home | default('/srv/mail') }}"
# lugar donde se guardan los adjuntos # carpeta de mail de cada usuario
dovecot_sis_directory: "{{ vmail_home }}/attachments" dovecot_user_home: "{{ dovecot_mail_home }}/mail/%d/%n"
# tamaño minimo de adjuntos a guardar aparte
dovecot_sis_min_size: "128k"
# hash a usar para desduplicar
dovecot_sis_hash: "%{sha1}"
# habilitar desduplicacion postergada?
dovecot_sis_queue_enable: no
# carpeta de "encolados para desduplicar
dovecot_sis_queue_directory: "{{ vmail_home }}/attachments-queue"
# carpeta alternativa de correo
dovecot_altstorage_enable: no
# carpeta alternativa de correo
dovecot_altstorage_directory: "{{ vmail_home }}/alt-storage"
# formato del mailbox: dbox, mdbox, sdbox, maildir # formato del mailbox: dbox, mdbox, sdbox, maildir
dovecot_mailbox_format: "dbox" dovecot_mailbox_format: dbox
# ubicacion de mails de dovecot # ubicacion de mails de dovecot (~ = dovecot_user_home)
dovecot_mail_location: > dovecot_mail_location:
{%- if "dbox" in dovecot_mailbox_format -%} "{%- if 'dbox' in dovecot_mailbox_format -%}\
{{dovecot_mailbox_format}}:~/dbox {{dovecot_mailbox_format}}:~/dbox\
{%- else -%} {%- else -%}\
{{dovecot_mailbox_format}}:~/Maildir {{dovecot_mailbox_format}}:~/Maildir\
{%- endif %} {%- endif %}"
# carpeta "home" de los usuarios de dovecot # nombre de la carpeta de spam
dovecot_user_home: "{{ vmail_home }}/mail/%d/%n" dovecot_mailbox_junk: Junk
# como transformar el nombre de usuario antes de autenticar # Auth
dovecot_auth_username_format: "%Lu"
# mecanismos de autenticacion: agregar login para compat. outlook # mecanismos de autenticacion: agregar login para compat. outlook
dovecot_auth_mechanisms: "plain" dovecot_auth_mechanisms: plain
# como transformar el nombre de usuario antes de autenticar
dovecot_auth_username_format: %Lu
# habilitar userdb/passdb de usuarios del sistema? # habilitar userdb/passdb de usuarios del sistema?
dovecot_auth_system_enable: no dovecot_auth_system_enable: no
# habilitar userdb/passdb ldap?
dovecot_auth_ldap_enable: yes
# servidores ldap
dovecot_auth_ldap_servers: [ "localhost" ]
# version del protocolo LDAP
dovecot_auth_ldap_version: 3
# base para la busqueda en LDAP
dovecot_auth_ldap_base: "ou=People,dc=%Dd"
# scope para la busqueda en ldap: base, onelevel, subtree
dovecot_auth_ldap_scope: "subtree"
# filtro para obtener la entrada del usuario LDAP
dovecot_auth_ldap_user_filter: "(&(objectClass=inetOrgPerson)(uid=%n))"
# filtro para obtener la clave del usuario LDAP
dovecot_auth_ldap_pass_filter: "(&(objectClass=inetOrgPerson)(uid=%n))"
# atributos del usuario leidos de LDAP
# por defecto, usar valores pre-calculados
dovecot_auth_ldap_user_attrs: >
=home={{ dovecot_user_home }},
=uid={{ vmail_user }},
=gid={{ vmail_group }}
# clave + atributos del usuario leidos de LDAP
# por defecto, usar valores pre-calculados
dovecot_auth_ldap_pass_attrs: >
userPassword=password,
=userdb_home={{ dovecot_user_home }},
=userdb_uid={{ vmail_user }},
=userdb_gid={{ vmail_group }}
# iteracion con doveadm
# CAVEAT: al usar %Dd en ldap_base, no se puede utilizar doveadm -A,
# sino que siempre se debe especificar un dominio usando -u "*@dominio"
dovecot_auth_ldap_iterate_attrs: "=user=%{ldap:uid}@%d"
# cuando ldap_base es fija (sin %Dd):
# dovecot_auth_ldap_iterate_attrs: "uid=user"
# filtro para iteracion: este filtro debe devolver todas las personas
# de tipo "usuario"
dovecot_auth_ldap_iterate_filter: "(objectClass=inetOrgPerson)"
# ???
dovecot_auth_ldap_default_pass_scheme: "CRYPT"
# habilitar usuarios master? # habilitar usuarios master?
dovecot_auth_master_enable: no dovecot_auth_master_enable: no
# habilitar ssl # Protocolos
dovecot_ssl_enable: yes
# requerir ssl
dovecot_ssl_require: no
# path absoluto al certificado SSL
dovecot_ssl_cert: "{{ tls_certificate }}"
# path absoluto a la clave privada SSL
dovecot_ssl_key: "{{ tls_certificate_key }}"
# activar IMAP? # activar IMAP?
dovecot_proto_imap_enable: yes dovecot_proto_imap_enable: yes
@ -131,18 +53,87 @@ dovecot_proto_pop3s_enable: no
# activar managesieve? # activar managesieve?
dovecot_proto_managesieve_enable: yes dovecot_proto_managesieve_enable: yes
# TLS
# habilitar ssl
dovecot_ssl_enable: yes
# requerir ssl
dovecot_ssl_require: no
# path absoluto al certificado SSL
dovecot_ssl_cert:
"{{ tls_certificate | default('/etc/ssl/certs/ssl-cert-snakeoil.pem') }}"
# path absoluto a la clave privada SSL
dovecot_ssl_key:
"{{ tls_certificate_key | \
default('/etc/ssl/private/ssl-cert-snakeoil.key') }}"
# LDAP
# habilitar userdb/passdb ldap?
dovecot_ldap_enable: yes
# servidores ldap
dovecot_ldap_servers:
- localhost
# version del protocolo LDAP
dovecot_ldap_version: 3
# base para la busqueda en LDAP
dovecot_ldap_base: "ou=People,dc=%Dd"
# scope para la busqueda en ldap: base, onelevel, subtree
dovecot_ldap_scope: subtree
# filtro para obtener la entrada del usuario LDAP
dovecot_ldap_user_filter: "(&(objectClass=inetOrgPerson)(uid=%n))"
# filtro para obtener la clave del usuario LDAP
dovecot_ldap_pass_filter: "(&(objectClass=inetOrgPerson)(uid=%n))"
# atributos del usuario leidos de LDAP
# por defecto, usar valores pre-calculados
dovecot_ldap_user_attrs:
"=home={{ dovecot_user_home }}, =uid={{ vmail_user }}, \
=gid={{ vmail_group }}"
# clave + atributos del usuario leidos de LDAP
# por defecto, usar valores pre-calculados
dovecot_ldap_pass_attrs:
"userPassword=password, =userdb_home={{ dovecot_user_home }}, \
=userdb_uid={{ vmail_user }}, =userdb_gid={{ vmail_group }}"
# iteracion con doveadm
# CAVEAT: al usar %Dd en ldap_base, no se puede utilizar doveadm -A,
# sino que siempre se debe especificar un dominio usando -u "*@dominio"
dovecot_ldap_iterate_attrs: "=user=%{ldap:uid}@%d"
# cuando ldap_base es fija (sin %Dd):
# dovecot_ldap_iterate_attrs: "uid=user"
# filtro para iteracion: debe devolver todas las personas de tipo "usuario"
dovecot_ldap_iterate_filter: "(objectClass=inetOrgPerson)"
# Esquema con que se guarda la clave (no deberia usarse)
dovecot_ldap_default_pass_scheme: "CRYPT"
# Antispam
# Activar el plugin antispam? # Activar el plugin antispam?
dovecot_antispam_enable: yes dovecot_antispam_enable: yes
# Backend del plugin antispam. Valores posibles: # Backend del plugin antispam. Valores posibles:
# crm114, dspam, pipe, spool2dir # crm114, dspam, pipe, spool2dir
dovecot_antispam_backend: "pipe" dovecot_antispam_backend: pipe
# Header que indica que el mail ha sido escaneado para spam # Header que indica que el mail ha sido escaneado para spam
dovecot_antispam_signature: "X-Bogosity" dovecot_antispam_signature: X-Bogosity
# Pipe: programa que entrena leyendo el mail en STDIN # Pipe: programa que entrena leyendo el mail en STDIN
dovecot_antispam_pipe_program: "/usr/bin/bogofilter" dovecot_antispam_pipe_program: /usr/bin/bogofilter
# antispam_pipe_program_args = --for;%u # antispam_pipe_program_args = --for;%u
dovecot_antispam_pipe_program_args: "-l" dovecot_antispam_pipe_program_args: "-l"
@ -154,13 +145,13 @@ dovecot_antispam_pipe_program_notspam_arg: "-n"
dovecot_antispam_pipe_program_spam_arg: "-s" dovecot_antispam_pipe_program_spam_arg: "-s"
# Pipe: directorio temporal (creo que el mail se copia ahi primero) # Pipe: directorio temporal (creo que el mail se copia ahi primero)
dovecot_antispam_pipe_tmpdir: "/tmp" dovecot_antispam_pipe_tmpdir: /tmp
# accion cuando se mueve un mail que no tiene signature de/hacia spam # accion cuando se mueve un mail que no tiene signature de/hacia spam
# valores posibles: # valores posibles:
# error: fallar en la operacion # error: fallar en la operacion
# move: mover el mensaje de todos modos # move: mover el mensaje de todos modos
dovecot_antispam_signature_missing: "error" dovecot_antispam_signature_missing: error
# nombres de las carpetas de spam # nombres de las carpetas de spam
dovecot_antispam_spam: "Junk;junk;Junk Mail;Spam;spam;SPAM" dovecot_antispam_spam: "Junk;junk;Junk Mail;Spam;spam;SPAM"
@ -170,37 +161,65 @@ dovecot_antispam_trash: "Trash;trash;mail/trash;Deleted Messa
# debug del plugin antispam # debug del plugin antispam
dovecot_antispam_debug_enable: no dovecot_antispam_debug_enable: no
dovecot_antispam_debug_target: "syslog" dovecot_antispam_debug_target: syslog
dovecot_antispam_debug_verbosity: 0 dovecot_antispam_debug_verbosity: 0
# Quota
# activar plugin quota? # activar plugin quota?
dovecot_plugin_quota_enable: yes dovecot_quota_enable: yes
# opciones de quota # driver: count, maildir
dovecot_plugin_quota: dovecot_quota_driver: count
# driver: count, maildir # limite global de la cuota de usuario (en M)
driver: "count" dovecot_quota_limit: 4096M
# limite global de la cuota de usuario (en M) # limites adicionales para casillas especificas
limit: "4096M" dovecot_quota_additional_limit:
# limites adicionales para casillas especificas
mailbox_additional_limit:
Trash: "100M" Trash: "100M"
# gracia (en porcentaje o M) # gracia (en porcentaje o M)
grace: "10%" dovecot_quota_grace: 10%
# Sieve
# activar plugin sieve? # activar plugin sieve?
dovecot_plugin_sieve_enable: yes dovecot_sieve_enable: yes
# opciones de sieve # dir con scripts ejecutados antes que los del usuario
dovecot_plugin_sieve: dovecot_sieve_before: /etc/dovecot/sieve/before
# dir con scripts ejecutados antes que los del usuario # dir con scripts ejecutados luego de los del usuario
before: "/etc/dovecot/sieve/before" dovecot_sieve_after: /etc/dovecot/sieve/after
# dir con scripts ejecutados luego de los del usuario # activar filtro spam por defecto
after: "/etc/dovecot/sieve/after" dovecot_sieve_global_junk_filter_enable: yes
# Single-instance storage
# activar single-instance storage?
dovecot_sis_enable: yes
# lugar donde se guardan los adjuntos
dovecot_sis_directory: "{{ dovecot_mail_home }}/attachments"
# tamaño minimo de adjuntos a guardar aparte
dovecot_sis_min_size: 128k
# hash a usar para desduplicar
dovecot_sis_hash: "%{sha1}"
# habilitar desduplicacion postergada?
dovecot_sis_queue_enable: no
# carpeta de "encolados para desduplicar
dovecot_sis_queue_directory: "{{ dovecot_mail_home }}/attachments-queue"
# Alt storage
# carpeta alternativa de correo
dovecot_altstorage_enable: no
# carpeta alternativa de correo
dovecot_altstorage_directory: "{{ dovecot_mail_home }}/alt-storage"

View File

@ -1,24 +1,42 @@
--- ---
- apt: name=dovecot-ldap - name: Instalar Dovecot
when: dovecot_auth_ldap_enable apt:
state: present
name:
- dovecot-lmtpd
{% if any([dovecot_proto_imap_enable, dovecot_proto_imaps_enable]) -%}
- dovecot-imapd
{% endif %}
{% if any([dovecot_proto_pop3_enable, dovecot_proto_pop3s_enable]) -%}
- dovecot-pop3d
{% endif %}
{% if dovecot_ldap_enable -%}
- dovecot-ldap
{% endif %}
{% if dovecot_sieve_enable -%}
- dovecot-sieve
{% endif %}
{% if dovecot_proto_managesieve_enable -%}
- dovecot-managesieved
{% endif %}
{% if dovecot_antispam_enable -%}
- dovecot-antispam
{% endif %}
- apt: name=dovecot-pop3d - name: Directorios de configuración de Dovecot
when: dovecot_proto_pop3_enable or dovecot_proto_pop3s_enable file:
path: "{{ item }}"
state: directory
loop:
- /etc/dovecot/conf.d
- "{{ dovecot_sieve_before }}"
- "{{ dovecot_sieve_after }}"
- apt: name=dovecot-imapd - name: Configuración de Dovecot (1)
when: dovecot_proto_imap_enable or dovecot_proto_imapd_enable template:
dest: "/etc/dovecot/conf.d/{{ item }}"
- apt: name=dovecot-lmtpd src: "{{item}}.j2"
loop:
- apt: name=dovecot-managesieved
when: dovecot_proto_managesieve_enable
- apt: name=dovecot-antispam
when: dovecot_plugin_antispam_enable
- name: Configuración de Dovecot
template: dest="/etc/dovecot/conf.d/{{item}}" src="{{item}}.j2"
with_items:
- 10-mail.conf - 10-mail.conf
- 10-auth.conf - 10-auth.conf
- 10-ssl.conf - 10-ssl.conf
@ -32,26 +50,21 @@
- 90-antispam.conf - 90-antispam.conf
notify: restart dovecot notify: restart dovecot
- name: configuracion dovecot-ldap - name: Configuración de Dovecot (2-LDAP)
template: template:
dest: "/etc/dovecot/dovecot-ldap.conf.ext" dest: "/etc/dovecot/dovecot-ldap.conf.ext"
src: "dovecot-ldap.conf.ext.j2" src: "dovecot-ldap.conf.ext.j2"
notify: restart dovecot notify: restart dovecot
- name: enlace simbólico a dovecot-ldap.conf.ext - name: Configuración de Dovecot (3-LDAP)
file: file:
src: dovecot-ldap.conf.ext src: dovecot-ldap.conf.ext
dest: /etc/dovecot/dovecot-ldap2.conf.ext dest: /etc/dovecot/dovecot-ldap2.conf.ext
state: link state: link
notify: restart dovecot notify: restart dovecot
- file: path={{ dovecot_plugin_sieve.after }} state=directory - name: Filtro de spam global
when: dovecot_plugin_sieve_enable template:
src: junk-filter.sieve.j2
- file: path={{ dovecot_plugin_sieve.before }} state=directory dest: "{{ dovecot_sieve_before }}/junk-filter.sieve"
when: dovecot_plugin_sieve_enable
- name: filtro spam global en sieve-after
template: src=junk-filter.sieve.j2 dest={{dovecot_plugin_sieve.after}}/junk-filter.sieve
when: dovecot_plugin_sieve_enable
notify: recompile sieve scripts notify: recompile sieve scripts