Bon, j’ai enfin réussi à configurer mon serveur postmulti pour qu’il rempli toutes mes exigences.
J’avais au départ une seule carte réseau et une adresse ip.
Comme le reverse dns d’un serveur email doit correspondre au nom de domaine correspondant j’étais obligé d’ajouter une deuxième carte réseau pour avoir une adresse ip dédié au deuxième nom de domaine.
Voici ma configuration réseau
[code]vim /etc/network/interfaces
This file describes the network interfaces available on your system
and how to activate them. For more information, see interfaces(5).
The loopback network interface
auto lo
iface lo inet loopback
The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 86.xxx.yyy.123
netmask 255.255.255.248
network 86.xxx.yyy.0
broadcast 86.xxx.yyy.255
gateway 86.xxx.yyy.121
The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 86.xxx.yyy.124
netmask 255.255.255.248
network 86.xxx.yyy.0
broadcast 86.xxx.yyy.255
gateway 86.xxx.yyy.121
dns-nameservers 86.xxx.yyy.123
[/code]
Attention à désactiver le gateway de la deuxième carte réseau, car comme dans mon cas, c’est le même gateway que celui de la première carte réseau!
Le premier document qui ma été très utile pour la mise en place d’un serveur Postfix multi-instance été le suivant
blog.jotheroot.fr/?p=26
Attention quand même ce document n’aborde pas toutes les étapes nécessaires pour arriver au but, les quelles je vais aborder par la suite…
Poursuivons avec la configuration du fichier /etc/postfix/master.cf
dans le quel il faut changer la configuration des lignes suivantes:
pour quelle devienne
idem pour la ligne
laquelle devient
J’ai adapté la nomination de ce petit tutorial à titre d’exemple qui se trouve dans blog.jotheroot.fr/?p=26 et j’utilise son nom d’instance postfix-new pour la deuxième instance!
Attention les noms des instances sont limité à 15 caracters!!!
Alors pour la nouvelle instance vous devez éditer le fichier et adapter les deux lignes
et
Attention à l’adresse ip! C’est la deuxième adresse ip terminant comme dans cet exemple par .124 et pas par .123!
Puis le fichier /etc/postfix/main.cf doit contenir la ligne suivante:
et le fichier /etc/postfix-new/main.cf
Non, nous n’avons pas encore terminé, loin de la!
Mon serveur utilise un chiffrement ssl et il faut également créer une deuxième “instance” SASL!!!
Cela été encore une grosse galère pour moi.
Puis en cherchant j’ai trouvé le document suivant qui ma été utile mais qui contiens une petite erreur de taille qui ma fait perdre pas mal du temps.
serverfault.com/questions/558377 … entication
Pour créer la deuxième instance SASL il faut simplement faire une copie comme suite:
puis éditer le fichier
Voici ma configuration SASL
[code]#
Settings for saslauthd daemon
Please read /usr/share/doc/sasl2-bin/README.Debian for details.
Should saslauthd run automatically on startup? (default: no)
START=yes
Description of this saslauthd instance. Recommended.
(suggestion: SASL Authentication Daemon)
DESC=“SASL Authentication Daemon”
Short name of this saslauthd instance. Strongly recommended.
(suggestion: saslauthd)
NAME=“saslauthd”
Which authentication mechanisms should saslauthd use? (default: pam)
Available options in this Debian package:
getpwent – use the getpwent() library function
kerberos5 – use Kerberos 5
pam – use PAM
rimap – use a remote IMAP server
shadow – use the local shadow password file
sasldb – use the local sasldb database file
ldap – use LDAP (configuration is in /etc/saslauthd.conf)
Only one option may be used at a time. See the saslauthd man page
for more information.
Example: MECHANISMS=“pam”
MECHANISMS=“pam”
Additional options for this mechanism. (default: none)
See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""
How many saslauthd processes should we run? (default: 5)
A value of 0 will fork a new process for each connection.
THREADS=5
Other options (default: -c -m /var/run/saslauthd)
Note: You MUST specify the -m option or saslauthd won’t run!
WARNING: DO NOT SPECIFY THE -d OPTION.
The -d option will cause saslauthd to run in the foreground instead of as
a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish
to run saslauthd in debug mode, please run it by hand to be safe.
See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
See the saslauthd man page and the output of ‘saslauthd -h’ for general
information about these options.
Example for chroot Postfix users: “-c -m /var/spool/postfix/var/run/saslauthd”
Example for non-chroot Postfix users: “-c -m /var/run/saslauthd”
To know if your Postfix is running chroot, check /etc/postfix/master.cf.
If it has the line “smtp inet n - y - - smtpd” or “smtp inet n - - - - smtpd”
then your Postfix is running in a chroot.
If it has the line “smtp inet n - n - - smtpd” then your Postfix is NOT
running in a chroot.
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"[/code]
Alors la attention, attention attention!!!
Dans le document du lien précédent est une erreur grave !
La variable Name de la deuxième instance SASL voire n’ème instance SASL doit être “saslauthd” et non NAME=“saslauthd-out” voire NAME=“saslauthd-new” !!!
Attention donc que la ligne soit comme la suivante!!!
NAME=“saslauthd”
redémarrez ensuite le service saslauthd
Ceci crée les répertoires nécessaires de la deuxième instance SASL…
/var/spool/postfix-new/var/run/saslauthd-new
petite vérification
ls /var/spool/postfix-new/var/run/saslauthd-new
cache.flock cache.mmap mux mux.accept saslauthd.pid
Voici une commande qui ma été très utile pour vérifier le fonctionnement de la deuxième instance postfix smtp
J’ai eu aussi un message d’erreur concernant dynamicmaps pendant la création de la nouvelle instance et j’ai éxécute la commande suivante pour y remédier …
Un dernier conseil:
je me suis crée un fichier shell pour rédemarrer avec une seule commande toutes mes services email :
J’ai crée un fichier portant le nom reboot-mail-services.sh et voiçi son contenu:
[code]#!/bin/sh
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart
postmulti -i postfix-new -p stop
postmulti -i postfix-new -p start[/code]
Pour la génération du certificat autosigné du deuxième nom de domaine d’email j’ai crée un nouveau certificat (bien plus simple comme dans la lien de mon précédent message)
mkdir /etc/postfix-new/ssl
cd /etc:postfix-new/ssl
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509
chmod 400 /etc/postfix-new/ssl/smtpd.key
puis dans le fichier /etc/postfix-new/main.cf j’ai ajouté
[code]#SASL authentification
smtpd_sasl_auth_enable = yes
#smtpd_sasl_path = smtp
broken_sasl_auth_clients = yes
TLS parameters
smtpd_tls_cert_file=/etc/postfix-new/ssl/smtpd.cert
smtpd_tls_key_file=/etc/postfix-new/ssl/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache[/code]
J’ai oublié une chose importante:
Dans le fichier /etc/postfix-new/main.cf
inet_protocols = ipv4
#master_service_disable = inet
authorized_submit_users =
queue_directory = /var/spool/postfix-new
multi_instance_group = mta
multi_instance_name = postfix-new
multi_instance_enable = yes
il faut absolument desactiver la ligne suivante
#master_service_disable = inet
si non il n’y aura pas d’écoute sur ports 25 et 465 en ce qui concerne la deuxième adresse ip 86.xxx.yyy.124
En espérant que ses informations seront utile à quelqu’un … 