mejoras generales

This commit is contained in:
Mauro Torrez 2019-09-10 20:51:11 -03:00
parent c4a1365373
commit 2ff593c096
13 changed files with 43 additions and 37 deletions

View File

@ -100,3 +100,9 @@ dovecot_quota_additional_limit:
# gracia (en porcentaje o M) # gracia (en porcentaje o M)
dovecot_quota_grace: 10% dovecot_quota_grace: 10%
# submission
dovecot_submission_enable: yes
dovecot_submission_relay_host: postfix
dovecot_submission_relay_port: 25
dovecot_submission_relay_trusted: yes

View File

@ -2,7 +2,11 @@ FROM eumau/debian:buster-slim
LABEL maintainer "Mauro Torrez <mauro@mau.ro>" LABEL maintainer "Mauro Torrez <mauro@mau.ro>"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ENV LC_ALL C ENV LC_ALL C
ENV SUBMISSION_ENABLE= \ ENV \
MAIL_DOMAINS= \
AUTH_MECHANISMS=plain \
AUTH_USERNAME_FORMAT="%Lu" \
AUTH_MASTER_ENABLE= \
SUBMISSION_RELAY_HOST= \ SUBMISSION_RELAY_HOST= \
SUBMISSION_RELAY_PORT=25 \ SUBMISSION_RELAY_PORT=25 \
SUBMISSION_RELAY_TRUSTED=yes \ SUBMISSION_RELAY_TRUSTED=yes \
@ -11,9 +15,25 @@ ENV SUBMISSION_ENABLE= \
SUBMISSION_RELAY_PASSWORD= \ SUBMISSION_RELAY_PASSWORD= \
SUBMISSION_RELAY_SSL=starttls \ SUBMISSION_RELAY_SSL=starttls \
SUBMISSION_RELAY_SSL_VERIFY=no \ SUBMISSION_RELAY_SSL_VERIFY=no \
SUBMISSION_RELAY_RAWLOG_DIR= SUBMISSION_RELAY_RAWLOG_DIR= \
LDAP_ENABLE= \
LDAP_HOSTS="ldap:389" \
LDAP_URIS= \
LDAP_BIND=yes \
LDAP_VERSION=3 \
LDAP_BASE="dc=example,dc=org" \
LDAP_SCOPE=sub \
LDAP_USER_ATTRS="=home=/vmail/mail/%d/%n, =uid=5000, =gid=5000" \
LDAP_USER_FILTER="(&(objectClass=inetOrgPerson)(uid=%n))" \
LDAP_PASS_ATTRS="userPassword=password, =userdb_home=/vmail/mail/%d/%n, =userdb_uid=5000, =userdb_gid=5000" \
LDAP_PASS_FILTER="(&(objectClass=inetOrgPerson)(uid=%n))" \
LDAP_ITERATE_ATTRS="=user=%{ldap:uid}@%d" \
LDAP_ITERATE_FILTER="(objectClass=inetOrgPerson)" \
LDAP_DEFAULT_PASS_SCHEME=CRYPT
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN groupadd -g 5000 vmail && useradd -g vmail -u 5000 vmail -d /vmail \
&& mkdir -p /vmail && chown vmail:vmail /vmail \
&& apt-get update && apt-get install -y --no-install-recommends \
dovecot-lmtpd \ dovecot-lmtpd \
dovecot-imapd \ dovecot-imapd \
dovecot-ldap \ dovecot-ldap \
@ -24,8 +44,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
bogofilter \ bogofilter \
ssl-cert \ ssl-cert \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& groupadd -g 5000 vmail && useradd -g vmail -u 5000 vmail -d /vmail \
&& mkdir -p /vmail && chown vmail:vmail /vmail \
&& mkdir -p /ssl && chmod 700 /ssl \ && mkdir -p /ssl && chmod 700 /ssl \
&& cp /etc/ssl/certs/ssl-cert-snakeoil.pem /ssl/cert.pem \ && cp /etc/ssl/certs/ssl-cert-snakeoil.pem /ssl/cert.pem \
&& cp /etc/ssl/private/ssl-cert-snakeoil.key /ssl/key.pem \ && cp /etc/ssl/private/ssl-cert-snakeoil.key /ssl/key.pem \
@ -44,13 +62,7 @@ ADD 10-mail.conf \
ADD local.conf /etc/dovecot/ ADD local.conf /etc/dovecot/
ADD junk-filter.sieve /etc/dovecot/sieve/before/ ADD junk-filter.sieve /etc/dovecot/sieve/before/
ADD \ ADD confd /etc/confd/
10-auth.conf.tmpl \
20-lmtp.conf.tmpl \
ldap.conf.ext.tmpl \
submission.conf.tmpl \
/etc/confd/templates/
ADD confd-*.toml /etc/confd/conf.d/
RUN sievec /etc/dovecot/sieve/before RUN sievec /etc/dovecot/sieve/before

View File

@ -6,5 +6,5 @@ keys = [
"/auth/username/format", "/auth/username/format",
"/auth/mechanisms", "/auth/mechanisms",
"/auth/master/enable", "/auth/master/enable",
"/auth/ldap/enable" "/ldap/enable"
] ]

View File

