Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > > Robots : Configuration de sympa pour la gestion de serveurs (...)

Robots : Configuration de sympa pour la gestion de serveurs virtuels

Sympa gère le multidomaine grace aux fichiers robot.conf

Prenons le cas de deux domaines distincts : domaine1.example et domaine2.example auxquels on associe un sous domaine pour chacun afin d’afficher le serveur sympa sous la forme lists.domaine1.example et lists.domaine2.example (Toute référence à ces domaines devra être modifié en conséquence pour vos configurations).

lists.domaine1.example est le domaine principal du serveur de listes... lists.domaine2.example sera un robot secondaire (Il est possible de rajouter autant de robot que l’on souhaite).

Faire pointer les dns vers le serveur

Les zones DNS du nom de domaine doivent être configurées de la sorte :

  • Chaque sous domaine lists.domaine1.example et lists.domaine2.example doit être défini par un MX (Mail Exchanger record) afin de router les messages destinés aux adresses correspondantes vers le serveur où est installé Sympa.
  • Ces mêmes sous domaines doivent être définis comme "Hote" (A record) ou "alias" (CNAME) pour rediriger correctement les adresses dans les navigateurs vers l’instance Sympa correspondante.

Configurer Apache et créer les Virtualhosts nécessaires

Lors de l’installation du serveur, nous avons créé un fichier de configuration pour Apache décrivant l’hôte virtuel utilisé. Nous devons maintenant faire de même pour chaque nouveau robot. Pour ce faire nous allons éditer ce fichier :

  1. sudo nano /etc/apache2/sites-available/sympa.conf

Et on y insère une déclaration d’hôte virtuel pour chacun de nos futurs robots Sympa comme ceci :

  1. <VirtualHost *:80>
  2.         ServerName lists.domaine2.example
  3.         ServerAdmin postmaster@domaine2.example
  4.  
  5.         ScriptAlias /sympa /home/sympa/bin/wwsympa-wrapper.fcgi
  6.         DirectoryIndex sympa/
  7.         SuExecUserGroup        sympa sympa
  8.         DocumentRoot /var/www/
  9.  
  10.         <Location /sympa>
  11.                 SetHandler fastcgi-script
  12.                 AddHandler fastcgi-script .fcgi .fpl .pl
  13.                 Options +ExecCGI
  14.                 Options +FollowSymLinks
  15.                 Order allow,deny
  16.                 allow from all
  17.         </Location>
  18.  
  19.         Alias /wwsicons /usr/share/sympa/icons
  20.         Alias /static-sympa /home/sympa/static_content
  21. </VirtualHost>

Télécharger

Pour activer les Virtualhosts il suffit ensuite de lancer la commande :

  1. sudo a2ensite sympa

Créer les répertoires et fichiers de configuration nécessaires

NB : sympa est installé dans le répertoire home de sympa donc "/home/sympa"

Pour chaque robot, il est nécessaire de créer ses propres répertoires et fichiers de configuration.

  1. sudo su sympa -c 'mkdir /home/sympa/list_data/lists.domaine2.example'
  2. sudo chmod 750 /home/sympa/list_data/lists.domaine2.example

Télécharger

Dans le cas d’une installation de Sympa dans une version inférieure à 6, il faut remplacer dans les commandes précédentes list_data par expl. Le nom des répertoires a changé lors du changement de version.

Ce répertoire contiendra l’ensemble des mailing lists liées à ce domaine.

Puis on crée le répertoire de configuration pour chaque liste :

  1. sudo su sympa -c 'mkdir /home/sympa/etc/lists.domaine2.example'
  2. sudo chmod 750 /home/sympa/etc/lists.domaine2.example

Télécharger

Ce répertoire contiendra le fichier de configuration spécifique à ce domaine.

Dans ce répertoire, on crée donc un fichier robot.conf qui ressemble au fichier de configuration principal /etc/sympa.conf.

  1. sudo nano /home/sympa/etc/lists.domaine2.example/robot.conf

On remplit ce nouveau fichier comme suit :

  1. http_host       lists.domaine2.example
  2. host            lists.domaine2.example
  3. wwsympa_url     http://lists.domaine2.example/sympa
  4. cookie_domain   localhost
  5. listmaster      listmaster@domaine2.example
  6. create_list     listmaster
  7. default_home    home
  8. title           Domaine2 Mailing lists server

