diff --git a/docker-compose/mail.yml b/docker-compose/mail.yml index 7ac7c7041dbc492873bf47bb5292ed2b41708464..71acfa789cf82e3d570a968627fb335f875e206c 100644 --- a/docker-compose/mail.yml +++ b/docker-compose/mail.yml @@ -27,7 +27,8 @@ services: - mail volumes: - /var/lib/docker/volumes/mail-mta-log/_data:/var/log - - /DATA/docker/mail/opendkim/nov2018.private:/etc/dkimkeys/nov2018.picasoft.net.rsa +#doit contenir selecteur.domaine.rsa + - /DATA/docker/mail/opendkim/:/etc/dkimkeys/ - /DATA/docker/mail/ssl/:/certs-ssl/ environment: #adresse et port du serveur LMTP i.e. le MTA @@ -45,7 +46,7 @@ services: LDAP_PORT: 389 #réglage du bind : login et mot de passe d'un compte qui a suffisamment de droits pour lire l'arborescence (à l'exception des mots de passe) LDAP_BIND_DN: cn=readonly,dc=picasoft,dc=net - LDAP_BIND_PW readonly + LDAP_BIND_PW: readonly #réglage de la manière dont on répertorie les comptes et les adresses existantes #la config actuelle fait que la possession d'une adresse mail se fait ainsi : login => login@picasoft.net #cependant, nous avons quand même deux couches différentes: l'existence d'un compte (SASL) et l'existence d'une adresse @@ -54,14 +55,15 @@ services: #pour ce faire, il suffit d'utiliser des attributs LDAP différents #nous utilisons donc le cn pour l'existence d'un compte LDAP, et l'uid pour l'existence d'une adresse #niveau de l'arborescence à partir duquel les entrées sont trouvées: - LDAP_SEARCH_BASE dc=picasoft,dc=net + LDAP_SEARCH_BASE: dc=picasoft,dc=net #filtre permettant de répertorier les comptes SASL - LDAP_SASL_FILTER cn=%u + LDAP_SASL_FILTER: cn=%u #filtre permettant de répertorier les adresses mail - LDAP_VIRTUAL_MAILBOX_FILTER uid=%s + LDAP_VIRTUAL_MAILBOX_FILTER: uid=%s #ajout de listes noires pour éviter le SPAM. La décision politique et l'éthique associée sortent du cadre de la conception de cette image et doivent être discutées par l'asso; en tout cas, si on lève cette restriction, elle doit être remplacée par une autre (un spamassassin par exemple). - SMTPD_CLIENT_RESTRICTIONS reject_rbl_client sbl.spamhaus.org, reject_rbl_client dnsbl.sorbs.net - + SMTPD_CLIENT_RESTRICTIONS: reject_rbl_client sbl.spamhaus.org, reject_rbl_client dnsbl.sorbs.net +#prefixe DKIM, utilise pour identifier la clef + DKIM_SELECTOR: nov2018 labels: - "traefik.frontend.rule=Host:mail.test.picasoft.net" - "traefik.port=80" diff --git a/pica-mail-mta/Dockerfile b/pica-mail-mta/Dockerfile index 4fef2285b578fdeb1bc8bc5e50212bfdc24c0abc..6d6d597f6800f1916606f4d0a52dc6cd0160c14e 100644 --- a/pica-mail-mta/Dockerfile +++ b/pica-mail-mta/Dockerfile @@ -56,6 +56,7 @@ RUN mkdir /etc/opendmarc COPY --chown=opendmarc:opendmarc spam/ignore.hosts /etc/opendmarc/ignore.hosts COPY saslauthd-postfix /etc/default/ +COPY opendkim-tables.sh / COPY config.sh / COPY entrypoint.sh / diff --git a/pica-mail-mta/config.sh b/pica-mail-mta/config.sh index 70fd98c9e94db6a4ce8c18567d90783d937f6c7f..db402983f81fce1b21368933c602d991b7d21da3 100755 --- a/pica-mail-mta/config.sh +++ b/pica-mail-mta/config.sh @@ -102,6 +102,8 @@ AuthservID ${MY_HOSTNAME} EOF #configuration DKIM +#ecriture des tables indiquant quoi signer avec quelle clef +/opendkim-tables.sh postconf -e "milter_default_action = accept" postconf -e "milter_protocol = 6" postconf -e "smtpd_milters = local:/opendkim/opendkim.sock, local:/opendmarc/opendmarc.sock" diff --git a/pica-mail-mta/opendkim-tables.sh b/pica-mail-mta/opendkim-tables.sh new file mode 100755 index 0000000000000000000000000000000000000000..140b7a457c2911a00e05e3f793d4b4b1bf4d74bc --- /dev/null +++ b/pica-mail-mta/opendkim-tables.sh @@ -0,0 +1,15 @@ +if [ -z ${MY_DOMAIN+x} ] +then + >&2 echo "Fatal to opendkim set-up : MY_DOMAIN environment variable is unset" + exit 1 +fi +if [ -z ${DKIM_SELECTOR+x} ] +then + >&2 echo "Fatal to opendkim set-up : DKIM_SELECTOR environment variable is unset" + exit 1 +fi +echo "pica-generating opendkim tables (rsakeys and signingdomains tables) for domain ${MY_DOMAIN} and selector ${DKIM_SELECTOR}" +rm /etc/dkimkeys/rsakeys.table +echo "${DKIM_SELECTOR}._domainkey.${MY_DOMAIN} ${MY_DOMAIN}:${DKIM_SELECTOR}:/etc/dkimkeys/${DKIM_SELECTOR}.${MY_DOMAIN}.rsa" > /etc/dkimkeys/rsakeys.table +rm /etc/dkimkeys/signingdomains.table +echo "*@${MY_DOMAIN} ${DKIM_SELECTOR}._domainkey.${MY_DOMAIN}" > /etc/dkimkeys/signingdomains.table