Академический Документы
Профессиональный Документы
Культура Документы
et sendmail.cf
Roland Dirlewanger
C.N.R.S. - Délégation
Aquitaine et Poitou-Charentes
Juillet 1999
0-0
' Rôle de sendmail (1)
$
sendmail : c’est un relais de messages au format RFC 822.
&
sendmail, Juillet 1999 -1 Roland Dirlewanger, 1996-1999
%
&
'
sendmail, Juillet 1999 -2
sendmail serveur
SMTP
Roland Dirlewanger, 1996-1999
moteur mailer X
mailer local
$
' Installation d’une messagerie avec sendmail
$
La configuration de base pour un département dans une entreprise, un
laboratoire dans un campus universitaire, . . . , comporte :
&
sendmail, Juillet 1999 -3 Roland Dirlewanger, 1996-1999
%
' Le modèle client/serveur - avec stations de travail
$
Accès aux boîtes à lettres des utilisateurs ) montage NFS.
Messages
SMTP
/usr/lib/sendmail
boîtes à lettres
NFS
&
sendmail, Juillet 1999 -4 Roland Dirlewanger, 1996-1999
%
' Le modèle client/serveur - avec micros
$
Accès aux boîtes à lettres des utilisateurs ) POP 3 ou IMAP.
Messages
SMTP
/usr/lib/sendmail
boîtes à lettres
popd, imapd
& %
POP, IMAP
ftp.univ-lyon1.fr /pub/mirrors/unix/sendmail-ucb
fréquence des mises à jour : environ une mise à jour majeure, i.e.
& %
liée à un problème de sécurité, par an. Quelques mises à jour
mineures par an.
clé: valeur
Par exemple :
Joe.Dalton: joe
Jack.Dalton: jack
William.Dalton: william
Averell.Dalton: averell
Les-Freres-Dalton: Joe.Dalton,Jack.Dalton,
William.Dalton,Averell.Dalton
liste1: "|gestionnaire-de-liste liste1"
liste2: :include:/home/listes/liste2
Lorsque sendmail détermine que le mailer est local (plus exactement, que
le mailer a le flag A) et que le destinataire est useur, il vérifie si useur est
dans le fichier d’alias. Si oui, il remplace useur par la valeur associée et
recommence le traitement.
& %
On peut tester la base des alias par la commande suivante :
# /usr/lib/sendmail -bv Les-Freres-Dalton
joe... deliverable: mailer local, user joe
jack... deliverable: mailer local, user jack
...
&
sendmail, Juillet 1999 -8 Roland Dirlewanger, 1996-1999
%
' Configurer sendmail
$
Le comportement de sendmail est régi par un fichier de configuration,
sendmail.cf situé dans le répertoire /etc ou /etc/mail selon
les versions.
&
sendmail, Juillet 1999 -9 Roland Dirlewanger, 1996-1999
%
' Structure d’un fichier sendmail.cf
$
Chaque ligne commence par un caractère qui indique le type d’action
(déclaration ou réécriture).
&
sendmail, Juillet 1999 -10 Roland Dirlewanger, 1996-1999
%
' sendmail.cf : les macros
$
Syntaxe
Dm valeur
D{macro} valeur
Description
Associe à la macro $m la valeur valeur. Les noms de macros en
minuscules sont réservés et certaines sont préaffectées par
sendmail en fonction de l’environnement système :
$@ la chaîne vide
& %
Z la version du fichier sendmail.cf
Description
Associe à la classe $c l’ensemble des valeurs valeur. sendmail
définit deux opérateurs utilisés dans les expressions régulières :
&
sendmail, Juillet 1999 -12 Roland Dirlewanger, 1996-1999
%
' sendmail.cf : les options
$
Syntaxe
Oovaleur
Description
Modifie le comportement de sendmail. A partir de sendmail
version 8, le nom des options peut comporter plusieurs caractèeres.
O AliasFile=/. . . /. . . localisation du fichier des aliases
O TimeOut.queuereturn=xd précise qu’un message ne peut pas rester plus que x jours dans la file
d’attente. Au delà de cette limite, le message est rejeté et un message
d’erreur est envoyé à l’expéditeur
O TimeOut.queuewarn=xh précise qu’un message d’avertissement doit être expédié à l’expéditeur si le
message est depuis plus de x heures dans la file d’attente.
O TimeZoneSpec= utiliser la variable TZ de l’environnement pour préciser le fuseau horaire.
Par défaut, utilise la valeur système.
O OperatorChars=... définit la liste des séparateurs des jetons.
Note
Les options Oxvaleur peuvent être affectées sur la ligne de
& %
commande. Par exemple :
% /usr/lib/sendmail -OQueueDirectory=/tmp/mqueue \
-OTimeOut.queuereturn=30d -q -v
64 erreur de syntaxe
69 service inacessible
75 erreur transitoire
&
sendmail, Juillet 1999 -14 Roland Dirlewanger, 1996-1999
%
' sendmail.cf : déclaration d’un mailer (2)
$
Syntaxe
Mmailer, P=commande, F=flags, S=nexp , R=ndest ,
A=arguments . . .
Description
Mmailer nom du mailer
& %
sur les adresses des destinataires.
&
sendmail, Juillet 1999 -16 Roland Dirlewanger, 1996-1999
%
' sendmail.cf : les entêtes
$
Syntaxe
H?flags?Nom-entête: texte
Description
?flags? (optionnel) l’entête ne concerne que les mailers
ayant ce flag (voir F= ci-dessus)
Exemple
Pour rajouter un entête avec l’URL de notre site à tous les courriers
acheminés par le mailer "SMTP" :
rajouter la ligne :
H?U?X-Url: http://www.domaine.fr
&
sendmail, Juillet 1999 -17 Roland Dirlewanger, 1996-1999
%
' sendmail.cf : les fichiers associatifs (maps)
$
Sendmail peut interagir avec des mécanismes d’interrogation externes : il
peut s’agir de fichiers associatifs (format NDBM ou NEWDB) ou bien de
bases de données (DNS, LDAP, fichiers NIS, fichiers des utilisateurs).
Ces mécanismes sont appelés maps. Ils ont en commun la possibilité de
retrouver rapidement la valeur associée à une clé ou un index.
Syntaxe
Knom-interne type options arguments
Description
nom-interne c’est le nom sous lequel la map sera connue
dans le fichier sendmail.cf.
type le type d’interrogation. par exemple, pour les
fichiers associatifs : dbm, hash, btree; pour les
maps NIS : nis, nisplus; pour le DNS : bestmx,
host; pour la liste des utilisateurs : user; . . .
les options :
& %
-ax ajoute la chaine de caractères x à toutes les
recherches positives.
-f ne pas convertir l’index en minuscules avant de
le rechercher dans la base.
Exemple
Adresse machine!user
+
Eliminer les particularités
du réseau X +
+
Forme canonique user<@machine.UUCP>
+
Rajouter les particularités
du réseau Y +
& %
+
Adresse user@machine.domaine.fr
exp.
adresse 3 1 règle spécifique au mailer
4
dest.
2 règle spécifique au mailer
R$+@domaine.fr $1@serveur.domaine.fr
&
sendmail, Juillet 1999 -20 Roland Dirlewanger, 1996-1999
%
' Les règles de réécriture (3)
$
La partie gauche : expression régulière pour reconnaitre une adresse
formée d’une suite de jetons composés d’identificateurs ou de
séparateurs (“.”, “@”, “%”, . . . : voir la macro Do).
& %
$1 = Prenom.Nom $1 = login
$+ @ $* domaine . fr
$2 = serveur. $2 = chaine vide
$n est substitué
par la valeur du $*, $+,
$-, . . . correspondants.
$>n appelle le jeu de règles n
& %
La règle S0 se termine avec comme partie droite
$#mailer $@next-hop $:mail-box.
&
sendmail, Juillet 1999 -23 Roland Dirlewanger, 1996-1999
%
' Kit M4 : configuration du serveur (1)
$
C’est le DNS, via des enregistrements MX, qui fait que le serveur est le
point d’entrée du domaine. Les variables $j, $m et $w sont initialisées
automatiquement par sendmail. La configuration minimale est la
suivante :
Contenu de exemple1.mc
OSTYPE(solaris2)
MAILER(local)
MAILER(smtp)
& %
machine.domaine.fr points back to serveur.domaine.fr
& %
Exemple de configuration pour un client :
OSTYPE(solaris2)
FEATURE(nullclient, ‘serveur.domaine.fr’)
11 mailer smtp
forme 1
générique 30 mailer local
expéditeur entêtes
adresse 3 31 mailer smtp
4
destinataires
20 mailer local
enveloppes
21 mailer smtp
2
40 mailer local
entêtes
21 mailer smtp
& %
enchainements standards des règles de réécriture. La commande
/parse permet de déterminer le triplet (mailer, next-hop, mailbox) pour
une adresse donnée.
& %
destinataire), es (enveloppe émetteur), hr (entête destinataire) et hs
(entête émetteur),
FEATURE(relay_based_on_mx)
On peut tester comment une configuration réagit à une tentative de
relayage :
/usr/lib/sendmail -bt -C/chemin/sendmail.cf
> .D{client_name} machine.domaine.fr
> .D{client_addr} 192.9.200.1
> check_rcpt rd@dr15.cnrs.fr
rewrite: ruleset 187 input: rd @ dr15 . cnrs . fr
& %
...
rewrite: ruleset 187 returns: OK
Juste un test.
.
Description
Exemples de valeurs pour x i et yi
& %
37.8 affiche les options et les affectations de
classes.