Modifications entre les versions 1 et 12 (s'étendant sur 11 versions)
Version 1 à la date du 2007-11-21 20:37:09
Taille: 962
Éditeur: JérômeSantini
Commentaire:
Version 12 à la date du 2007-12-04 10:37:25
Taille: 5626
Éditeur: JérômeSantini
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 3: Ligne 3:
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 relai smtp avec authentification, pour les postes nomades
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
Ligne 10: Ligne 10:
= Domaine auf.org =
Ligne 12: Ligne 11:
 documenter :
 * postfix + mysql
== 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
Ligne 15: Ligne 21:
 * secours
 * reecriture des adresses
 * antispam + exceptions
 * transports pour ca.auf.org
 * 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
Ligne 20: Ligne 27:
= Domaine ca.auf.org = === Adresses en auf.org et ré-écriture des adresses ===
Ligne 22: Ligne 29:
 documenter :
 * config postfix + mysql
 * config dovecot + mysql
 * antispam + exceptions
 * port 587 + sasl + tls
 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 :
Ligne 28: Ligne 31:
== basculement d'un domaine xx.auf.org en urgence sur le serveur imap de montréal == {{{
# pour rejeter les mails from: xxx@auf.org avec xxx qui n'existerait pas
smtpd_reject_unlisted_sender = yes
unverified_sender_reject_code=550
}}}
Ligne 30: Ligne 37:
= Listes de diffusion = 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
}}}
Ligne 32: Ligne 46:
 * forwarding via smtp.ca.auf.org à travers le transport {{{auf:}}}. expliquer pourquoi
 * synchro des maillists. les scripts.
 * `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 ==

== Listes de diffusion ==

 * forwarding via `smtp.ca.auf.org` à travers le transport `auf:` ; expliquer pourquoi
 * synchro' des listes de diffusions ; les scripts

Messagerie de Montréal

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

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)