
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/mailqCette 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 0La 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 554Lancement 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