Le serveur de messagerie PostFix

 

Le serveur de messagerie PostFix est une des alternatives les plus interessante à SendMail.

Ici je vous montrerai comment configurer un serveur de messagerie postfix avec une Mandriva 2003.

Pour l'installation, plusieurs possiblité, l'interface graphique, ou la ligne de commande. Si vous avez correctement configurer votre URPMI la ligne de commande est la plus simple a utiliser. Il vous suffit de lancer sous root : urpmi postfix

Une fois l'installation réalisée. Dans le repertoire /etc/postfix vous devez obtennir une liste de fichiers :

access
aliases
aliases.db
canonical
dynamicmaps.cf
generic
header_checks
main.cf
main.cf.default
main.cf.dist
makedefs.out
master.cf
postfix-files
postfix-script*
post-install*
relocated
sasl/
transport
virtual

Le fichier permetant le paramètrage de votre serveur de messagerie est main.cf c'est celui-ci qu'il faut editer avec votre editeur (par ex : vi).

Le contenu de main.cf :

readme_directory = /usr/share/doc/postfix-2.2.5/README_FILES
html_directory = /usr/share/doc/postfix-2.2.5/html
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/lib/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
Cette Partie est générée automatiquement lors de l'installation et n'a pas lieu d'être changer.

 

delay_warning_time = 4h
smtpd_banner = Petit curieux va ! Message d'accueil lorsqu'un serveur se connecte en smtp
unknown_local_recipient_reject_code = 450 Code de rejet pour un utilisateur inconnu
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
recipient_delimiter = +
owner_request_special = no
alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases Localisation du fichier d'alias
relayhost = smtp.free.fr Le SMTP de votre FAI (si vous n'en possèdez pas un à vous comme la plupart d'entre nous)
smtpd_helo_required = yes Mettre Yes ajoute de la sécurité, ainsi les spammeurs sont rejetés s'ils n'utilisent pas le helo pour s'identifier.
mydestination = $myhostname, localhost.$mydomain, $mydomain Ce paramètre indique les domaines pour lesquels le serveur devra délivrer les mails localement.
myorigin = $mydomain Ce paramètre indique le ou les domaines qui seront derrière le @ des courriers sortant du serveur.
empty_address_recipient = moi@mondomaine.com E-mail sur lequel sont redirigés les mails sans destinataire.


Voici la configuration de base.

Implémentation d'alias :

Pour ajouter un alias à une boite. par exemple vous avez la boite aux lettres mdupont, et vous désirez que les emails m.dupont@mondomaine.com arrivent dans la même boite.

Il suffit d'éditer le fichier /etc/postfix/alias dans un éditeur comme vi et d'ajouter une ligne en fin de fichier de cette façon :

m.dupont : \mdupont

En règle général : alias : \boites-aux-lettres ou \alias2

Ensuite vous refermez et executez la commande postalias /etc/postfix/alias

Cette commande regénère le fichier alias.db qui est interprété par Postfix.

Header_check pour réduire le spam :

Le fichier header_check permet de refuser mail avant son traitement en Queue à l'aide d'expressions régulières.

Quelques exemples expliqués :

/newsletter@wanadoo\.fr/ REJECT ERREUR MAIL REJETE ET NON TRANSMIS Ici les mail newsletter@wanadoo.fr seront rejeter dès leur arrivé sur le serveur SMTP.
/newsletter*@wanadoo\.fr/ REJECT ERREUR MAIL REJETE ET NON TRANSMIS ici l'étoile permet de remplacer n'importe quel caractère entre le r et le @ - Donc vous rejeterez ainsi les mails comme newsletters@wanadoo.fr ou encore newslettera@wanadoo.fr
/newsletter.*@wanadoo\.fr/ REJECT ERREUR MAIL REJETE ET NON TRANSMIS Ici le .* remplace un nombre indéfinis de caractères entre le r et le @.
/@*.\.kr REJECT ERREUR MAIL REJETE ET NON TRANSMIS Ici vous rejeterez tous les mails ayant pour domaine .kr

Attention ce genre de filtrage peut s'il est sur utiliser ralentir votre serveur. Notez que dans les exemple le text "REJECT ERREUR MAIL REJETE ET NON TRANSMIS" est celui qui sera affiché non seulement dans vos logs de messagerie mais également en réponse du mail d'erreur que celui qui vous aura écris recevra. Ainsi un expéditeur filtré recevra un mail d'erreur avec en contenu : <smtp.spamer.fr #5.5.0 smtp;550 Error: ERREUR MAIL REJETE ET NON TRANSMIS>

