Outils pour utilisateurs

Outils du site


linux:howto:postfix_secondaire

Ceci est une ancienne révision du document !


Postfix en MX secondaire

Par rapport à une install de base, il faut juste préciser dans main.cf

# on est mx2, relay vers mx1
relayhost = IP.mx1
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination
relay_recipient_maps = hash:/etc/postfix/relay_recipient_maps.hash

Le fichier relay_recipient_maps.hash contient toutes les adresses pour lesquelles on accepte le courrier, sous la forme

user@domaine.tld OK
user2@domaine.tld OK

On peut mettre n'importe quoi à la place du OK, il faut juste un 2e champ pour la table de hash

Générer automatiquement relay_recipient_maps sur le primaire

Pour mettre à jour automatiquement cette liste depuis le primaire (c'est lui qui a la liste des users), on créé ce petit script (sur le primaire donc)

#!/bin/bash
echo "Ce script génère /etc/postfix/relay_recipient_maps.hash"
echo "à partir de /etc/postfix/virtual_mailbox_maps.hash et /etc/postfix/virtual_alias_maps.hash"
echo "Puis essaye de le transférer sur mx2"
awk '/@/ {print $1 " OK"}' < /etc/postfix/virtual_mailbox_maps.hash > /etc/postfix/relay_recipient_maps.hash
awk '/@/ {print $1 " OK"}' < /etc/postfix/virtual_alias_maps.hash >> /etc/postfix/relay_recipient_maps.hash
postmap /etc/postfix/relay_recipient_maps.hash
echo "On essaie de copier /etc/postfix/relay_recipient_maps.hash.db sur MX2"
echo "En cas d'échec, vous devrez le faire manuellement"
scp /etc/postfix/relay_recipient_maps.hash.db mx1@mx2.editionsdidier.com:/etc/postfix/relay_recipient_maps.hash.db

Et pour que ça marche (le primaire doit pouvoir modifier ce fichier), sur le secondaire, on créé un user (unix) mx1 :

postfix_gid=$(awk -F : '/postfix/ {print $4}'< /etc/passwd)
useradd -b /etc/postfix -d /etc/postfix -g $postfix_gid -N mx1
mkdir /etc/postfix/.ssh
touch /etc/postfix/.ssh/authorized_keys2
chgrp -R postfix /etc/postfix/.ssh
chgrp postfix relay_recipient_maps.hash.db
chmod 664 relay_recipient_maps.hash.db

Reste à mettre la clé ssh de root@ns1 dans /etc/postfix/.ssh/authorized_keys2 (sur ns2 donc), et à recharger le postfix de ns2 (incron qui tourne sur ns2 et qui surveille ce fichier peut s'en charger).

linux/howto/postfix_secondaire.1239372495.txt.gz · Dernière modification : 10/04/2009 16:08 de daniel