Télécharger

On lui donne les bons utilisateurs et propriétaires :

  1. sudo chown -R sympa:sympa /home/sympa/etc/lists.domaine2.example/

Ces opérations doivent être répétées pour chaque robot et à chaque fois qu’un nouveau robot sera ajouté.

Modifier la configuration de postfix pour la gestion des hôtes virtuels

Il est nécessaire de modifier la configuration de Postfix pour que les robots virtuels fonctionnent. Dans un premier temps, il est nécessaire de créer un fichier permettant de rediriger correctement les mails vers le bon robot.

On crée donc le fichier /etc/mail/sympa_virtual_regexp comme ceci :

  1. sudo nano /etc/mail/sympa_virtual_regexp

On y ajoute cette ligne pour chaque robot virtuel créé :

  1. /^(.*)@lists.domaine2.example$/ lists.domaine2.example-$1

Dans notre cas le fichier ressemblera à :

  1. /^(.*)@lists.domaine1.example$/ $1
  2. /^(.*)@lists.domaine2.example$/ lists.domaine2.example-$1

Télécharger

Pensez à les modifier en fonction de votre installation.

On lance la commande suivante qui va créer ou mettre à jour le fichier /etc/mail/sympa_virtual_regexp.db :

  1. sudo postmap /etc/mail/sympa_virtual_regexp

Il est ensuite nécessaire de modifier le fichier /etc/mail/sympa_aliases pour ajouter la prise en compte des alias des robots :

  1. sudo nano /etc/mail/sympa_aliases

On y ajoute pour chaque robot les lignes suivantes au début du fichier :

  1. lists.domaine2.example-sympa:      "| /home/sympa/bin/queue sympa@lists.domaine2.example"
  2. lists.domaine2.example-listmaster: "| /home/sympa/bin/queue listmaster@lists.domaine2.example"
  3. lists.domaine2.example-bounce+*:          "| /home/sympa/bin/bouncequeue sympa@lists.domaine2.example"
  4. lists.domaine2.example-abuse-feedback-report: "| /home/sympa/bin/bouncequeue sympa@lists.domaine2.example"
  5. lists.domaine2.example-sympa-request: root@domaine2.example
  6. lists.domaine2.example-sympa-owner: root@domaine2.example

Télécharger

Puis on lance la commande de génération du fichier binaire des alias :

  1. sudo postalias /etc/mail/sympa_aliases

Ensuite nous allons modifier le fichier de configuration /etc/postfix/main.cf en y vérifiant la présence et le cas échéant en ajoutant ces lignes :

  1. relay_domains = $mydestination, lists.domaine1.example, lists.domaine2.example
  2. virtual_alias_maps = regexp:/etc/mail/sympa_virtual_regexp
  3. recipient_delimiter = +
  4. sympa_destination_recipient_limit = 1
  5. sympabounce_destination_recipient_limit = 1

Télécharger

Logiquement seul l’ajout des sous-domaines à la ligne relay_domains et la ligne transport_maps devraient être à cet instant ajouté et/ou modifiée.

Si la ligne relay_domains existe déjà dans votre configuration, il vous suffit de rajouter les robots séparés par des vigules.

Redémarrage et application de la configuration des différents services

Finalement, il ne nous reste plus qu’à appliquer tout cela en relançant ou redémarrant les différents serveurs :

  1. sudo /etc/init.d/apache2 restart
  2. sudo /etc/init.d/postfix restart
  3. sudo /etc/init.d/sympa restart

Télécharger

Ajout d’un simple robot à une configuration existante

Lorsque l’on souhaite ajouter par la suite un nouveau robot, il est nécessaire de reproduite les étapes :

  • Création des répertoires pour le robot dans les répertoires /home/sympa/list_data et /home/sympa/etc
  • Copier et modifier un des fichiers robot.conf
  • Ajouter le virtualhost dans le fichier /etc/apache2/sites-available/sympa
  • Ajouter deux lignes dans le fichier /etc/mail/sympa_transport_regexp
  • Relancer la commande pour générer le fichier db des alias
  • Ajouter le nouveau domaine dans la ligne relay_domains du fichier /etc/postfix/main.cf
  • Redémarrer les trois serveurs : Apache / Postfix / Sympa
  • Auteur :
  • Publié le :
  • Mis à jour : 19/07/17

2 commentaires


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.