Visualiser la Queue de Postfix :

Il existe un outil qshape qui permet de visualiser la queue de postfix. Voici son utilisation :

qshape -s active // Affiche la queue Active de postfix en classant par domaine d'expéditeur

qshape active // Par domaine de reception.

qshape -s deferred // Affiche la queue defferred en classant par domaine d'expéditeur

Comment lire l'information retourner par Qshape :

T
5
10
20
40
80
160
320
640
1280
1280+
TOTAL
3868
76
68
145
365
780
2456
0
0
0
0
mondomain.fr
3000
45
20
78
125
500
1458
0
0
0
0
checkpoint.com
57
20
0
0
0
0
37
0
0
0
0
eic.ictnet.es
45
0
20
24
0
0
0
0
0
0
0
btinternet.com
44
0
8
2
30
0
0
0
0
0
0
garnet.acns.fsu.edu
30
11
0
0
9
10
0
0
0
0
0
horizonfcb.co.ae
30
0
0
0
0
0
30
0
0
0
0
characterlink.net
20
0
0
0
0
0
20
0
0
0
0
bellamylaw.com
20
0
0
0
0
0
20
0
0
0
0

La colonne "T" montre le total des messages pour chaque domaine. Les colonnes suivantes montre le nombre de messages par tranche d'âge. La ligne nommée "TOTAL" montre le total pour tous les domaines.

Dans cet exemple il 3000 mail de mondomain.fr dont 45 à 5 minutes, 20 à 10 minutes, 78 à 20minutes, 125 à 40 minutes etc...

Analyse des goulots d'étranglement de Postfix avec Qshape : http://postfix.traduc.org/index.php/QSHAPE_README.html

 

Mise en place de FetchMail :

Fetchmail est un programme qui peut s'executer en deamon et qui permet de recuperer des mails sur des serveurs POP. Par exemple, vous avez votre domaine truc.com sur lequel vous avez paramètrer PostFix, donc votre boite "nospheratus@truc.com" fonctionne, mais vous désirez continuer à recevoir vos e-mail wanadoo, free ou autre. Postfix ne sait pas faire du pop seul. Il est capable d'être intérroger par un logiciel comme Outlook Express en pop, mais lui, est incapable d'interroger un autre serveur en pop. Donc pour rendre celà faisable nous utilisons FetchMail.

L'installation de fetchmail se fait tout simplement avec les rpm de Mandriva, via l'interface graphique ou en ligne de commande : urpmi fetchmail

Pour simplifier je ne vais configurer qu'un seul deamon fetchmail sous root, qui recuperera les mails de tous les utilisateurs pour les remettre dans les bonnes boites.

Donc sous Root, vous devez etider le fichier /root/.fetchmailrc : vi /root/.fetchmailrc

Le mieux est d'effacer complêtement les lignes déjà inscrite et de partir sur un fichier vièrge.

Saisir ensuite :

set postmaster "moi" Le postmaster de la messagerie comme etant : moi.
set bouncemail Permet de renvoyer les messages d'erreur
set properties ""
set logfile /var/log/fetchmail.log Definit le fichier de log lors du mode verbose.
poll pop.free.fr with proto POP3 Définit ici le serveur pop3 de free pour recuperer les mails chez free
user "moncompte" there with password "monpassword" is moi here warnings 3600 La ligne d'identification de mon compte, chez free mon mail est moncompte@free.fr et mon mot de passe est monpassword. "is moi here" indique quel utilisateur local doit recevoire les mails recuperés par la commande.
antispam 471 571 550 501 554 Permet de ne pas récuperer les mails identifier comme du spam (fonctionne moyennement)

Exemple de récuperations de plusieurs boites de plusieurs utilisateurs chez un même FAI. Imaginons que vous ayez l'utilisateur bob qui a un mail bobmail@wanadoo.fr et un autre utilisateur joe qui a un mail joemail@wanadoo.fr également. Il est interessant de grouper la récupération :

poll pop.wanadoo.fr with proto POP3
user "bobmail" there with password "bobpass" is bob here warnings 3600
antispam 471 571 550 501 554
user "joemail" there with password "joepass" is joe here warnings 3600
antispam 471 571 550 501 554

Lancement du Deamon :

La commande de fetchmail est : fetchmail -v -d 60

Le -v permet le mode verbose et donc de controler les erreurs dans le fichier de log.

Le -d 60 permet le mode deamon avec une interrogation toutes les 60 secondes.

Il existe beaucoup d'autres paramètres que vous pouvez obtennir en lançant la commande fetchmail --help