Messagerie de Montréal

Le système de messagerie de Montréal gère plusieurs aspects de la messagerie de l'agence :

Schéma général de la messagerie

schéma général.png schéma général.svg

Serveur pour le domaine auf.org

Documenter :

Adresses en auf.org et ré-écriture des adresses

# pour rejeter les mails from: xxx@auf.org  avec xxx qui n'existerait pas
smtpd_reject_unlisted_sender = yes
unverified_sender_reject_code=550

Les adresses qui existent sont listée dans la variable virtual_alias_maps :

# attention : expressions regulieres dans le fichier mailman :
# toujours le laisser en dernier
virtual_alias_maps = proxy:mysql:/etc/postfix/auforg_virtual.cf, 
        hash:/etc/postfix/virtual-auf.org, 
        regexp:/etc/postfix/virtual-mailman

Relais des sous-domaines auf.org

# a lire comme "tous les sous-domaines de auf.org SAUF auf.org lui-meme
relay_domains = .auf.org,!auf.org
# a verifier, mais on peut *suremement* laisser cette variable completement vide
# l'important est que relay_domains ne soit pas listé dedans
parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,smtpd_access_maps

Serveur pour le domaine ca.auf.org

Postfix

Dovecot

password_query = SELECT username as user, password FROM users WHERE username='%u' or (%n=username and %d='auf.org')

Anti-Spam

Reception de mail sur le port 587 (submission) avec TLS et authentification obligatoire

C'est une configuration TLS+SASL classique, avec le service submission activé dans le master.cf. Voir Postfix/Chiffrement et Postfix/Authentification.

Une particularité se situe au niveau de PAM, car dans la table MySQL on a deux lignes pour chaque source : la ligne vers @xx.auf.org et la ligne vers @secours. Pour que la requête SQL ne renvoie qu'un seul résultat valide (celui concernant @xx.auf.org), on y ajoute une contrainte WHERE length(password)>1 qui indique que la ligne doit posséder un mot de passe de plus d'un caractère (c'est-à-dire différent de "!", mais comme on ne peut mettre de guillemets dans la ligne de configuration de ce module PAM... astuces, astuces...).

Le fichier /etc/pam.d/smtp :

Basculement d'un domaine xx.auf.org en urgence sur le serveur IMAP de Montréal

Synchronisation des comptes utilisateurs

Fichier

Description

/usr/local/sbin/synchro-mail-mysql.pl

Script de synchronisation

/etc/synchro-mail-mysql.conf

Fichier de configuration

/etc/cron.d/synchro-mail-mysql

Fichier cron d'execution régulière

Voir les commentaires du fichier de configuration pour en connaitre le format.

Les tables synchronisées sont :

Listes de diffusion