2019-05-28 00:04:17 -03:00

164 lines
6.9 KiB
Markdown

# ansible-role-dovecot
Este rol instala y configura el servidor IMAP Dovecot.
## Configuración
* `vmail_home` (`/srv/vmail`): home del usuario `vmail`.
### Generales
* `dovecot_user_home` (`{{ vmail_home }}/mail/%d/%n`): carpeta home de
cada usuario.
* `dovecot_mail_location` (`{{dovecot_mailbox_format}}:~/dbox` o
`maildir:~/Maildir` según el valor de `dovecot_mailbox_format`):
ubicación de los mails de cada usuario.
* `dovecot_mailbox_junk` (`Junk`): Nombre de la carpeta de spam.
* `dovecot_mailbox_format` (`dbox`): formato del mailbox. Valores
posibles: `dbox`, `mdbox`, `sdbox`, `maildir`.
* `dovecot_auth_username_format` (`%Lu`): formato del nombre de
usuario utilizado para autenticar.
* `dovecot_auth_mechanisms` (`plain`): mecanismos de autenticación,
agregar `login` para compatibilidad con MS Outlook.
* `dovecot_auth_system_enable` (`no`): habilitar login para usuarios
del sistema.
* `dovecot_auth_master_enable` (`no`): habilitar usuarios _master_.
### Protocolos
* `dovecot_proto_imap_enable` (`yes`): activar IMAP.
* `dovecot_proto_imaps_enable` (`no`): activar IMAPS.
* `dovecot_proto_pop3_enable` (`no`): activar POP3.
* `dovecot_proto_pop3s_enable` (`no`): activar POP3S.
* `dovecot_proto_managesieve_enable` (`yes`): activar
managesieve. Debe estar habilitado Sieve.
### SSL
* `dovecot_ssl_enable` (`yes`): habilitar ssl.
* `dovecot_ssl_require` (`no`): requerir ssl.
* `dovecot_ssl_cert` (`{{ tls_certificate }}`): path absoluto al
certificado SSL.
* `dovecot_ssl_key` (`{{ tls_certificate_key }}`): path absoluto a la
clave privada SSL.
### LDAP
* `dovecot_ldap_enable` (`yes`): indica si habilitar la userdb/passdb
LDAP.
* `dovecot_ldap_servers`: (`["localhost"]`): lista de servidores ldap
para consultar.
* `dovecot_ldap_version` (`3`): version del protocolo LDAP.
* `dovecot_ldap_base` (`ou=People,dc=%Dd`): base para la búsqueda en
LDAP. `%Dd` convierte `mi.dominio.com` en `mi,dc=dominio,dc=com`.
* `dovecot_ldap_scope` (`subtree`): scope para la búsqueda. Valores
posibles: `base`, `onelevel`, `subtree`.
* `dovecot_ldap_user_filter` (`(&(objectClass=inetOrgPerson)
(uid=%n))`): filtro para obtener la entrada del usuario LDAP.
* `dovecot_ldap_pass_filter` (`(&(objectClass=inetOrgPerson)
(uid=%n))`): filtro para obtener la clave del usuario LDAP.
* `dovecot_ldap_user_attrs` (`=home={{dovecot_user_home}},
=uid={{vmail_user}}, =gid={{vmail_group}}`): atributos del usuario.
Por defecto se usan valores pre-calculados, sin consultar LDAP.
* `dovecot_ldap_pass_attrs` (`userPassword=password,
=userdb_home={{dovecot_user_home}}, =userdb_uid={{vmail_user}},
=userdb_gid={{vmail_group}}`): clave + mapeo de atributos
LDAP=Dovecot del usuario.
* `dovecot_ldap_iterate_attrs` (`=user=%{ldap:uid}@%d`): iteracion que
lista todos los usuarios que Dovecot conoce. Es para poder ejecutar
el comando `doveadm -A`. El formato es `<atributo LDAP>=<atributo
Dovecot>` o bien `=<atributo Dovecot>=<TEMPLATE>`, en donde TEMPLATE
es un string con campos `%{ldap:<nombre_atributo_ldap>}` que son
reemplazados por el valor correspondiente traido de LDAP.
CAVEAT: al usar `%Dd` en `dovecot_ldap_base`, no se puede utilizar
`doveadm -A`, sino que siempre se debe especificar un dominio usando
`doveadom -u "*@dominio"`. Cuando la base LDAP es fija (sin `%algo`),
se puede simplificar este campo a `uid=user`.
* `dovecot_ldap_iterate_filter` (`(objectClass=inetOrgPerson)`):
filtro para iteración, debe devolver todas las personas de tipo
`usuario` en LDAP.
* `dovecot_ldap_default_pass_scheme` (`CRYPT`): esquema de clave en
ldap. No debería ser necesario con una autenticación bind.
### Antispam
La configuración antispam viene por defecto para Bogofilter.
* `dovecot_antispam_enable` (`yes`): Indica si activar el plugin
antispam.
* `dovecot_antispam_backend` (`pipe`): Backend. Valores posibles:
`crm114`, `dspam`, `pipe`, `spool2dir`.
* `dovecot_antispam_signature` (`X-Bogosity`): Header que indica que
el mail ha sido escaneado para spam.
* `dovecot_antispam_pipe_program` (`/usr/bin/bogofilter`): programa
que entrena leyendo el mail en STDIN.
* `dovecot_antispam_pipe_program_args` (`-l`): argumentos pasados al
programa en todos los casos.
* `dovecot_antispam_pipe_program_notspam_arg` (`-n`): argumento que
indica que el mail NO ES spam.
* `dovecot_antispam_pipe_program_spam_arg` (`-s`): argumento que
indica que el mail ES spam.
* `dovecot_antispam_pipe_tmpdir` (`/tmp`): directorio temporal de pipe
(creo que el mail se copia ahi primero).
* `dovecot_antispam_signature_missing` (`error`): acción cuando se
mueve un mail que no tiene signature de/hacia spam. Valores
posibles: `error` (fallar en la operación), `move` (mover el mensaje
de todos modos). Se recomienda empezar con `error` para detectar
errores al entrenar. Una vez todo andando se recomienda `move`.
* `dovecot_antispam_spam` (`Junk;junk;Junk Mail;Spam;spam;SPAM`):
nombres de carpeta a interpretar como spam.
* `dovecot_antispam_trash` (`Trash;trash;mail/trash;Deleted
Messages`): nombres de carpeta a interpretar como papelera.
* `dovecot_antispam_debug_enable` (`no`)
* `dovecot_antispam_debug_target` (`syslog`)
* `dovecot_antispam_debug_verbosity` (`0`)
#### Para rspamd
```yaml
dovecot_antispam_enable: yes
dovecot_antispam_pipe_program: rspamc
dovecot_antispam_pipe_program_spam_arg learn_spam
dovecot_antispam_pipe_program_notspam_arg: learn_ham
```
### Quota
* `dovecot_quota_enable` (`yes`): activar plugin quota.
* `dovecot_quota_driver` (`count`): driver de quota. Opciones
posibles: `count`, `maildir`.
* `dovecot_quota_limit` (`4096M`): límite global de la cuota de
usuario.
* `dovecot_quota_additional_limit`: (`{Trash: 100M }`): límites
adicionales para casillas específicas.
* `dovecot_quota_grace` (`10%`): gracia de la cuota (en % o M).
### Sieve
* `dovecot_sieve_enable` (`yes`): activar plugin sieve.
* `dovecot_sieve_before` (`/etc/dovecot/sieve/before`): directorio con
scripts ejecutados antes que los del usuario.
* `dovecot_sieve_after` (`/etc/dovecot/sieve/after`): directorio con
scripts ejecutados después que los del usuario.
### Single-instance storage para adjuntos
* `dovecot_sis_enable` (`yes`): Indica si activar single-instance
storage para los adjuntos.
* `dovecot_sis_directory`: (`{{ vmail_home }}/attachments`): lugar
donde se guardan los adjuntos desduplicados.
* `dovecot_sis_min_size` (`128k`): tamaño minimo de adjuntos a guardar
en SIS.
* `dovecot_sis_hash` (`%{sha1}`): hash a usar para desduplicar.
* `dovecot_sis_queue_enable` (`no`): habilitar desduplicacion
postergada,
* `dovecot_sis_queue_directory` (`{{vmail_home}}/attachments-queue`):
carpeta donde se guardan los pendientes para desduplicar.
### Carpeta alternativa para correo
* `dovecot_altstorage_enable` (`no`): habilitar uso de carpeta
alternativa de correo.
* `dovecot_altstorage_directory` (`{{ vmail_home }}/alt-storage`):
carpeta alternativa de correo.