Ajout section Configuration multi-domaines virtuels

This commit is contained in:
whirigoyen 2022-11-23 18:37:05 +01:00
parent d493f5eb5b
commit 89dd966e4c

View file

@ -228,10 +228,13 @@ dkim_selector sympa2018
On peut ainsi configurer DKIM dans les paramètres de chaque liste de diffusion.
# Plomberie
# Configuration de Postfix
Les emails d'administration (changement de mot de passe, modération, etc.) sont envoyés à `sympa@lists.example.com`,
grâce à un alias Postfix, ils sont *pipés* vers le programme `/usr/lib/sympa/bin/queue sympa`
## Configuration avec un domaine unique (non virtuel)
**Attention :** Si ce domaine est déjà défini comme virtuel dans Postfix, cela cassera la réception de mails sur boîtes virtuelles associées.
Les emails d'administration (changement de mot de passe, modération, etc.) sont envoyés à `sympa@lists.example.com`, grâce à un alias Postfix, ils sont *pipés* vers le programme `/usr/lib/sympa/bin/queue sympa`.
Les emails pour une liste de diffusion *foo* sont envoyés à `foo@lists.example.com`.
Les alias Postfix suivants les redirigent vers différents programmes :
@ -247,7 +250,6 @@ foo-owner: "| /usr/lib/sympa/bin/bouncequeue foo"
Le message passe ensuite par différentes files d'attente suivant la configuration (modération, etc.).
Voici les répertoires importants pour Sympa :
* `/var/spool/sympa/` : files d'attente (modération etc.)
@ -258,6 +260,103 @@ Voici les répertoires importants pour Sympa :
* `/usr/share/sympa/default/` : templates
## Configuration multi-domaines virtuels
**Attention :** Cette section est nouvelle et est en test.
Note : On considère que le domaine virtual est déjà configuré dans Postfix.
Aliases génériques des listes :
~~~
# cat <<EOF >>/etc/sympa/list_aliases.tt2
#--- [% list.name %]@[% list.domain %]: list transport map created at [% date %]
[% list.name %]@[% list.domain %] sympa:[% list.name %]@[% list.domain %]
[% list.name %]-request@[% list.domain %] sympa:[% list.name %]-request@[% list.domain %]
[% list.name %]-editor@[% list.domain %] sympa:[% list.name %]-editor@[% list.domain %]
#[% list.name %]-subscribe@[% list.domain %] sympa:[% list.name %]-subscribe@[%list.domain %]
[% list.name %]-unsubscribe@[% list.domain %] sympa:[% list.name %]-unsubscribe@[% list.domain %]
[% list.name %][% return_path_suffix %]@[% list.domain %] sympabounce:[% list.name %]@[% list.domain %]
<< EOF
~~~
Ajout des infos pour que Sympa mette-à-jour les boîtes virtuelles de Postfix :
~~~
cat <<EOF >>/etc/sympa/sympa/sympa.conf
sendmail_aliases /etc/postfix/sympa_transport
aliases_program postmap
aliases_db_type hash
<< EOF
~~~
Créer la base de données des boîtes virtuelles pour Postfix :
~~~
touch /etc/sympa/sympa_transport
chmod 644 /etc/sympa/sympa_transport
chown sympa: /etc/sympa/sympa_transport
/usr/lib/sympa/bin/sympa_newaliases.pl
~~~
Ajouter aux transports de Postfix :
~~~
cat <<EOF >>/etc/postfix/master.cf
sympa unix - n n - - pipe
flags=hqRu null_sender= user=sympa argv=/usr/lib/sympa/bin/queue ${nexthop}
sympabounce unix - n n - - pipe
flags=hqRu null_sender= user=sympa argv=$/usr/lib/sympa/bin/bouncequeue ${nexthop}
~~~
Editer le main.cf de Postfix et ajouter aux options :
~~~
virtual_mailbox_maps = (...) hash:/etc/sympa/sympa_transport
transport_maps = (...) hash:/etc/sympa/sympa_transport
~~~
**Attention :** `mydestination` ne doit pas contenir le domaine virtuel.
Ajouter les listes de base :
~~~
cat <<EOF >>/etc/sympa/sympa_transport
sympa@example.org sympa:sympa@example.org
listmaster@example.org sympa:listmaster@example.org
bounce@example.org sympabounce:sympa@example.org
abuse-feedback-report@example.org sympabounce:sympa@example.org
~~~
Mettre-à-jour la base de données avec `postmap` :
~~~
postmap hash:/etc/sympa/sympa_transport
~~~
Vérifier que les droits sont bien en `644` et que le propriétaire/groupe est bien `sympa:sympa` :
~~~
ls -l /etc/sympa/
~~~
Vérifier la configuration de Postfix et le redémarrer :
~~~
postconf >/dev/null
systemctl restart postfix
systemctl status postfix
~~~
Enfin, redémarrer Sympa :
~~~
systemctl restart sympa
systemctl status sympa
~~~
# FAQ
## List::load() No such robot