Postfix (edge-mta) faisait verifier chaque mot de passe de soumission par le Dovecot du mailstore, sur :12345. Le client SASL Dovecot de Postfix ne chiffre pas : chaque mot de passe traversait le reseau en clair, et le registre disait ce flux tls. Le flux est supprime, pas chiffre. serveur_postfix pose a cote de lui un Dovecot d'authentification seule (serveur_dovecot/tasks/auth_locale.yml) : coeur + LDAP, aucun protocole, aucun port, joint par private/auth, qui verifie sur l'annuaire en LDAPS. Le 12345 disparait des deux roles et du pare-feu ; serveur_dovecot_sasl_reseau est retire, et une garde arrete l'instance qui le pose encore. Deploye chez les deux locataires ; prouve par un envoi reel chez chacun (sasl_username au journal, remise LMTP, relu par IMAP). test_sasl_local.py garde le changement ; 95 preuves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
1.8 KiB
Django/Jinja
43 lines
1.8 KiB
Django/Jinja
# Géré par Set-OPS (rôle serveur_dovecot, authentification locale). Ne pas éditer à la main.
|
|
# Syntaxe Dovecot 2.4.
|
|
{#
|
|
AUTHENTIFICATION SEULE, A COTE DE POSTFIX (2026-10-12).
|
|
|
|
Postfix confiait la verification des mots de passe de soumission a la machine des
|
|
boites, par `smtpd_sasl_path = inet:<mailstore>:12345`. Le client SASL Dovecot de
|
|
Postfix ne sait pas chiffrer : chaque mot de passe traversait le reseau en clair, et le
|
|
registre le disait `tls`. Directive du 2026-10-12 : tout transit chiffre.
|
|
|
|
On ne chiffre pas ce flux, on le supprime. Ce Dovecot-ci ne sert ni IMAP ni LMTP (aucun
|
|
paquet de protocole n'est installe) et n'ecoute AUCUN port : Postfix lui parle par un
|
|
socket local, et il verifie le mot de passe sur l'annuaire en LDAPS — le chemin que
|
|
Postfix emprunte deja sur cette machine. Le mot de passe ne voyage plus que dans TLS.
|
|
|
|
Eprouve sur banc Debian 13 avant d'ecrire le role : processus `dovecot`, `auth`,
|
|
`anvil`, `log`, `config` seulement ; 235 avec le bon mot de passe, 535 avec un faux,
|
|
AUTH non offert hors TLS.
|
|
#}
|
|
dovecot_config_version = 2.4.0
|
|
|
|
# Garder l'adresse complète (user@domaine) comme identité — domaines virtuels.
|
|
auth_username_format = %{user}
|
|
auth_mechanisms = plain login
|
|
ldap_uris = {{ serveur_dovecot_ldap_uris }}
|
|
ldap_base = {{ serveur_dovecot_ldap_base }}
|
|
ldap_auth_dn = {{ serveur_dovecot_ldap_bind_dn }}
|
|
ldap_auth_dn_password = {{ serveur_dovecot_ldap_bind_password }}
|
|
|
|
{# Le meme passdb que la machine des boites : une identite, un mot de passe, une regle.
|
|
Pas de userdb : une verification SASL n'en consulte aucun. #}
|
|
passdb ldap {
|
|
ldap_filter = {{ serveur_dovecot_ldap_filter }}
|
|
ldap_bind = yes
|
|
}
|
|
|
|
service auth {
|
|
unix_listener {{ serveur_dovecot_postfix_socket_dir }}/auth {
|
|
user = postfix
|
|
group = postfix
|
|
mode = 0660
|
|
}
|
|
}
|