• Docker
  • Enregistrement TLSA pour smtp

Bonjour à tous

J'ai utilisé les super tuto de @Hardware pour installer un serveur autoritaire avec DNSSEC et TLSA.
J'ai incrémenté ma zone avec les enregistrements TLSA pour le port 443. Cela fonctionne parfaitement (testé avec TLSA validator.

Par contre je ne sais pas comment intégrer le TLSA avec SMTP. Mon serveur messagerie est également installé via docker avec l'image de @Hardware (le serveur dns et dnssec fonctionnent parfaitement, pas de soucis à ce niveau)

https://blog.meshup.net/deploy-nsd-dnssec-with-docker/
https://github.com/hardware/mailserver

Merci à vous

Edit : pour l'empreinte TLSA j 'ai utilisé le certificat fullchain.pem de let'sencrypt
https://jesuisadmin.fr/comment-avoir-une-excellente-configuration-https-en-2017/

Ça marche exactement de la même manière que pour HTTP.

Exemple avec la zone DNS de mondedie.fr :

_dane               IN                TLSA      3 0 1      ebfba90af284b3e1ba951a15455ff8788b0314e44c3da1a0a7b62596aabb73e4

# Port 443, enregistrements DANE pour mondedie.fr et webmail.mondedie.fr
_443._tcp           IN                CNAME                _dane
_443._tcp.webmail   IN                CNAME                _dane

# Port 25, enregistrements DANE pour mail.mondedie.fr
_25._tcp.mail       IN                CNAME                _dane

Ensuite tu peux vérifier la validité avec https://www.hardenize.com/

Et l'image mail est déjà configurée pour supporter le mode opportunistic DANE TLS comme indiqué dans la rfc7672.

Plus d'info ici :

https://blog.meshup.net/securiser-lacces-a-son-site-internet-avec-le-protocole-dane/
https://github.com/hardware/mailserver/rootfs/etc/postfix/main.cf#L59-L60
http://www.postfix.org/postconf.5.html#smtp_tls_security_level
http://www.bortzmeyer.org/7672.html

En fait j'ai l'ancienne version de ton image mailserver

# Smtp ( OUTGOING )
smtp_tls_loglevel = 1
smtp_tls_security_level = may
#smtp_tls_CAfile =
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_ciphers = medium
smtp_tls_note_starttls_offer = yes

Du coup je suppose que je dois faire la mise à jour. Y a t'il une méthode pour ne pas perdre les mails et les adresses mails existantes?

Si j'efface le container et l'image actuelle "hardware/mailserver" et que je le recrée avec docker-compose up -d est ce que je garde ma config actuelle?

Ce doit être pour ca que TLSA ne fonctionne pas car j'avais deja rajouté le cname sur le port 25!

Bonjour à tous

Le déploiement de la nouvelle version s'est déroulée parfaitement, juste que je n'ai pas utilisé Traefik simplement parce que j'ai des services sur l'hôte et que Traefik ne gère le reverse proxy que pour les containers, du coup je fais tourner avec nginx sur la machine hôte. Mais peu être y a t il un autre moyen pour que Traefik gère tous les reverses ?

Quoiqu'il en soit j'ai utilisé xatax/letsencrypt pour créer mes certificats qui sont bien reconnus comme etant trouvé dans le log

# docker logs -f mailserver

[INFO] Let's encrypt live directory found
[INFO] Using /etc/letsencrypt/live/mail.domain.tld folder
[INFO] Creating DKIM keys for domain domain.tld
[INFO] Database hostname found in /etc/hosts
[INFO] Fetchmail forwarding is enabled.
[INFO] Automatic GPG encryption is enabled.
[INFO] ManageSieve protocol is enabled.
[INFO] POP3 protocol is enabled.

Donc tout va bien et maintenant j'ai bien le TLSA reconnu pour smtp

Juste que dans le log j'ai les warnings suivants

mail dovecot: master: Warning: Corrected permissions for login directory /var/run/dovecot/login
2018-04-29T04:31:14.799876+00:00 mail dovecot: master: Warning: Corrected permissions for login directory /var/run/dovecot/token-login
2018-04-29T04:31:14.799954+00:00 mail dovecot: master: Warning: Corrected permissions for empty directory /var/run/dovecot/empty

