Postfix

Transcription

Postfix
Postfix
Introduction
La gestion du courrier électronique a longtemps été un problème difficile sous Linux. Ceci
principalement du fait de la complexité de paramétrage du serveur de courrier électronique
Sendmail. Heureusement, des logiciels efficaces et plus simples comme Postfix sont apparus
pour traiter la gestion du courrier électronique.
Acheminement du courrier électronique
Vous recevez et envoyer probablement des dizaines de messages électroniques par jour. Mais
savez-vous ce qui se met en œuvre lorsque vous cliquez sur le bouton Envoyer de votre outils de
messagerie ?
1. Celui-ci commence par contacter le serveur utilisé pour envoyer des messages (MTA,
Mail Transport Agent, agent de transport du courrier électronique), à l’aide du protocole
SMTP ( Simple Mail Transfer Protocol). Il s’agit d’un programme (sendmail, smail,
Microsoft Exchange Server, etc.) qui accepte le contenu de votre message, ainsi que
tous les en-têtes que votre outil de messagerie a pu ajouter.
2. Le serveur traite ensuite les adresses de l’émetteur et des destinataires, ainsi que les entêtes. En fonction des informations collectées, le serveur décide du traitement du
message.
3. Celui-ci peut être acheminé immédiatement vers une boîte aux lettres local; il peut être
placé dans une file d’attente, jusqu'
à son acheminement; ou il peut être transmis à un
autre serveur. Les règles présidant à l’acheminement du courrier électronique peuvent
être très élaborées, et un message peut suivre un chemin complexe avant de parvenir
élaborées, et un message peut suivre un chemin complexe avant de parvenir à
destination.
4. Finalement, sauf si l’adresse du destinataire est incorrecte ou si un autre incident
survient, un serveur distant acceptera le message pour le placer dans une boîte aux
lettres locale. Les boîtes aux lettres peuvent être organisées de manières très diverses ;
sous Linux, il s’agit d’un fichier (/var/spool/mail/usager) contenant tous les messages non
encore lus par le destinataire.
Page 1
Postfix
5. Après un certain laps de temps, le message est retiré de la boîte aux lettres par l’outil de
messagerie du destinataire (MUA, Mail User Agent). Un client s’exécutant sur la même
machine que le serveur peut lire directement les messages dans le fichier approprié. A
travers le réseau, il est nécessaire d’utiliser un protocole, par exemple POP3 (Post Office
Protocol).
Vous noterez que la dernière étape diffère singulièrement des autres. Jusqu'
à ce point, les
messages étaient envoyés : l’émetteur est à l’origine de la transaction qui permet au message
d’atteindre le relais suivant vers sa destination finale. Pour la toute dernière étape le processus
est inversé : le client récupère le message dans la boîte aux lettres en interrogeant le serveur.
MUA (Mail User Agent)
L’agent utilisateur (MUA) est le programme dont vous vous servez pour communiquer avec le
système de courrier électronique. Sous Linux l’agent utilisateur le plus simple se nomme mail. Il
s’agit d’un client très limité; incapable d’utiliser le protocole POP3, il ne peut lire que les
messages d’une boîte aux lettres locale. Toutefois, il suffit pour tester votre système de courrier
électronique.
S’il est appelé sans arguments, il vérifie la présence de nouveau messages :
[root@neptune root]# mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 5 messages 1 new 5 unread
U 1 [email protected] Thu Jan 16 02:25 39/997 "LogWatch for neptune"
U 2 [email protected] Sat Jan 25 10:36 39/997 "LogWatch for neptune"
U 3 [email protected] Sun Jan 26 09:39 47/1221 "LogWatch for neptune"
U 4 [email protected] Mon Jan 27 20:32 39/997 "LogWatch for neptune"
>
L’un des agents utilisateur les plus prisés dans le monde Unix se nomme pine. Contrairement à
mail, il offre une interface pleine écran. Il est aussi capable d’attacher des fichiers.
Bien entendu, la plupart des utilisateurs actuels ne se servent pas d’agents fonctionnant sous
Linux, même si leur serveur de courrier est un système Linux. Il est plus courant d’exploiter
l’agent distribué avec un navigateur, par exemple Netscape ou Microsoft Outlook.
Page 2
Postfix
MTA (Mail Transfert Agent)
Un agent de transport (MTA, Mail Transport Agent), aussi appelé serveur de messagerie, pour
revêtir des formes très diverses. Toutefois, sendmail reste le plus utilisé sur Internet. Il existe
depuis de nombreuses années, et les versions actuelles sont remarquablement stables et
puissantes. Son seul défaut vient de sa popularité : il est la cible fréquente d’attaques ou
tentatives de détournement de la sécurité.
Protocoles
Si l’on considère la quantité de MTA et de MUA disponibles, on peut légitimement se demander
comment ces programmes réussissent à interagir. Le secret réside dans la standardisation.
Tous les systèmes de messagerie utilisent un ensemble de protocoles commun. Tous les agents
Linux se servent de répertoires, formats et mécanismes d’accès connus. En conséquence,
même si un message peut être manipulé par une dizaine de programmes différents lors de son
acheminement entre l’émetteur et le destinataire, le résultat final est la mise en place d’un
système fiable.
SMTP :le protocole de transfert des messages
Simple Mail Transport Protocol Port 25
Tous les serveurs de courrier électronique reçoivent les messages à l’aide d’un mécanisme
commun :SMTP, Simple Mail Transfert Protocol. Que le message soit envoyé par votre agent ou
par un autre serveur, la méthode reste la même : le système émetteur se connecte au serveur à
l’aide du protocole SMTP, indique l’auteur et le destinataire du message, et transfère le message
proprement dit.
Le terme simple, dans SMTP, n’est pas une exagération. Le protocole est tellement élémentaire
que vous pouvez faire manuellement une transaction. Voici un exemple qui illustre ce point :
# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Page 3
Postfix
220 localhost.localdomain ESMTP Sendmail 8.11.6/8.11.6; Mon, 27 Jan
11 -0500 20:54:
HELO Linux
250 localhost.localdomain Hello
neptune [127.0.0.1], pleased to meet you
POP3 : le protocole serveur/destinataire
Post Office Protocol Port 110
Le protocole SMTP permet d’acheminer un message un message vers un serveur de messagerie
(MTA). Mais il n’offre aucun moyen d’amener le message jusqu'
à sa destination finale, c’est-àdire jusqu'
à l’agent utilisateur (MUA) s’exécutant sur l’ordinateur du destinataire. En d’autres
termes, il est possible d’envoyer un message vers un serveur, via SMTP, mais il n’est pas
possible de demander un message à un serveur. La lecture d’une boite aux lettres passe par un
autre protocole, qui est souvent POP3 (Post Office Protocol). POP3 est facile à comprendre.
Tout comme SMTP, il peut être utilisé manuellement pour se connecter à un serveur :
# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK POP3 neptune v2001.78rh server ready
USER sgill
+OK User name accepted, password please
PASS qwerty
+OK Mailbox open, 2 messages
LIST
+OK Mailbox scan listing follows
1 442
2 522
.
RETR 1
+OK 442 octets
Path: <[email protected]>
Received: from hakimb (neptune [127.0.0.1])
………
………
Page 4
Postfix
………
fin du message
.
QUIT
Connection closed by foreign host.
#
IMAP4
Internet Message Access Protocol Port 143
IMAP signifie Interactive Mail Access Protocol. L'
IMAP est plus récent que le POP et permet de
gérer vos messages directement sur le serveur distant à partir de votre ordinateur connecté. Le
principal avantage est la synchronisation parfaite entre votre logiciel de messagerie et le serveur.
Toutes les manipulations (lecture, effacement, changement de place de vos messages)
effectuées à partir de votre logiciel de messagerie seront répercutées sur le serveur et
réciproquement. Vous aurez ainsi une image similaire de votre boîte aux lettres sur votre
ordinateur et sur le serveur.
Contrairement au POP, les messages ne sont pas rapatriés systématiquement, seules les entêtes le sont. Cela vous laisse ainsi le choix de lire ce qui vous intéresse. Lorsque vous décidez
de lire un message, celui-ci est rapatrié sur votre ordinateur mais il n'
est pas effacé du serveur. Si
vous l'
effacez sur votre PC ou Mac, alors il sera aussi effacé du serveur. Bien entendu ces
manipulations doivent être faites en mode connecté afin que la synchronisation puisse être
effective en temps réel. Si vous n'
êtes pas connecté, cette synchronisation se fera lors de votre
prochaine connexion.
L'
utilisation de ce protocole devient très intéressante lorsque l'
on consulte sa messagerie à partir
de différents ordinateurs ou terminaux, car toutes les actions effectuées seront synchronisées
avec le serveur, vous retrouvez ainsi toujours le même environnement.
L'
IMAP est en fait une version très améliorée du POP, ce dernier devrait être peu à peu
remplacer par l'
autre.
# telnet localhost imap
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Page 5
Postfix
* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN]
neptune
IMAP4rev1 2001.315rh at Wed, 29 Jan 2003 02:05:15 -0500 (EST)
Les boites aux lettres
Sur un système Linux, votre boite aux lettres est un fichier situé dans le répertoire /var/spool/mail
et portant votre nom de login. Chaque message, dans ce fichier, débute par une ligne From :
Cette ligne respecte un format bien défini, qui permet aux programmes de reconnaître la fin d’un
message et le début du suivant. Après la ligne From :, on trouve les différents en-têtes, que nous
expliquerons dans la section suivante. Le dernier en-tête est suivi d’une ligne vierge, après
laquelle se trouve le corps du message.
Voici un exemple :
$ more /var/spool/mail/pierre
From [email protected] Mon Jan 27 23:44:52 2003
Return-Path: <[email protected]>
Received: from localhost (root@localhost)
by localhost.localdomain (8.11.6/8.11.6) with ESMTP id h0S4iqX01883;
Mon, 27 Jan 2003 23:44:52 -0500
Date: Mon, 27 Jan 2003 23:44:52 -0500 (EST)
From: root <[email protected]>
To: [email protected]
cc: [email protected]
Subject: test
Message-ID: <Pine.LNX.4.44.0301272344010.1877-100000@neptune>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Ceci est un test
$
Installation
L’installation de Postfix se fait à partir du paquetage rpm suivant :
postfix-2.0
Page 6
Postfix
Pour que Postfix deviennent l’agent de transport de courrier par défaut, il faut l’activer à l’aide de
la commande alternatives :
# chkconfig sendmail off
# service sendmail stop
# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection
Command
----------------------------------------------*+ 1
2
/usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2
# chkconfig postfix on
# service postfix start
Cette commande modifie les liens symboliques qui se trouve dans le répertoire /etc/alternatives.
Configuration
La majeure partie du travail de configuration consiste à adapter le fichier /etc/postfix/main.cf. Les
modifications doivent être effectuées à partir de l’administrateur root. Avant toute modification, il
est prudent de sauvegarder le fichier original :
# cp /etc/postfix/main.cf /etc/postfix/main.cf.reference
Éditer le fichier /etc/postfix/main.cf et modifier les lignes suivantes afin de mettre des paramètres
adaptés :
myhostname = mail.is-a-geek.net
mydomain = is-a-geek.net
myorigin = $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
#inet_interfaces = 192.168.1.1
mydestination = $myhostname, localhost.$mydomain, $mydomain
Page 7
Postfix
Le serveur DNS du domaine is-a-geek.net devra contenir l'
enregistrement MX mail.is-a-geek.net.
Pour plus de détail sur la configuration de Postfix consultez la documentation en ligne :
http://x.guimard.free.fr/postfix/
myhostname
défaut : voir la sortie de "postconf -d"
Le nom de machine Internet de ce système de messagerie. Par défaut, il vaut le résultat de
gethostname() au format pleinement. $myhostname est utilisé comme valeur par défaut pour
beaucoup d'
autres paramètres de configuration.
Exemple :
myhostname = host.domain.tld
mydomain
défaut : voir la sortie de "postconf -d"
Le nom de domaine Internet de ce système de messagerie. Par défaut, ce paramètre vaut use
$myhostname oté de son premier composant. $mydomain est utilisé comme valeur par défaut
pour beaucoup de paramètres de configuration.
Exemple :
mydomain = domain.tld
myorigin
défaut : $myhostname
Le domaine par défaut utilisé pour les messages postés localement. La valeur par défaut de
$myhostname, est adéquate pour les petits sites. Si vous contrôlez un domaine avec de multiples
machines, vous devrez changer celà en $mydomain et (2) mettre en place une base d'
alias
globale qui référencera tous les [email protected].
Exemple :
Page 8
Postfix
myorigin = $mydomain
mynetworks
défaut : voir la sortie de "postconf -d"
La liste des clients SMTP "internes" qui ont plus de privilèges que les "étrangers".
En particulier, ces clients SMTP internes sont autorisés à relayer du courrier via Postfix. Voyez le
paragraphe du paramètre smtpd_recipient_restrictions
Vous pouvez indiquer la liste des adresses réseaux autorisées à la main ou laisser Postfix le faire
(valeur par défaut. Voyez la description du paramètre mynetworks_style pour plus d'
information.
Autrement, vous pouvez renseigner mynetworks à la main auquel cas Postfix ignore le paramètre
mynetworks_style.
Indiquez une liste d'
expressions réseau/masque, séparé par des virgules et/ou des espaces.
Continuez les lignes longues en commençant la ligne suivante par des espaces.
Le masque indique le nombre de bits de la partie réseau de l'
adresse. Vous pouvez également
indiquer des "/noms/de/fichiers" ou des expressions "type:table". Un "/nom/de/fichier" de
correspondances est remplacé par son contenu; une table de correspondances "type:table"
correspond lorsqu'
une de ses clefs correspond (le résultat de la consultation est ignoré).
La recherche est effectuée de gauche à droite et s'
arrête à la première correspondance. Indiquez
"!expression" pour exclure une adresse ou un sous-réseau de la liste.
Exemples :
mynetworks = 168.100.189.0/28, 127.0.0.0/8
mynetworks = !192.168.0.1, 192.168.0.0/28
mynetworks = $config_directory/mynetworks
mynetworks = hash:/etc/postfix/network_table
inet_interfaces
défaut : all
Page 9
Postfix
Les adresses réseau par lesquelles le système de messagerie reçoit les messages. Par défaut,
le logiciel accepte toutes les interfaces de la machine. Ce parametre contrôle également la
livraison des messages à utilisateur@[address.ip].
Lorsque inet_interfaces ne contient qu'
une seule adresse IP qui n'
est pas l'
adresse de la boucle
locale (réseau 127), le client SMTP de Postfix utilisera cette adresse comme adresse source pour
le courrier sortant.
Sur un firewall hébergement plusieurs domaines avec des instances séparées de Postfix
écoutant sur les interfaces "inside" et "outside", ceci peut éviter à chaque instance d'
être capable
d'
atteindre des serveurs de "l'
autre coté" du firewall. Mettre smtp_bind_address à 0.0.0.0 évite ce
problème potentiel.
Une meilleure solution est de laisser inet_interfaces à la valeur par défaut et au lieu d'
utiliser des
adresses IP explicites dans le fichier master.cf. Ceci préserve la détection des boucles SMTP en
s'
assurant que chaque coté du firewall connait l'
autre adresse IP de la même machine.
Renseigner $inet_interfaces avec un adresse IP unique est utile pour l'
hébergement virtuel de
domaines sur une adresse IP secondaire, lorsque chaque adresse IP sert un domaine différent
(et a une valeur $myhostname différente).
Voyez aussi le paramètre proxy_interfaces, pour les adresses transférées par le biais d'
un proxy
ou d'
un traducteur d'
adresse.
Note : vous devez arrêter et redémarrer Postfix lorsque ce paramètre change.
mydestination
défaut : $myhostname, localhost.$mydomain, localhost
Liste des domaines livrés par le transporteur de messages $local_transport. Par défaut c'
est
l'
agent local(8) de livraison qui qui recherche les destinataires dans /etc/passwd et /etc/aliases.
Le serveur SMTP valide les adresses de destination avec $local_recipient_maps et rejette les
destinataires inconnus. Voyez également la classe local domain dans le fichier
ADDRESS_CLASS_README.
La valeur de mydestination par défaut ne correspond qu'
à la machine hôte. Sue une passerelle
de messagerie d'
un domaine, vous devrez également inclure $mydomain.
Page 10
Postfix
La méthode de livraison $local_transport est également sélectionnée pour le courrier adressé à
utilisateur@[l.adresse.IP] du système de messagerie (toutes les adresses IP indiquées dans
inet_interfaces et proxy_interfaces).
Attention :
N'
indiquez pas les noms des domaines virtuels - ils sont indiqués ailleurs. Voyes la page
VIRTUAL_README pour plus d'
information.
N'
indiquez pas les noms des domaines dont votre machine est un MX de secours. Reportez-vous
à la page STANDARD_CONFIGURATION_README pour la mise en oeuvre de secours MX.
Par défaut, le serveur SMTP de Postfix rejette le courrier des destinataires non listés avec le
paramètre local_recipient_maps. Pour plus d'
information, consultez les paragraphes
local_recipient_maps et unknown_local_recipient_reject_code.
Indiquez une liste de host or noms de domaine, "/nom/de/fichier" or expressions "type:table",
séparé par des virgules et/ou des espaces. Un "/nom/de/fichier" de correspondances est
remplacé par son contenu; une table de correspondances "type:table" correspond lorsqu'
une de
ses clefs correspond au nom (le résultat de la consultation est ignoré). Continuez les lignes
longues en commençant la ligne suivante par des espaces.
Exemples :
mydestination = $myhostname, localhost.$mydomain $mydomain
mydestination = $myhostname, localhost.$mydomain www.$mydomain,
ftp.$mydomain
Synonymes
Il est souvent nécessaire de réadresser des messages. Ainsi, un utilisateur peut être
momentanément absent, et les messages qui lui sont destinés sont alors dirigés vers son
ordinateur portable. Le réacheminement repose sur l’utilisation de synonymes, souvent définis
dans le fichier /etc/aliases. Ce fichier contient des lignes comme :
postmaster : root
Celle-ci signifie que tout message destiné à postmaster sera réacheminé vers root. La destination
n’est pas obligatoirement locale :
Page 11
Postfix
werbmaster : [email protected]
Pour des raisons d'
optimisation, postfix, tout comme sendmail, exige que les fichiers tels que le
fichier d'
alias soit traité comme une base de données au format DBM ou DB. Pour générer ces
formats, on utilise l'
utilitaire /usr/sbin/postalias. A noter qu'
en utilisant Webmin, cette opération
est effectuée automatiquement. En adoptant le format DB la commande pour générer le fichier
/etc/postfix/aliases.db à partir du fichier /etc/postfix/aliases est :
# postalias hash:/etc/postfix/aliases
UW-IMAP
UW-IMAP est le serveur imap/pop3 de l'
Université de Washington fourni avec Fedora. La
documentation de UW-IMAP se trouve sur le site http://www.washington.edu/imap/.
Installation
L’installation des serveurs imap et pop3 se fait avec les paquetages rpm se trouvant sur les CD
de Fedora :
imap-2002d-3
php-imap-4.3.3-6
UW-IMAP utilise le démon xinetd, qui doit être configuré pour faire appel à ipop3d et imapd. Les
commandes suivantes permettent donc de démarrer pop3 et imap:
chkconfig pop3 on
chkconfig imap on
service xinetd restart
Pour tester le fonctionnement de pop3 il suffit de faire:
telnet 127.0.0.1 110
et pour imap
telnet 127.0.0.1 143
Page 12
Postfix
Squirrelmail
Un webmail est une interface web pour consulter son courrier électronique. Squirrelmail est un
webmail écrit en PHP4. Il supporte les protocoles IMAP et SMTP, et toutes les pages générées
le sont en pur HTML (sans aucun Javascript), ceci afin d'
être compatible avec le maximum de
navigateurs.
L’installation se fait à l’aide du paquetage rpm:
squirrelmail-1.4
Ce paquetage est disponible avec le CD de Fedora. Une fois installé, il suffit de taper l’URL
suivant dans votre navigateur préféré: http://127.0.0.1/webmail.
Page 13
Postfix
SpamAssassin
SpamAssassin est un filtre anti-spam performant avec des fonctionnalités d'
auto-apprentissage.
Spamassassin n’efface pas le spam, il ajoute dans le sujet du mail le mot SPAM. Lorsque postfix
reçoit du courrier il utilise procmail pour le stocker dans la boite aux lettre (/var/spool/mail). Il est
possible de configurer procmail de façon à filtrer le courrier électronique à l’aide de spamassassin.
Postfix
procmail
spamassassin
/var/spool/
mail
Installation
Spamassassin est doisponible en paquetage rpm avec la majorité des produits RedHat et Fedora.
La version tar est disponible sur le site de spamassassin : http://spamassassin.apache.org/
Page 14
Postfix
Démarrage
La commande chkconfig permet de démarrer spamassassin au démarrage :
chkconfig - - level 35 spamassasin on
Pour démarrer/arrêter/repartir spamassassin la commande service peut être utilisé :
service spamassassin start
service spamassassin stop
service spamassassin restart
Configuration procmail
Le fichier /etc/procmailrc est utilisé par procmail pour déterminer les logiciels qui seront utilisés
pour filtrés les courriers électroniques. Par défaut ce fichier n’existe pas. Spamassassin fournis
un fichier appelé /etc/mail/spamassassin/spamassassin-spamc.rc qui facilite la création du fichier
procmailrc.
cp /etc/mail/spamassassin/spamassassin-spamc.rc /etc/procmailrc
Configuration
La configuration se fait dans le fichier /etc/mail/spamassassin/local.cf. Voici un exemple de
fichier :
###################################################################
# See 'perldoc Mail::SpamAssassin::Conf' for
# details of what can be adjusted.
###################################################################
#
# These values can be overridden by editing
# ~/.spamassassin/user_prefs.cf (see spamassassin(1) for details)
#
# How many hits before a message is considered spam. The lower the
Page 15
Postfix
# number the more sensitive it is.
required_hits
5.0
# Whether to change the subject of suspected spam (1=Yes, 0=No)
rewrite_subject
1
# Text to prepend to subject if rewrite_subject is used
subject_tag
*****SPAM*****
# Encapsulate spam in an attachment (1=Yes, 0=No)
report_safe
1
# Use terse version of the spam report (1=Yes, 0=No)
use_terse_report
0
# Enable the Bayes system (1=Yes, 0=No)
use_bayes
1
# Enable Bayes auto-learning (1=Yes, 0=No)
auto_learn
1
# Enable or disable network checks (1=Yes, 0=No)
skip_rbl_checks
0
use_razor
1
use_dcc
1
use_pyzor
1
# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
# - english
ok_languages
en
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales
en
Page 16
Postfix
Vérification du fonctionnement
Deux fichiers de test sont fournis avec spamassassin :
•
/usr/share/doc/spamassassin-2.60/sample-nonspam.txt
•
/usr/share/doc/spamassassin-2.60/sample-spam.txt
On peut utiliser la commande suivante pour tester le fonctionnement :
spamassassin –t < sample-spam.txt
Anomy Sanitizer
Anomy Sanitizer est un filtre mail qui corrige les messages défectueux et bloque les pièces
jointes suspectes. Il peut aussi se charger d'
appeler l'
antivirus. http://mailtools.anomy.net.
ClamAV
ClamAV est un antivirus Unix sous licence GPL basé sur le projet OpenAntivirus.
http://www.clamav.net/.
Intégration de l'antivirus dans Anomy Sanitizer
Il faut ensuite modifier la configuration dans le fichier /etc/sanitizer.cfg :
Modifier les lignes :
file_list_1_policy = drop
file_list_1_scanner = 0
en :
file_list_1_policy = accept:accept:drop:save
file_list_1_scanner =
0:1:3:/usr/local/anomy/chk_virus.sh %FILENAME %REPLY_TO
Avec cette configuration, les pièces jointes susceptibles de contenir des virus seront scannées.
Page 17
Postfix
Filtrage avec Postfix :
La technique de filtrage par script présenté dans cette section est celle proposée par la
documentation de Postfix.
Il faut d’abord créer un répertoire temporaire:
# groupadd filter
# useradd filter -s /bin/false -d /var/spool/filter -g filter
# rm -f /var/spool/filter/.*
Voici le script dont a besoin Postfix pour effectuer le filtrage :
#!/bin/sh
#
# filter.sh
#
# Simple filter to plug Anomy Sanitizer and SpamAssassin
# into the Postfix MTA
#
# From http://advosys.ca/papers/postfix-filtering.html
# Advosys Consulting Inc., Ottawa
#
# For use with:
#
Postfix 20010228 or later
#
Anomy Sanitizer revision 1.49 or later
#
SpamAssassin 2.42 or later
#
# Note: Modify the file locations to match your particular
#
server and installation of SpamAssassin.
# File locations:
# (CHANGE AS REQUIRED TO MATCH YOUR SERVER)
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/lib/sendmail -i"
ANOMY=/usr/local/anomy
SANITIZER=/usr/local/anomy/bin/sanitizer.pl
ANOMY_CONF=/usr/local/anomy/anomy.conf
ANOMY_LOG=/dev/null
Page 18
Postfix
SPAMASSASSIN=/usr/local/bin/spamassassin
export ANOMY
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }
# Clean up when done or when aborting.
trap "rm -f out.$$" 0 1 2 3 15
cat | $SPAMASSASSIN -x | $SANITIZER \
$ANOMY_CONF 2>>$ANOMY_LOG > out.$$ || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
$SENDMAIL "$@" < out.$$
exit $?
ajoutez à la fin de /etc/postfix/master.cf :
# =============================================================
# service type
private unpriv
chroot
wakeup
#
(yes)
(yes)
(never) (100)
(yes)
maxproc command
# =============================================================
filter
unix
-
n
n
-
10
pipe
flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender}
-- ${recipient}
Page 19

Documents pareils

Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin

Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin alias vers lui même sera utilisé par postfixadmin. le 4ème INSERT est lui un simple alias virtuel. Le 7ème INSERT est un compte (boite email) virtuel, qui utilise un mot de passe encrypté en MD5. N...

Plus en détail