@ -2,7 +2,6 @@
src = "submission.conf.tmpl" src = "submission.conf.tmpl"
dest = "/etc/dovecot/local.d/submission.conf" dest = "/etc/dovecot/local.d/submission.conf"
keys = [ keys = [
"/submission/enable",
"/submission/relay/host", "/submission/relay/host",
"/submission/relay/port", "/submission/relay/port",
"/submission/relay/trusted", "/submission/relay/trusted",

View File

@ -17,7 +17,7 @@ passdb {
{{ end }} {{ end }}
{{ if eq (getv "/auth/ldap/enable") "yes"}} {{ if eq (getv "/ldap/enable") "yes"}}
passdb { passdb {
driver = ldap driver = ldap
args = /etc/dovecot/local.d/ldap.conf.ext args = /etc/dovecot/local.d/ldap.conf.ext

View File

@ -1,5 +1,3 @@
{{ if eq (getv "/submission/enable") "yes"}}
protocols = $protocols submission
submission_relay_host = {{getv "/submission/relay/host"}} submission_relay_host = {{getv "/submission/relay/host"}}
submission_relay_port = {{getv "/submission/relay/port"}} submission_relay_port = {{getv "/submission/relay/port"}}
submission_relay_trusted = {{getv "/submission/relay/trusted"}} submission_relay_trusted = {{getv "/submission/relay/trusted"}}
@ -9,6 +7,3 @@ submission_relay_password = {{getv "/submission/relay/password"}}
submission_relay_ssl = {{getv "/submission/relay/ssl"}} submission_relay_ssl = {{getv "/submission/relay/ssl"}}
submission_relay_ssl_verify = {{getv "/submission/relay/ssl/verify"}} submission_relay_ssl_verify = {{getv "/submission/relay/ssl/verify"}}
submission_relay_rawlog_dir = {{getv "/submission/relay/rawlog/dir"}} submission_relay_rawlog_dir = {{getv "/submission/relay/rawlog/dir"}}
{{else}}
# submission service disabled
{{end}}

View File

@ -11,24 +11,16 @@
dest: /root/.dovecot-docker-image dest: /root/.dovecot-docker-image
loop: loop:
- Dockerfile - Dockerfile
- 10-auth.conf.tmpl
- 10-mail.conf - 10-mail.conf
- 10-master.conf - 10-master.conf
- 10-ssl.conf - 10-ssl.conf
- 15-mailboxes.conf - 15-mailboxes.conf
- 20-imap.conf - 20-imap.conf
- 20-lmtp.conf.tmpl
- 90-antispam.conf - 90-antispam.conf
- 90-sieve.conf - 90-sieve.conf
- ldap.conf.ext.tmpl
- junk-filter.sieve - junk-filter.sieve
- local.conf - local.conf
- submission.conf.tmpl - confd
- confd-auth.toml
- confd-ldap.toml
- confd-ldap2.toml
- confd-lmtp.toml
- confd-submission.toml
tags: skip_me tags: skip_me
- name: Crear imagen {{ dovecot_image }} - name: Crear imagen {{ dovecot_image }}
@ -50,25 +42,27 @@
- "{{ dovecot_volume_ssl }}:/ssl/" - "{{ dovecot_volume_ssl }}:/ssl/"
networks: networks:
- name: "{{ docker_network_name }}" - name: "{{ docker_network_name }}"
ports: ports: >-
- 143:143 [ "143:143",
- 2000:2000 {{ '"587:587",' if dovecot_submission_enable else '' }}
"2000:2000"
]
env: env:
MAIL_DOMAINS: "{{ mail_domains.keys() | list | join(' ') }}" MAIL_DOMAINS: "{{ mail_domains.keys() | list | join(' ') }}"
AUTH_MECHANISMS: "{{ dovecot_auth_mechanisms }}" AUTH_MECHANISMS: "{{ dovecot_auth_mechanisms }}"
AUTH_USERNAME_FORMAT: "{{ dovecot_auth_username_format }}" AUTH_USERNAME_FORMAT: "{{ dovecot_auth_username_format }}"
AUTH_LDAP_ENABLE: "{{ 'yes' if dovecot_ldap_enable else '' }}"
AUTH_MASTER_ENABLE: "{{ 'yes' if dovecot_auth_master_enable else '' }}" AUTH_MASTER_ENABLE: "{{ 'yes' if dovecot_auth_master_enable else '' }}"
SUBMISSION_ENABLE: "yes" SUBMISSION_RELAY_HOST: "{{ dovecot_submission_relay_host }}"
SUBMISSION_RELAY_HOST: postfix SUBMISSION_RELAY_PORT: "{{ dovecot_submission_relay_port | string }}"
SUBMISSION_RELAY_PORT: "25" SUBMISSION_RELAY_TRUSTED: "{{ 'yes' if dovecot_submission_relay_trusted else 'no' }}"
SUBMISSION_RELAY_TRUSTED: "yes"
# SUBMISSION_RELAY_USER: # SUBMISSION_RELAY_USER:
# SUBMISSION_RELAY_MASTER_USER: # SUBMISSION_RELAY_MASTER_USER:
# SUBMISSION_RELAY_PASSWORD: # SUBMISSION_RELAY_PASSWORD:
# SUBMISSION_RELAY_SSL: starttls # SUBMISSION_RELAY_SSL: starttls
# SUBMISSION_RELAY_SSL_VERIFY: "no" # SUBMISSION_RELAY_SSL_VERIFY: "no"
# SUBMISSION_RELAY_RAWLOG_DIR: # SUBMISSION_RELAY_RAWLOG_DIR:
LDAP_ENABLE: "{{ 'yes' if dovecot_ldap_enable else '' }}"
LDAP_HOSTS: "{{ dovecot_ldap_hosts | join(' ') }}" LDAP_HOSTS: "{{ dovecot_ldap_hosts | join(' ') }}"
LDAP_URIS: "{{ dovecot_ldap_uris | join(' ') }}" LDAP_URIS: "{{ dovecot_ldap_uris | join(' ') }}"
LDAP_BIND: "{{ 'yes' if dovecot_ldap_bind else 'no' }}" LDAP_BIND: "{{ 'yes' if dovecot_ldap_bind else 'no' }}"