mail postfix/postfix-script[1012]: warning: not owned by root: /var/spool/postfix/etc
2018-04-29T04:31:14.964508+00:00 mail postfix/postfix-script[1013]: warning: not owned by root: /var/spool/postfix/etc/hosts
2018-04-29T04:31:14.967578+00:00 mail postfix/postfix-script[1014]: warning: not owned by root: /var/spool/postfix/etc/services
2018-04-29T04:31:14.970538+00:00 mail postfix/postfix-script[1015]: warning: not owned by root: /var/spool/postfix/etc/localtime
2018-04-29T04:31:14.973604+00:00 mail postfix/postfix-script[1016]: warning: not owned by root: /var/spool/postfix/etc/resolv.conf
2018-04-29T04:31:14.979923+00:00 mail postfix/postfix-script[1024]: warning: not owned by root: /var/spool/postfix/usr
2018-04-29T04:31:14.983233+00:00 mail postfix/postfix-script[1025]: warning: not owned by root: /var/spool/postfix/usr/lib
2018-04-29T04:31:14.990624+00:00 mail postfix/postfix-script[1026]: warning: not owned by root: /var/spool/postfix/usr/lib/zoneinfo
2018-04-29T04:31:14.993781+00:00 mail postfix/postfix-script[1027]: warning: not owned by root: /var/spool/postfix/usr/lib/sasl2

En tout cas merci encore pour ce super mailserver 😉

    laster13 juste que je n'ai pas utilisé Traefik simplement parce que j'ai des services sur l'hôte et que Traefik ne gère le reverse proxy que pour les containers, du coup je fais tourner avec nginx sur la machine hôte. Mais peu être y a t il un autre moyen pour que Traefik gère tous les reverses ?

    Il gère divers backend autre que docker mais c'est vrai qu'on peut pas l'utiliser comme nginx pour servir du contenu statique sans backend derrière. Après son job c'est d'être un reverse proxy intelligent pas un serveur web.

    laster13 Juste que dans le log j'ai les warnings suivants

    Tu peux ignorer, c'est un comportement normal quand tu redémarres ton conteneur. Postfix et dovecot corrigent toujours leurs permissions. Si tu veux éviter ces messages, il faut supprimer ton conteneur puis le démarrer :

    docker-compose rm -fs mailserver && docker-compose up -d

    laster13 En tout cas merci encore pour ce super mailserver

    Merci à toi pour ton retour d'expérience 🙂

    Juste un dernier point sur lequel je bloque

    Je n'arrive pas à faire fonctionner le vhost de rspamd avec nginx en reverse sur l'hôte et pourtant Webmail et postfixadmin sont exactement conçus sur ce modèle et eux fonctionnent

    server {
    listen 80;
    server_name spam.domain.ltd;
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 ssl http2;
    server_name spam.domain.ltd;

    ssl_certificate /mnt/docker/ssl/live/mail.domain.ltd/fullchain.pem;
    ssl_certificate_key /mnt/docker/ssl/live/mail.domain.ltd/privkey.pem;

    include /etc/nginx/conf/headers_params;

    location / {
    proxy_pass http://127.0.0.1:11334;
    include /etc/nginx/conf/proxy_params;
    }
    }

    J'ai pourtant bien rentré un CNAME dans ma zone dns

    Merci

    Tu as bien mis le port 11334 dans ton docker-compose.yml ?

    mailserver:
      ports:
        - "11334:11334"

    Oui j'ai bien mis le port. J'ai également tenté avec

    ports:
    - "25:25"
    - "143:143"
    - "587:587"
    - "993:993"
    - "4190:4190"
    - "127.0.0.1:11334:11334"

    Pour l'instant rien.. Je poursuis mes recherches et merci de ta reactivité

    Bon j ai un peu honte, la propagation du sous domaine n'était pas terminée, il me semblait que sur Gandi ca allait plus vite. En tout cas problème réglé.

    Merci encore

    Répondre…