Date de publication: le mardi 15 mai 2007 Ă 15h20
Dernière modification: par Pascal BOYER le dimanche 15 juillet 2007 à 08h56
« Article précédent: Postfix : tables et contrĂ´le anti-spam
» Article suivant: Postfix : le fichier smtpd.conf
Avant propos
Rappels
Postfix, devant tantôt jouer le rôle de serveur tantôt le rôle de client, intègre un serveur et un client SMTP.
- smtpd désigne le serveur SMTP de Postfix.
- smtp désigne le client SMTP de Postfix.
D’une façon générale, le nom d’un service se terminant par un d désigne un serveur: imapd , lmtpd , pop3d , mysqld , slapd etc...
Le démon master
Le démon master est le processus général qui contrôle les autres démons Postfix pour la gestion du courrier (p31). Pour obtenir les informations sur sa configuration, le démon master utilise le fichier /etc/postfix/ master.cf (p31)
Mais ce ne sera pas ici notre cas, puisque nous allons commenter les lignes concernant les services dont nous ne nous servirons point et apporter quelques modifications aux valeurs par défaut.
Le fichier master.cf
Bien qu’un certain nombre d’informations soient indiquées directement dans le fichier sous forme de commentaires, en voici quelques unes supplémentaire relatives à la syntaxe de ce fichier. (p49-50)
Indique le nom du service qui doit être lancé.
Il est possible d’indiquer uniquement un numéro de port, en lieu et place du nom du service, si et seulement si ce service tourne sur la même machine que Postfix.
Il est également possible ( uniquement pour les services dont le transport type est inet ) de remplacer le nom du service par l’adresse IP d’une machine suivi du numéro de port (e.g: 192.168.4.137: 12368) (il n’y a pas d’espace avant 12368 )
-
Le type inet désigne des processus capables de communiquer avec d’autres processus se trouvant sur la même machine mais également sur une machine distante.
- type unix Ne représente que les processus qui communiquent avec d’autres processus situés sur la même machine. Pour communiquer avec de tels processus, Postfix utilise des fichiers.
- type fifo Idem Ă type unix
La valeur y (pour yes ) désigne les composantes du serveur Postfix dont l’accès est restreint à Postfix.
Les services dont le Transport type vaut inet ne peuvent avoir un accès restreint car les sockets doivent rester accessibles pour les autres processus du système Linux.
Si on ajoute un ? après la valeur numérique, cela indique que le signal de réveil ne devra être envoyé que si la composante est vraiment utilisée. Enfin, un intervalle de temps dont la valeur est 0 indique qu’aucun signal de réveil n’est requis.
Indique le nombre maximum de processus pouvant être invoqués simultanément.
Indique la véritable commande utilisée pour lancer le service indiqué dans la première colonne.
Aucune information sur le chemin ou l’emplacement du binaire n’est fournie puisque ce binaire (ou cet exécutable) est censé se trouver dans le répertoire des démons de Postfix.
- L’option -v indique que l’on souhaite obtenir des logs verbeux. -vvv augmente encore la verbosité les logs produits par un service.
- L’option -D permet d’obtenir des informations destinées à un programme de débogage.
Ci-dessous, le fichier master.cf
Je poursuis avec la couleur orange indiquant ainsi les règles qui peuvent être initiées si uniquement les serveurs imapd et smtpd tournent. Ceci constituant encore et toujours le fonctionnement basic du serveur de mails.
Bien sûr, la couleur verte indique les règles relatives à la configuration du protocole SSL/TLS appliqué à Postfix.
| # |
######################################################### |
|||||||
| # |
||||||||
| # |
Ci-dessous, sont répertoriés et configurés tous les services que le démon master de Postfix peut lancer en fonction des besoins du serveur Postfix. |
|||||||
| # |
||||||||
| # |
Chaque ligne indique donc le nom du service et la façon dont il sera lancé. |
|||||||
| # |
||||||||
| # |
######################################################### |
|||||||
| # |
======= |
======= |
======= |
======= |
======= |
======= |
======= |
======= |
| # |
service |
type |
private |
unpriv |
chroot |
wakeup |
maxproc |
command + args |
| # |
name |
(yes) |
(yes) |
(yes) |
(never) |
(100) |
||
| # |
======= |
======= |
======= |
======= |
======= |
======= |
======= |
======= |
| # |
proxymap |
unix |
- |
- |
n |
- |
- |
proxymap |
| # |
Je commente la ligne ci-dessous car c’est le lmtp de Cyrus-IMAP que je souhaite faire tourner (voir plus bas) |
|||||||
| # |
La commande netstat -anp |grep lmtp doit renvoyer ceci: |
|||||||
| # |
||||||||
| # |
2 |
|||||||
| # |
||||||||
| # |
et non ceci: |
|||||||
| # |
||||||||
| # |
2 |
|||||||
| # |
2 |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
lmtp |
unix |
- |
- |
n |
- |
- |
lmtp |
| # |
Les trois services ci-dessous sont utilisés par Postfix-tls uniquement: |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
Malgré la RFC 2487, certains clients, nommés Outlook (Express) prefèrent utiliser le mode non-standard "wrapper" au lieu d’utiliser l’extension SMTP STARTTLS. Ceci est vrai pour OE (Win32 < 5.0 et Win32 >= 5.0 lorsque port<>25 et OE (5.01 Mac et tous les portages). |
|||||||
| # |
||||||||
| # |
||||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
smtps |
inet |
n |
- |
n |
- |
- |
smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes |
| # |
smtps |
inet |
n |
- |
n |
- |
- |
smtpd -o smtpd_sasl_auth_enable=yes |
| # |
587 |
inet |
n |
- |
n |
- |
- |
smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes |
| # |
######################################################### |
|||||||
| # |
||||||||
| # |
Ci-dessous, on trouve les programmes externes Ă Postfix. |
|||||||
| # |
||||||||
| # |
Consulter les docs/man de ces programmes pour connaître les options que réclame Postfix. |
|||||||
| # |
||||||||
| # |
||||||||
| # |
||||||||
| # |
######################################################### |
|||||||
| # |
La ligne ci-dessous déclare Cyrus-IMAP comme MDA. |
|||||||
| # |
||||||||
| # |
Noter que /usr/sbin/cyrdeliver est le binaire qui délivre le courrier (package cyrus21-common) |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
Je peux commenter la ligne ci-dessous car maildrop n’existe pas sur ma machine. |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
maildrop |
unix |
- |
n |
n |
- |
- |
|
| # |
Je peux commenter la ligne ci-dessous car l’agent de transport UUCP (Unix to Unix Copy Program) n’est pas installé. |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
uucp |
unix |
- |
n |
n |
- |
- |
pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) |
| # |
Je peux commenter la ligne ci-dessous car bsmtp (Batched SMTP) dépend de "uucp" et n’est pas installé. |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
bsmtp |
unix |
- |
n |
n |
- |
- |
pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient |
| # |
Je peux commenter la ligne ci-dessous car ifmail n’est pas installé. |
|||||||
| # |
"ifmail" fait partie du package "ifgate" |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
ifmail |
unix |
- |
n |
n |
- |
- |
pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) |
| # |
Je peux commenter la ligne ci-dessous car le package scalemail n’est pas installé. |
|||||||
| # |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
----------------- |
| # |
scalemail- backend |
unix |
- |
n |
n |
- |
2 |
|
Récapitulatif
1°/ Serveur smtpd + imapd uniquement:
TLS n’est donc pas installé.
Donc maintenant, si vous avez respecté les valeurs des règles vert/jaune (elles ne sont pas toutes nécessaires mais je garantis que les valeurs que je présente fonctionnent) et correctement construit vos fichiers externes, vous avez un serveur de mail en état de marche !
- Le serveur d’authentification saslauthd ne tourne pas.
- Postfix n’est pas chrooté
- L’utilisateur postfix appartient au groupe mail
- Les droits sur la base de données /etc/sasldb2 sont 640
- L’adresse IP de la machine sur la quelle est exécuté Thunderbird est dans la liste de la règle mynetworks
- Il y a une entrée pour l’utilisateur test0 dans /etc/postfix/aliases
- Vous n’avez oubliez de créer aucun fichier externe alors qu’il est déclaré par une règle dans /etc/postfix/ main.cf
Fig 1: Configuration du serveur SMTP sans TLS
Alors vous pouvez envoyer et recevoir des mails et votre serveur n’est pas un relai ouvert.
De plus, votre serveur effectue un certain nombre de tests sur le respect des normes par les clients mail et leurs messages ainsi qu’un tri des messages non désirables (requêtes DNRBL).
2°/ Serveur smtpd + TLS:
Si vous avez initialisé les règles relatives à la mise en oeuvre du protocole TLS avec Postfix, alors, avec Thunderbird, le serveur SMTP doit être ainsi défini:
Fig 3: Configuration du serveur SMTP avec TLS
Commentaires













