Modifications entre les versions 4 et 10 (s'étendant sur 6 versions)
Version 4 à la date du 2007-11-28 09:38:42
Taille: 3086
Éditeur: JérômeSantini
Commentaire:
Version 10 à la date du 2007-11-30 11:12:35
Taille: 6397
É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:
= Serveur pour le 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
 * antispam + exceptions
 * transports pour ca.auf.org
 * messages d'erreur en français

 * choix de la valeur du delay avant warning
 * boîtes de secours
 * anti-spam + exceptions
 * transports pour `ca.auf.org`
 * choix de la valeur du délai avant avertissement (''warning'')
Ligne 22: Ligne 27:
== Adresses en auf.org et ré-écriture des adresses == === Adresses en auf.org et ré-écriture des adresses ===
Ligne 24: Ligne 29:
 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 :  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 32: Ligne 37:
Les adresses qui existent sont listée dans la variable {{{virtual_alias_maps}}} : Les adresses qui existent sont listée dans la variable `virtual_alias_maps` :
Ligne 41: Ligne 46:
 * {{{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-main}}} : une expression reguliere, pour renvoyer tout ce qui ressemble à des adresses administratives mailman vers listes.auf.org.
 * `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`.
Ligne 46: Ligne 51:
== Relai des sous-domaines auf.org == === Relais des sous-domaines auf.org ===
Ligne 48: Ligne 53:
 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.  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`.
Ligne 59: Ligne 64:
= Serveur pour le domaine ca.auf.org = == Serveur pour le domaine ca.auf.org ==
Ligne 61: Ligne 66:
 documenter :
 * config postfix + mysql
 * config dovecot + mysql
 * antispam + exceptions
 * port 587 + sasl + tls
Documenter :
 * config' Postfix + MySQL
 * config' Dovecot + MySQL
<!> {{{disable_plaintext_auth = no}}} pour le moment !! à remettre à yes dès que Darko aura fini de basculer les clients de messagerie sur la nouvelle configuration.
 * anti-spam + exceptions
Ligne 67: Ligne 72:
== basculement d'un domaine xx.auf.org en urgence sur le serveur imap de montréal == === Reception de mail sur le port 587 (submission) avec TLS et authentification obligatoire ===
Ligne 69: Ligne 74:
= Listes de diffusion =  1. Mise en place du chiffrage TLS :
   {{{# TLS parameters, ajouté dans /etc/postfix/main.cf :
smtpd_tls_cert_file=/etc/postfix/ssl/smtp-sortant-ca-auf-org.crt
smtpd_tls_key_file=/etc/postfix/ssl/smtp-sortant-ca-auf-org.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
}}}
Ligne 71: Ligne 83:
 * forwarding via smtp.ca.auf.org à travers le transport {{{auf:}}}. expliquer pourquoi
 * synchro des maillists. les scripts.
 1. Mise en place de l'authentification SASL :
  a. dans `/etc/default/saslauthd`, on demande à SASL de passer par PAM :
   {{{START=yes
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-r -m /var/spool/postfix/var/run/saslauthd"
}}}
  a. dans `/etc/pam.d/smtp`, on dit à PAM d'utiliser MySQL pour le service 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
}}}
  a. dans `/etc/postfix/sasl/smtpd.conf` on configure SASL au niveau de Postfix pour lui dire de passer par saslauthd :
   {{{pwcheck_method: saslauthd
mech_list: PLAIN LOGIN ANONYMOUS
log_level: 7
}}}
  a. et enfin dans `/etc/postfix/main.cf` on dit à Postfix d'utiliser SASL, de ne permettre l'authentification QUE si le canal est crypté en TLS, et on libéralise l'utilisation pour les gens authentifiés :
   {{{# lignes ajoutées dans /etc/postfix/main.cf :
# on active l'authentification SASL
smtpd_sasl_auth_enable = yes
# l'authentification n'est possible que sur une connexion cryptée en TLS
smtpd_tls_auth_only = yes
# si une personne est authentifiée, elle peut envoyer des messages à n'importe qui
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
}}}

A partir de là, le port 25 est déjà capable de recevoir des messages avec TLS+SASL. Cependant, comme le port 25 est de plus en plus filtré (lutte anti-spam) on va utiliser le port 587 comme le recommande la [http://www.ietf.org/rfc/rfc2476.txt RFC 2476] : '''ce port sera ouvert uniquement en TLS et forcera l'authentification'''.

Pour cela, on active un nouveau service au niveau du fichier `/etc/postfix/master.cf` :

   {{{# lignes ajoutées dans /etc/postfix/master.cf pour activer submission (rfc 2476) :
# sur le service submission (présent dans /etc/services) on force le chiffrage TLS
# et l'authentification SASL.
# service type private unpriv chroot wakeup maxproc command + args
submission inet n - - - - smtpd
        -o smtpd_enforce_tls=yes
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject
}}}


== 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

Documenter :

  • config' Postfix + MySQL
  • config' Dovecot + MySQL

<!> disable_plaintext_auth = no pour le moment !! à remettre à yes dès que Darko aura fini de basculer les clients de messagerie sur la nouvelle configuration.

  • anti-spam + exceptions

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

  1. Mise en place du chiffrage TLS :
    • {{{# TLS parameters, ajouté dans /etc/postfix/main.cf :

smtpd_tls_cert_file=/etc/postfix/ssl/smtp-sortant-ca-auf-org.crt smtpd_tls_key_file=/etc/postfix/ssl/smtp-sortant-ca-auf-org.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache }}}

  1. Mise en place de l'authentification SASL :
    1. dans /etc/default/saslauthd, on demande à SASL de passer par PAM :

      • {{{START=yes

MECHANISMS="pam" MECH_OPTIONS="" THREADS=5 OPTIONS="-r -m /var/spool/postfix/var/run/saslauthd" }}}

  1. dans /etc/pam.d/smtp, on dit à PAM d'utiliser MySQL pour le service 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 }}}

  1. dans /etc/postfix/sasl/smtpd.conf on configure SASL au niveau de Postfix pour lui dire de passer par saslauthd :

    • {{{pwcheck_method: saslauthd

mech_list: PLAIN LOGIN ANONYMOUS log_level: 7 }}}

  1. et enfin dans /etc/postfix/main.cf on dit à Postfix d'utiliser SASL, de ne permettre l'authentification QUE si le canal est crypté en TLS, et on libéralise l'utilisation pour les gens authentifiés :

    • {{{# lignes ajoutées dans /etc/postfix/main.cf :

# on active l'authentification SASL smtpd_sasl_auth_enable = yes # l'authentification n'est possible que sur une connexion cryptée en TLS smtpd_tls_auth_only = yes # si une personne est authentifiée, elle peut envoyer des messages à n'importe qui smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination }}}

A partir de là, le port 25 est déjà capable de recevoir des messages avec TLS+SASL. Cependant, comme le port 25 est de plus en plus filtré (lutte anti-spam) on va utiliser le port 587 comme le recommande la [http://www.ietf.org/rfc/rfc2476.txt RFC 2476] : ce port sera ouvert uniquement en TLS et forcera l'authentification.

Pour cela, on active un nouveau service au niveau du fichier /etc/postfix/master.cf :

  • {{{# lignes ajoutées dans /etc/postfix/master.cf pour activer submission (rfc 2476) :

# sur le service submission (présent dans /etc/services) on force le chiffrage TLS # et l'authentification SASL. # service type private unpriv chroot wakeup maxproc command + args submission inet n - - - - smtpd

  • -o smtpd_enforce_tls=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject

}}}

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)