Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:adminsys:mail:config:ldap:mta-existence-adresse [2021/01/20 17:39] – ↷ Page déplacée de technique:adminsys:mail:infra:ldap:mta-existence-adresse à technique:adminsys:mail:config:ldap:mta-existence-adresse qduchemitechnique:adminsys:mail:config:ldap:mta-existence-adresse [2021/11/22 22:29] (Version actuelle) – ↷ Page déplacée de technique:internal_serv:mail:config:ldap:mta-existence-adresse à technique:adminsys:mail:config:ldap:mta-existence-adresse qduchemi
Ligne 1: Ligne 1:
 +{{indexmenu_n>10}}
 +# Recevoir des mails sur une adresse Picasoft
 +
 +Notre MTA est postfix; pour que les boîtes mails soient indépendantes des fichiers et utilisateurs existant sur le conteneur hôte, on a fait le choix d'utiliser des **virtual mailboxes**.
 +
 +Nos politiques de relai de mail font que tous les mais qui passent à travers notre serveur doivent respecter l'une des contraintes suivantes:
 +  * Le destinataire a une adresse en @picasoft.net
 +  * L'émetteur a une adresse en @picasoft.net, et le relai de mail a été demandé par un utilisateur authentifié.
 +Le bind décrit sur cette page ajoute une contrainte supplémentaire: l'adresse aaa@picasoft.net doit exister, c'est-à-dire qu'un bind LDAP doit permettre de trouver un utilisateur dont le login est aaa.
 +(Les boîtes mail partagées ne sont pas encore implémentées, pour le moment on considère que une adresse <=> un utilisateur).
 +
 +Ainsi, à chaque fois qu'un courriel transite, Postfix va chercher dans l'ensemble de l'annuaire ldap un utilisateur correspondant à la partie gauche de l'adresse; si il n'en trouve pas, alors le mail ne sera pas transmis (relayé).
 +
 +===== Implémentation =====
 +Elle se fait au niveau de /etc/postfix/main.conf
 +<code>postconf -e "virtual_mailbox_maps = ldap:/etc/postfix/ldap-virtual-mailbox-maps"</code>
 +Où ldap-virtual-mailbox-maps est un fichier texte qui décrit comment s'effectue le bind LDAP. Il peut être placé n'importe où et porter n'importe quel nom. Voici un exemple de configuration possible:
 +<code>
 +#hôte, port et protocole (on pourrait utiliser ldaps)
 +server_host = ldap://ldap.test.picasoft.net:389
 +#niveau de l'arborescence LDAP à partir duquel on commencer à chercher dans les entrées
 +search_base = dc=picasoft,dc=net
 +#filtre permettant d'accepter certaines entrées: ici, le paramètre en entrée est %s
 +#uid correspond au champ LDAP utilisé, on aurait pu aussi utiliser cn, ou n'importe quel autre champ, c'est arbitraire.
 +query_filter = uid=%s
 +#ce qui sera retourné par la requête. Comme le but est seulement de vérifier si l'adresse existe, il faut juste que ce champ soit non vide.
 +result_attribute = uid
 +#le bind au serveur (un utilisateur spécial utilisé pour se connecter au LDAP et lire son arborescence (à l'exception des hashs de password))
 +bind = yes
 +bind_dn = cn=nss,dc=picasoft,dc=net
 +bind_pw = rdonly
 +</code>