Modifications entre les versions 13 et 14
Version 13 à la date du 2007-12-10 15:27:52
Taille: 6461
Éditeur: JérômeSantini
Commentaire:
Version 14 à la date du 2007-12-10 18:39:23
Taille: 6462
Commentaire: j'ai failli le déplacer... mais en fait il était déjà au bon endroit :-D
Texte supprimé. Texte ajouté.
Ligne 103: Ligne 103:
||/usr/local/bin/synchro-mail-mysql.pl||Script de synchronisation|| ||/usr/local/sbin/synchro-mail-mysql.pl||Script de synchronisation||

Messagerie de Montréal

TableOfContents(2)

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

  • le MX principale du domaine auf.org

  • la messagerie locale du domaine ca.auf.org, avec un serveur IMAP

  • les listes de diffusions dans le domaine auf.org

  • un relais SMTP avec authentification, pour les postes nomades
  • les boîtes aux lettres de secours

Schéma général de la messagerie

attachment:schéma%20général.png attachment:schéma%20général.svg

Serveur pour le domaine auf.org

Documenter :

  • Postfix + MySQL
  • vacations
  • boîtes de secours
  • anti-spam + exceptions
  • transports pour ca.auf.org

  • choix de la valeur du délai avant avertissement (warning)

  • choix de la valeur d'expiration des mails en queue

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

  • Aucune boite aux lettres n'est présente sur ce serveur, tous les domaines en destination finale sont traités en domaines virtuels (liste des domaines dans la variable virtual_alias_domains). Cela permet d'activer le smtpd_reject_unlisted_sender pour rejeter les adresses en ...@auf.org qui n'existerait pas :

# 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
  • auforg_virtual.cf : une table MySQL qui correspond à la liste du personnel, extraite automatiquement du PostgreSQL de intranet.auf.

  • virtual-auf.org : un fichier hash géré à la main, pour toutes les exceptions

  • virtual-mailman : une expression régulière, pour renvoyer tout ce qui ressemble à des adresses administratives Mailman vers listes.auf.org.

Relais des sous-domaines auf.org

  • Le domaine auf.org est géré directement par le serveur, en destination finale, via virtual_alias_domains, qui ne tiens pas compte des sous-domaines. La variable relay_domains doit donc seulement tenir compte des sous-domaines xx.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

  • La configuration postfix mysql est [:Postfix/BackendMysql:classique], basée sur les virtual_mailbox_domains pour les domaines ca.auf.org et secours. Les paramètres d'accés à mysql sont définis dans /etc/postfix/virtual_mailbox_maps.cf. La tâche /etc/cron.d/synchro-mysql effectue une synchronisation régulière avec la base de données postgresql présente sur intranet.auf.

Dovecot

  • La configuration dovecot mysql est tout aussi [:Dovecot/BackendMysql:classique], si ce n'est que la requête permet l'authentification avec ou sans le "@auf.org" final de l'adresse email (pour des raisons de compatibilité avec l'historique).

password_query = SELECT username as user, password FROM users WHERE username='%u' or (%n=username and %d='auf.org')
  • /!\ Pour le moment, l'option disable_plaintext_auth = no (mot de passe en clair sur un canal en clair) a été laissée activée, le temps que tous les clients sont basculés en "TLS : OUI", d'ici la fin décembre 2007. Il faudra repasser cette option à "= yes" dès que les derniers clients de messagerie auront été reconfigurés.

Anti-Spam

  • + les exceptions

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 :

  • {{{# (attention, la suite ne fait que deux lignes, c'est votre nagivateur web qui coupe)

auth required pam_mysql.so user=messagerie passwd=vousrevez host=127.0.0.1 db=mail table=auforg_virtual [where=length(password)>1] usercolumn=source passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=messagerie passwd=vousrevez host=127.0.0.1 db=mail table=auforg_virtual [where=length(password)>1] usercolumn=source passwdcolumn=password crypt=1 }}}

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

Synchronisation des comptes utilisateurs

  • Les données des comptes proviennent de la base postgresql "AUF" sur intranet.auf. Une synchronisation régulière est faite avec les bases mysql utilisées par les divers composant du système de messagerie. La synchronisation se fait par un script lancé à intervalles réguliers sur intranet.auf. Les fichiers correspondant sont :

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 :

  • users
  • auforg_virtual
  • auforg_vacation

Listes de diffusion

  • forwarding via smtp.ca.auf.org à travers le transport auf: ; expliquer pourquoi

  • synchro' des listes de diffusions ; les scripts

ZA/Montréal/ArchitectureDeLaMessagerie (dernière édition le 2010-08-26 17:11:38 par MoussaNombre)