Dernière modification 31 juillet 2024
Pour la réception des mails et l'installation des serveurs POP, IMAP et du webmail on consultera cette page, pour la lutte antispam et antivirus c'est par ici.
Il existe maintenant postfix qui paraît-il est plus simple et plus sécurisé, il est largement documenté sur le ne. Comme les configurations sous sendmail à l'heure actuelle sont plutôt rares, j'ai choisi d'être le dernier des mohicans.
sendmail-cf
m4
Et éventuellement le package de documentation sendmail-doc. Sachez que vous pourrez toujours trouver la doc de référence sur le site de sendmail.
include(`../m4/cf.m4')dnl
OSTYPE(`linux')dnl
FEATURE(redirect)dnl
FEATURE(nocanonify)dnl
FEATURE(always_add_domain)dnl
FEATURE(local_procmail)dnl
GENERICS_DOMAIN(machine.domaine.fr machine localhost)
FEATURE(genericstable)
FEATURE(masquerade_envelope)dnl
FEATURE(relay_entire_domain)dnl
FEATURE(accept_unresolvable_domains)dnl
define(`confDOMAIN_NAME',`ppp.fai.fr')dnl
define(`SMTP_MAILER_FLAGS',`e9')dnl
define(`confCON_EXPENSIVE', `True')dnl
define(`confME_TOO', `True')dnl
define(`confCF_VERSION', `Commentaire quelconque')dnl
define(`confCOPY_ERRORS_TO', `Postmaster')dnl
define(`confDEF_CHAR_SET', `UTF-8')dnl
define(`confMIME_FORMAT_ERRORS', `True')dnl
define(`SMART_HOST', `smtp8:[mail.fai.fr]')dnl
define(`confRECEIVED_HEADER', `from fai.fr
by fai.fr ($v/$Z)$?r with $r$. id $i$?u
for $u; $|;
$.$b')
define(`confTO_QUEUEWARN', `24h')dnl
MAILER(local)
MAILER(smtp)
Kpirateo hash -o /etc/mail/pirateo
LOCAL_RULE_0
R$+ < @ $+ > $* $: < $(pirateo $1 @ $2 $: $) > $1 < @ $2 > $3
R< $+ > $+ < @ $+ > $* $@ $>97 $1
R<> $+ < @ $+ > $* $: $1 < @ $2 > $3^^^^^^ tabulation unique à cet endroit, ailleurs un simple espace
Le FEATURE(relay_entire_domain)
permet à sendmail
d'accepter les mails venants des postes de votre réseau privé appartenant
à votre domaine privé, sans ce paramètre à l'envoi d'email,
vous auriez sur les PC sous windows un message d'erreur du style "Relaying
denied".
J'ai rajouté aussi FEATURE(accept_unresolvable_domains) car sans
quoi si le PC sous linux est off-line pas moyen d'envoyer un mail d'un PC
sous Windows vers le PC sous Linux, par contre dès qu'on passe
on-line ce paramètre devient parfaitement inutile. Je ne comprends pas
trop pourquoi mais je soupçonne une histoire de DNS la dessous.
ATTENTION: à la tabulation unique dans les trois dernières lignes.
NOTE Attention pour qu'un mail parte en local vers le compte toto vous devez taper comme email de destination toto (sans le domaine), toto@machine ou bien encore toto@machine.domaine.fr avec machine le nom de votre serveur sendmail et domaine.fr celui de votre domaine, si vous mettez toto@domaine.fr, le mail partira vers le FAI avant de revenir sur le réseau local, même si domaine.fr est défini dans la variable GENERICSTABLE.
J'ai rajouté aussi define(`confDOMAIN_NAME',...) et define(`confRECEIVED_HEADER',...) se reporter au paragraphe masquage des domaines.
Ensuite on crée un fichier /etc/mail/genericstable , qui contient ces lignes:
toto: toto.nom@fai.frCe fichier fait la correspondance entre les adresses locales et les adresses "officielles".
tata: tata.nom@fai.fr
La ligne define(`confCF_VERSION', `Commentaire quelconque') permet de rajouter un commentaire quelconque dans l'entête des mails (voir plus bas).
Pour faire prendre en compte la modif de ce fichier, il faut taper ensuite:
sendmail -bi -oA/etc/mail/genericstable
On crée ensuite un fichier /etc/mail/pirateo, dans lequel vous mettrez :
toto.nom@fai.fr toto
tata.nom@fai.fr tata
Ensuite pour générer le fichier au format qui va bien on tape :
makemap hash /etc/mail/pirateo < /etc/mail/pirateo
Ce fichier aura l'effet inverse de /etc/mail/generistable, il
transforme l'adresse du destinataire toto.nom@fai.fr en toto
si celui est un utilisateur local, pour éviter que le mail parte chez le
fai. Mon fichier /etc/hosts commence par la ligne suivante
127.0.0.1 localhost localhost.localdomainN'oubliez pas de rajouter vos postes de votre réseau privé avec le FQDN (Fully qualified domain name, nom complet), ça nous donne donc ça:
127.0.0.1 localhost localhost.localdomain
192.168.13.10 machine.domaine.fr machine
192.168.13.11 windows.domaine.fr windows
192.168.13.12 mac.domaine.fr mac
windows et mac étant deux machines de votre réseau privé, les adresses IP sont données à titre indicatif. Les serveurs SMTP des FAI (ou autres) demandent maintenant généralement un mot de passe pour pouvoir y accéder dans ce cas on rajoutera dans le fichier config.mc la ligne suivante
FEATURE(`authinfo',`hash /etc/mail/auth/clientinfo.db')dnl
on créer le fichier /etc/mail/auth/clientinfo contenant
AuthInfo:smtp.fai.net "U:olivier.hoarau@funix.org"
"I:olivier.hoarau@funix.org" "P:mon-password" "M:PLAIN"
AuthInfo: "U:olivier.hoarau@funix.org" "P:mon-password" "M:PLAIN"
on va créer le fichier au format qui va bien en tapant
makemap -r hash /etc/mail/auth/clientinfo.db < /etc/mail/auth/clientinfo
ATTENTION: si sendmail bloque le boot de la machine, ça peut venir justement du fait qu'on n'a pas modifié la première ligne de /etc/hosts, sendmail n'arrive pas à trouver le nom de la machine et part dans une recherche qui par défaut dure 3 minutes. Par ailleurs ça peut engendrer des problèmes de résolution de nom sur la machine linux en mode off-line, pour résoudre ces problèmes tout en maintenant la ligne en question inchangée, reportez vous à la page installation d'un serveur DNS.
Pour rebâtir le fichier de configuration de sendmail , on tape la
commande:
cd /usr/share/sendmail-cf/cf/
m4 config.mc >
/etc/mail/sendmail.cf
Changer (éventuellement) les droits de ce fichier:
chmod 600 /etc/mail/sendmail.cf
Ça y est c'est fini
Pour relancer tout, il faut d'abord préalablement tuer sendmail s'il tourne, pour cela faire:
systemctl stop sendmail
Puis pour relire le fichier de configuration
sendmail -bd -os
si vous obtenez ces erreurs 554 /etc/sendmail.cf: line 51: unknown configuration line "
"
En fait il suffit d'éditer /etc/mail/sendmail.cf et de supprimer quelques lignes vides au niveau de la ligne 51, pour que tout rentre dans l'ordre, tapez à nouveau la commande sendmail -bd -os.
Voilà ce que donne systemctl status sendmail
sendmail.service - Sendmail Mail Transport
Agent
Loaded: loaded (/usr/lib/systemd/system/sendmail.service;
enabled)
Active: active (running) since dim. 2015-10-04 20:59:56 CEST;
11min ago
Process: 1665 ExecStart=/bin/sh -c exec /usr/sbin/sendmail.sendmail
$DAEMONOPTIONS -bd $(if [ -n "$QUEUE" ]; then echo -q$QUEUE; fi)
(code=exited, status=0/SUCCESS)
Process: 1657 ExecStartPre=/usr/bin/make -C /etc/mail -s
(code=exited, status=0/SUCCESS)
Process: 1653 ExecStartPre=/usr/bin/newaliases (code=exited,
status=0/SUCCESS)
Main PID: 1667 (sendmail.sendma)
CGroup: /system.slice/sendmail.service
à½1667
sendmail: accepting connections
oct. 04 20:59:55 mana.kervao.fr sendmail[1653]: alias database
/etc/aliases rebuilt by root
oct. 04 20:59:55 mana.kervao.fr newaliases[1653]: /etc/aliases: 14
aliases, longest 10 bytes, 152 bytes total
oct. 04 20:59:55 mana.kervao.fr sendmail[1653]: /etc/aliases: 14 aliases,
longest 10 bytes, 152 bytes total
oct. 04 20:59:56 mana.kervao.fr sendmail[1667]: starting daemon (8.15.1):
SMTP+queueing@01:00:00
ATTENTION: /var/spool/mail doit avoir pour drwxrwsr-x (chmod g+s mail)
sous /var/spool sous mageia voilà ce que j'ai en tapant ll dans un shellPour envoyer le courrier, une fois connecté vous devez taper:
/usr/sbin/sendmail -q -vL'option -v étant l'option "verbeuse". Pour visualiser les messages dans la file d'attente, vous pouvez taper:
mailq
Le problème avec la configuration présentée plus haut est que le mot de passe circule en clair entre vos clients et le serveur, on va les chiffrer en utilisant SSL/TLS. Tout d'abord on installera un certificat racine qui identifie une autorité locale de certification (CA pour Certification Autority) qui permet de valider ensuite les certificats des serveurs qui seront utilisés pour chiffrer les échanges.
Sur ma Mageia il s'agit du package rootcerts
qui va installer le certificat racine sous /etc/pki. Sur cette
base là, on va créer le certificat et la clé pour le serveur sendmail
en tapant successivement plusieurs commandes dans un shell en se
plaçant préablement sous /etc/pki.
La première commande est une demande de certificat pour le serveur sendmail et va générer un certificat non signé (sendmail_certreq.pem) et une clé privée (sendmail_key.pem).
openssl req -nodes -new -x509 -keyout private/sendmail_key.pem -out sendmail_certreq.pem
voilà le résultat
.............+....+........+......+.+..............+.+.....+.+..+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+.+.....+...+....++++puis les deux commandes suivantes vont permettre de signer le certificat avec notre autorité locale de certification et lui donner une validité de 7300 jours, de quoi être tranquille un bout de temps
openssl x509 -x509toreq -in sendmail_certreq.pem -signkey private/sendmail_key.pem -out sendmail_csr.pem
openssl ca -policy policy_anything -days 7300 -out sendmail_certificate.pem -infiles sendmail_csr.pem
Cette dernière commande demandera le mot de passe de l'autorité de certification
Using configuration from /etc/pki/tls/openssl.cnfle fichier temporaire sendmail_csr.pem peut être supprimé. on leur donne les droits qui vont bien
chmod 400 /etc/pki/tls/sendmail_certificate.pem /etc/pki/tls/private/sendmail_key.pem
si vous voulez voir à quoi ressemble le certificat vous pouvez taper la commande
openssl x509 -noout -text -in /etc/pki/tls/sendmail_certificate.pem
qui donnera quelque chose comme cela
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
11:b4:74:e2:eb:82:f4:f5:08:7d:2d:2f:81:75:e3:1e:2e:70:08:e6
Signature Algorithm:
sha256WithRSAEncryption
Issuer: C = FR, ST =
Bretagne, O = none, OU = none, CN = ultra.kervao.fr, emailAddress =
olivier.hoarau@funix.org
Validity
Not
Before: Jul 30 20:01:57 2024 GMT
Not
After : Jul 25 20:01:57 2044 GMT
Subject: C = Fr, ST =
Breizland, L = Brest, O = Default Company Ltd, CN = ultra, emailAddress
= olivier.hoarau@funix.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c1:37:20:73:bf:61:fa:29:0f:fa:a8:05:63:b6:
01:32:38:ee:36:30:18:13:78:65:c6:c8:52:aa:a7:
bf:82:28:aa:cb:29:ef:06:02:6b:84:44:e5:5c:1a:
(...)
on modifie maintenant le fichier de configuration de sendmail /usr/share/sendmail-cf/cf/config.mc et on rajoute à la fin
define(`confCACERT_PATH',
`/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/sendmail_certificate.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/private/sendmail_key.pem')dnl
sendmail_certificate.pem est le certificat du serveur sendmail qui intègre également sa clé publique
sendmail_key.pem est la clé privée du serveur sendmail
Pour rebâtir le fichier de configuration de sendmail , on tape la
commande:
cd /usr/share/sendmail-cf/cf/
m4 config.mc >
/etc/mail/sendmail.cf
on arrête sendmail
systemctl stop sendmail.service
et on le relance
systemctl start sendmail.service
si vous avez un firewall sur votre serveur il faudra penser à ouvrir le port SMTPS 465 et à fermer le port 25.
Maintenant sur Thunderbird on configuera le serveur sortant en choisissant SSL/TLS et en mettant le port 465 comme ceci
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: engine=(null),
path=(null), ispre=1, pre=0, initialized=0
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS:
ClientCertFile missing
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS:
ClientKeyFile missing
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS: CRLFile
missing
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS=client,
init=1
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: 46UK57fC1434871:
SMTP outgoing connect on mana.kervao.fr
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: engine=(null),
path=(null), ispre=0, pre=0, initialized=0
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]:
tls_clt_features=(null), relay=smtp.fai.net [51.150.205.9]
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]:
tls_clt_features=empty, stat=0, relay=smtp.fai.net [51.150.205.9]
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS=client,
start=ok
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS=client,
relay=smtp.fai.net., version=TLSv1.3, verify=OK,
cipher=TLS_AES_256_GCM_SHA384, bits=
256/256
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS=client,
cert-subject=/CN=*.fai.net,
cert-issuer=/C=GB/ST=Greater+20Manchester/L=Salford/O=Sectigo
+20Limited/CN=Sectigo+20RSA+20Domain+20Validation+20Secure+20Server+20CA,
verifymsg=ok
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: AUTH=client,
relay=smtp.fai.net., mech=PLAIN, bits=0
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: 46UK57fC1434871:
to=<veronique.hoarau@funix.org>, delay=00:00:05, xdelay=00:00:00,
mailer=relay, pri=120552,
relay=smtp.fai.net. [51.150.205.9], dsn=2.0.0, stat=Sent (OK
id=1sYt5s-006KEO-Ip)
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: 46UK57fC1434871:
done; delay=00:00:05, ntries=1
juil. 30 22:05:12 mana.kervao.fr sendmail[1434883]: STARTTLS=client,
SSL_shutdown failed: -1
et avec un niveau de log par défaut à 9
juil. 30 22:10:13 mana.kervao.fr sendmail[1435028]: STARTTLS=client,
relay=smtp.fai.net., version=TLSv1.3, verify=OK,
cipher=TLS_AES_256_GCM_SHA384, bits=
256/256
juil. 30 22:10:13 mana.kervao.fr sendmail[1435028]: 46UKA2Fm1435016:
to=<veronique.hoarau@funix.org>, delay=00:00:10, xdelay=00:00:00,
mailer=relay, pri=120552,
relay=smtp.fai.net. [51.150.205.9], dsn=2.0.0, stat=Sent (OK
id=1sYtAj-006Ky7-8Z)
à noter qu'on doit bien avoir verify=OK, si vous avez verify=FAIL c'est que ça ne marche pas et ça vient souvent d'un problème de certificat et/ou de clé. Pour vérifier que le serveur est bien configuré vous pouvez taper la commande ci-dessous qui listera les certicats du serveur
openssl s_client -connect mana:465 -showcerts
voilà une partie du résultat
CONNECTED(00000003)
Can't use SSL_get_servername
depth=0 C = Fr, ST = Breizland, L = Brest, O = Default Company Ltd, CN =
mana, emailAddress = olivier.hoarau@funix.org
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = Fr, ST = Breizland, L = Brest, O = Default Company Ltd, CN =
mana, emailAddress = olivier.hoarau@funix.org
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 C = Fr, ST = Breizland, L = Brest, O = Default Company Ltd, CN =
mana, emailAddress = olivier.hoarau@funix.org
verify return:1
---
Certificate chain
0 s:C = Fr, ST = Breizland, L = Brest, O = Default Company Ltd, CN
= mana, emailAddress = olivier.hoarau@funix.org
i:C = FR, ST = Bretagne, O = none, OU = none, CN =
mana.kervao.fr, emailAddress = olivier.hoarau@funix.org
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Jul 30 20:01:57 2024 GMT; NotAfter: Jul 25
20:01:57 2044 GMT
-----BEGIN CERTIFICATE-----
MIID5jCCAs6gAwIBAgIUEbR04uuC9vUIfS0vgXXjHi5wCOYwDQYJKoZIhvcNAQEL
BQAwgYExCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcmV0YWduZTENMAsGA1UECgwE
(...)
BM7dyjCkVYXAfOBSnFMH/oWyq2/PxW+JwxumOYnN0eYfV4LaOUXLH2E4
-----END CERTIFICATE-----
---
Server certificate
subject=C = Fr, ST = Breizland, L = Brest, O = Default Company Ltd, CN =
mana, emailAddress = olivier.hoarau@funix.org
issuer=C = FR, ST = Bretagne, O = none, OU = none, CN = mana.kervao.fr,
emailAddress = olivier.hoarau@funix.org
---
Acceptable client certificate CA names
CN = ACCVRAIZ1, OU = PKIACCV, O = ACCV, C = ES
C = ES, O = FNMT-RCM, OU = AC RAIZ FNMT-RCM
C = ES, O = FNMT-RCM, OU = Ceres, organizationIdentifier =
VATES-Q2826004J, CN = AC RAIZ FNMT-RCM SERVIDORES SEGUROS
serialNumber = G63287510, C = ES, O = ANF Autoridad de Certificacion, OU
= ANF CA Raiz, CN = ANF Secure Server Root CA
C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis
Authentication Root CA
C = US, O = AffirmTrust, CN = AffirmTrust Commercial
C = US, O = AffirmTrust, CN = AffirmTrust Networking
etc.
dans thunderbird dans les préférences, on peut visualiser le certificat (on peut voir également celui de dovecot)
A vrai dire il suffit de le tester, pour ma part je suis chez
numericable, on va envoyer un mail puis forcer un envoi avec sendmail
en mode verbeux comme ceci
<veronique.hoarau@funix.org>...
Connecting to smtp.fai.net. via relay...
220 smtp.fai.net ESMTP Exim 4.93 Ubuntu Wed, 31 Jul 2024 13:52:12 +0200
>>> EHLO fai.net
le serveur local lui envoie un hello
>>> EHLO fai.net
le serveur du FAI lui envoie ses fonctionnalités
250-smtp.fai.net Hello fai.net [XXX.XXX.XXX.XXX]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-CHUNKING
250-STARTTLS
250-SMTPUTF8
250 HELP
la commande PIPELINING permet d'accélérer la connexion SMTP en envoyant les commandes d'un bloc et pas l'une après l'autre.
SIZE 52428800 indique que les
mails sont limités à 52Mo
8BITMIME mode de transfert sous 8bits pour faire passer tous les caractères de l'UTF-8
AUTH PLAIN LOGIN est la méthode d'authentification qui est en l'occurence PLAIN, ce qui ne veut pas dire que l'échange du login et du mot passe se fait en clair, mais il est chiffré en base64
et enfin STARTTLS pour passer en mode chiffré avec TLS220 TLS go ahead
250-smtp.fai.net Hello fai.net
[XXX.XXX.XXX.XXX]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-CHUNKING
250-SMTPUTF8
250 HELP
le transfert de mail s'effectue ensuite avec un dialogue entre les 2 serveurs
>>> AUTH PLAIN
b2xpdmllci5ob2FyYXVAZnVuaXgub3JnAG9saXZpZXIuaG9hcmF1QGZ1bml4Lm9yZwBUb2hlX3RvbmUyOT8=
235 Authentication succeeded
>>> MAIL From:<olivier.hoarau@funix.org> SIZE=1026
BODY=7BIT
250 OK
>>> RCPT To:<veronique.hoarau@funix.org>
>>> DATA
250 Accepted
354 Enter message, ending with "." on a line by itself
>>> .
250 OK id=1sZ7sL-008oFp-1W
<veronique.hoarau@funix.org>... Sent (OK id=1sZ7sL-008oFp-1W)
Closing connection to smtp.fai.net.
>>> QUIT
221 smtp.fai.net closing connection
A noter également que dans le Header du mail qui a été envoyé, on voit que la transmission a bien été chiffrée
Received: from [XXX.XXX.XXX.XXX] (helo=fai.net)
by smtp.fai.net with
esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
(Exim 4.93)
(envelope-from
<olivier.hoarau@funix.org>)
id 1sYsl5-006Gpa-66
for
veronique.hoarau@funix.org; Tue, 30 Jul 2024 21:43:43 +0200
telnet mana 25
voilà le résultat
Trying 192.168.13.11...
Connected to mana.kervao.fr (192.168.2.13).
Escape character is '^]'.
220 fai.net ESMTP Sendmail 8.17.1/8.17.1/Sendmail de FUNIX; Wed, 31 Jul
2024 14:27:41 +0200
Vous disposer de vrfy (verify) pour vérifier l'existence d'une adresse sur le serveur
vrfy olivier
250 2.1.5 olivier@rennes-1-a7-7-251.dial.proxad.net
Quand l'utilisateur est inconnu
vrfy toto
550 5.1.1 toto... User unknown
Vous disposez de la commande expn (expand) qui est identique à vrfy mais qui permet aussi de lister les personnes d'une liste et autres alias.
expn olivier
250 2.1.5 olivier@rennes-1-a7-7-251.dial.proxad.net
Pour désactiver les commandes vfry et expn vous devez rajouter au fichier de config config.mc la ligne suivante:
define(`confPRIVACY_FLAGS', `novrfy noexpn')dnl
Voilà le résultat:
vrfy olivier
252 2.5.2 Cannot VRFY user; try RCPT to attempt delivery (or try
finger)
NOTE Pour sortir du telnet il suffit de taper quit
define(`confSMTP_LOGIN_MSG',`Serveur de mail; $b')dnl
Voilà ce que ça donne:
telnet zoulou 25
Trying 192.168.13.11...
Connected to zoulou.kervao.fr.
Escape character is '^]'.
220 Serveur ESMTP de mail; Sun, 17 Jun 2001 09:19:37 -0400
Voici le mail qui part du serveur Linux, avec pour contenu :
Subject: test
première ligne
Contenu de l'email de réponse du serveur écho :
--------------------------------------------------------
Vienna University Computer Center - Echo Service
echo@univie.ac.at
This message was generated upon your request by the
automatic
answering service.
Answers are limited to _one_every_two_minutes_ to
prevent
abuse!
Attached you'll find the first 4 kByte of your mail.
--------------------------------------------------------
> From toto.nom@fai.fr Tue Aug 10 22:25:27 1999
> Received: from obelix.fai.fr (obelix.fai.fr [210.205.98.21])
> by fermi.cnam.fr
(8.8.8/jpm-301097) with ESMTP id WAA11452
> for
<echo@cnam.fr>; Tue, 10 Aug 1999 22:25:27 +0200 (MET DST)
> From: toto.nom@fai.fr
> Return-Path: <toto.nom@fai.fr>
> Received: from machine.domaine.fr (IDENT:root@ppptc22.fai.fr
[210.205.98.22])
> by obelix.fai.fr
(8.9.1/8.9.1/R&D&B-990119) with ESMTP id WAA26056
> for <echo@cnam.fr>; Tue,
10 Aug 1999 22:24:55 +0200
> Received: (from toto@localhost)
> by machine.domaine.fr
(8.9.3/8.9.3/Commentaire quelconque) id WAA00754
> for echo@cnam.fr; Tue, 10 Aug
1999 22:25:34 +0200
> Date: Tue, 10 Aug 1999 22:25:34 +0200
> Message-Id: <199908102025.WAA00754@machine.domaine.fr>
> To: echo@cnam.fr
> Subject: test
------
>
> première ligne
>
------ Fin de votre message
Quelques commentaires:
toto.nom@fai.fr est votre adresse email chez votre fournisseur
d'accès, obelix.fai.fr (IP= 210.205.98.21) est le nom de la machine
chez votre fai qui a "routé" votre
email, ppptc22.fai.fr (IP=210.205.98.22) c'est votre identité
officielle sur le net au moment de votre connexion.
Vous voyez que le nom de votre domaine apparait dans les champs Received,
et même le commentaire que vous aurez défini dans le fichier de config de
sendmail.
Certains gestionnaires d'email pourraient rejeter vos emails sous prétexte
de contenir un nom de domaine inconnu.
Voyons maintenant un email arrivant d'un de vos postes sous Windows et partant vers le net.
> From toto.nom@fai.fr Tue Aug 10 19:47:07 1999
> Received: from obelix.fai.fr (obelix.fai.fr [210.205.98.21])
> by fermi.cnam.fr
(8.8.8/jpm-301097) with ESMTP id TAA05598
> for
<echo@cnam.fr>; Tue, 10 Aug 1999 19:47:06 +0200 (MET DST)
> Return-Path: <toto.nom@fai.fr>
> Received: from machine.domaine.fr (IDENT:root@ppptc32.fai.fr
[210.205.98.23])
> by obelix.fai.fr
(8.9.1/8.9.1/R&D&B-990119) with ESMTP id TAA23230
> for <echo@cnam.fr>; Tue,
10 Aug 1999 19:46:35 +0200
> Received: from windows (windows.domaine.fr [192.168.13.11])
> by machine.domaine.fr
(8.9.3/8.9.3/Commentaire quelconque) with ESMTP id TAA00863
> for <echo@cnam.fr>; Tue,
10 Aug 1999 19:38:54 +0200
> Message-Id: <199908101738.TAA00863@machine.domaine.fr>
> From: "Toto Nom" <toto.nom@fai.fr>
> To: <echo@cnam.fr>
> Subject: test de windows
> Date: Tue, 10 Aug 1999 19:37:08 +0200
> X-MSMail-Priority: Normal
> X-Priority: 3
> X-Mailer: Microsoft Internet Mail 4.70.1155
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 7bit
------
>
> première ligne
>
------ Fin de votre message
Dans Received, on voit en fait le cheminement que suit le mail envoyé du poste windows, va sur machine puis par chez votre fai (sur obelix), on voit donc le nom de votre domaine, les noms du poste Linux et du poste de votre réseau privé d'où a été envoyé l'email, et meme l'adresse IP que vous lui avez attribué !
Le problème est qu'on ne peut dans les paramètres de config de sendmail virer les champs Received , FEATURE(masquerade_enveloppe) ne fait que masquer les adresses emails.
Pour corriger ça, on va d'abord rajouter define(`confDOMAIN_NAME',`ppp.fai.fr')
qui permet de redéfinir la manière dont notre serveur Linux va se
présenter au serveur SMTP du provider, en clair il va changer toutes les
occurences de machine.domaine.fr par ppp.fai.fr dans les
champs Received. Pourquoi mettre ppp.fai.fr et ne pas
mettre tout simplement fai.fr , parce que dans ce cas on ne pourra
pas envoyer de mail à des utilisateurs du domaine fai.fr,
sendmail croit que ce sont des utilisateurs locaux ! Avec ppp.fai.fr
pas de problème, en toute rigueur on pourrait mettre ici le nom attribué
lors d'une connexion (du style ppp18-brest.fai.fr qu'on peut voir
en tapant ifconfig).
Reste le problème des emails partant de postes sous Windows, où apparait
le nom et l'adresse IP, on va carrément redéfinir le champs Received:
define(`confRECEIVED_HEADER', `from fai.fr
by fai.fr ($v/$Z)$?r with
$r$. id $i$?u
for $u; $|;
$.$b')
Ce qui nous donne pour un mail envoyé d'un PC sous windows:
> From toto.nom@fai.fr@funix.org Sat Jun 01 17:08:31 2002
> Return-Path: <toto.nom@fai.fr>
> Delivered-To: echo@cnam.fr
> Received: (qmail 20719 invoked from network); 1 Jun 2002 17:08:31
-0000
> Received: from bougainville.cnam.fr (163.173.128.13)
> by 0 with SMTP; 1 Jun 2002 17:08:31 -0000
> Received: from localhost (localhost [127.0.0.1])
> by bougainville.cnam.fr (Postfix) with ESMTP id 132F82EFB4
> for <echo@cnam.fr>; Sat, 1 Jun 2002 19:08:31
+0200 (CEST)
> Received: from smtp.fai.fr (mail.fai.fr [202.3.225.22])
> by bougainville.cnam.fr (Postfix) with ESMTP id D31492EFAE
> for <echo@cnam.fr>; Sat, 1 Jun 2002 19:08:27
+0200 (CEST)
> Received: from ppp.fai.fr (tc5-bis-014.dialup.fai.fr
[202.3.239.14])
> by smtp.fai.fr (Mirapoint Messaging Server MOS 3.1.0.36-EA)
> with ESMTP id ADS19083
> for <echo@cnam.fr>;
> Sat, 1 Jun 2002 07:08:20 -1000 (TAHT)
> Received: from fai.fr
> by fai.fr
(8.12.1/8.12.1/Commentaire quelconque) with ESMTP id g51H7FAj002161
> for
<echo@cnam.fr>; Sat, 1 Jun 2002 07:07:15 -1000
> Message-ID: <3CF90D0A.5FF74480@fai.fr>
> Date: Sat, 01 Jun 2002 07:06:02 -1100
> From: Toto Nom <toto.nom@fai.fr>
> X-Mailer: Mozilla 4.7 [fr] (WinNT; I)
> X-Accept-Language: fr
> MIME-Version: 1.0
> To: echo@cnam.fr
> Subject: essai
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> X-Virus-Scanned: by AMaViS perl-11
------
>
> première ligne
>
------ Fin de votre message
Voici l'email qui part de notre serveur Linux.
> From toto.nom@fai.fr Sat Jun 01 05:51:15 2002
> Return-Path: <toto.nom@fai.fr>
> Delivered-To: echo@cnam.fr
> Received: (qmail 3855 invoked from network); 1 Jun 2002 05:51:14
-0000
> Received: from bougainville.cnam.fr (163.173.128.13)
> by 0 with SMTP; 1 Jun 2002 05:51:14 -0000
> Received: from localhost (localhost [127.0.0.1])
> by bougainville.cnam.fr
(Postfix) with ESMTP id CB0A52EFAF
> for <echo@cnam.fr>;
Sat, 1 Jun 2002 07:51:14 +0200 (CEST)
> Received: from smtp.fai.fr (mail.fai.fr [202.3.225.22])
> by bougainville.cnam.fr
(Postfix) with ESMTP id 8EE6D2EFAE
> for <echo@cnam.fr>;
Sat, 1 Jun 2002 07:51:11 +0200 (CEST)
> Received: from ppp.fai.fr (tc5-bis-198.dialup.fai.fr
[202.3.239.198])
> by smtp.fai.fr (Mirapoint
Messaging Server MOS 3.1.0.36-EA)
> with ESMTP id ADS03894
> for <echo@cnam.fr>;
> Fri, 31 May 2002 19:50:40
-1000 (TAHT)
> Received: from fai.fr
> by fai.fr
(8.12.1/8.12.1/Commentaire quelconque) with ESMTP id g515nwFE002664
> for
<echo@cnam.fr>; Fri, 31 May 2002 19:49:58 -1000
> Sender: toto.nom@fai.fr
> Message-ID: <3CF86086.351F9560@fai.fr>
> Date: Fri, 31 May 2002 19:49:58 -1000
> From: Toto Nom <toto.nom@fai.fr>
> Organization: Tahiti Connection
> X-Mailer: Mozilla 4.78 [fr] (X11; U; Linux 2.4.18-6mdk i686)
> X-Accept-Language: en
> MIME-Version: 1.0
> To: echo@cnam.fr
> Subject: test
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> X-Virus-Scanned: by AMaViS perl-11
------
>
> première ligne
>
------ Fin de votre message
> From olivier.hoarau@fnac.net Sat Jul 15 08:19:16 2000
> Received: from postfix3.free.fr (postfix@postfix3.free.fr
[212.27.32.22])
> by fermi.cnam.fr
(8.8.8/jpm-301097) with ESMTP id IAA05796
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 08:19:16 +0200 (MET DST)
> Return-Path: <olivier.hoarau@fnac.net>
> Received: from ppp.free.fr (massy-4-14-209.dial.proxad.net
[213.228.14.209])
> by postfix3.free.fr (Postfix)
with ESMTP id 62B6286B67
> for <echo@cnam.fr>; Sat,
15 Jul 2000 08:19:15 +0200 (CEST)
> Received: from free.fr
> by free.fr
(8.10.1/8.10.1/Olivier Hoarau-992911) with ESMTP id e6F68IJ01419
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 08:08:18 +0200
> Sender: olivier@free.fr
> Message-ID: <396FFFD2.447D80E1@fnac.net>
> Date: Sat, 15 Jul 2000 08:08:18 +0200
> From: Olivier Hoarau <olivier.hoarau@fnac.net>
> Organization: Breizh Connection
> X-Mailer: Mozilla 4.73 [fr] (X11; I; Linux 2.2.15-4mdk i686)
> X-Accept-Language: en
> MIME-Version: 1.0
> To: echo@cnam.fr
> Subject: asterix
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
Vous voyez que le Message-Id a l'extension fnac.net alors
qu'il devrait être en free.fr puisque j'utilise free, de
même le Sender est olivier@free.fr qui ne correspond
à rien, vu que mon email chez free est ohoarau@free.fr
Pour régler le problème du Message-Id et du Sender, j'ai
écrit ce petit script :
#!/bin/bash
cd /var/spool/mqueue
for nom_mail in $(ls qf*)
do
awk 'BEGIN { FS=":" }
$1!="H??Message-ID" && $1!=
"H??Sender" { print $0 }
$1=="H??Sender" {
sub("olivier","ohoarau",$2);print $1,":",$2 }
$1=="H??Message-ID"
{ sub("fnac.net","free.fr",$2); print $1,":",$2 }
' $nom_mail > /tmp/mail.tmp
cp /tmp/mail.tmp $nom_mail
done
Vous pourrez très facilement adapter ce script à votre situation,
quelques commentaires sont peut être utiles:
- sub("olivier","ohoarau",$2) ici c'est pour avoir Sender:
ohoarau@free.fr au lieu de Sender: olivier@free.fr
- sub("fnac.net","free.fr",$2) ici c'est pour avoir Message-ID:
<396FFFD2.447D80E1@free.fr
au lieu de Message-ID: <396FFFD2.447D80E1@fnac.net
Remplacez les chaînes de caractères adéquates pour que ça marche chez
vous. Le proprio du script doit être root, avec des droits en 755, on
l'appelera avant sendmail -q et qui permettra de changer le Message-Id
et le Sender .
Si ce script s'appelle chg-message et se trouve dans /usr/sbin
, vous devez le lancer avant chaque envoi de mail par sendmail,
c'est éventuellement configurable via cron.
/usr/sbin/chg-message
/usr/sbin/sendmail -q
Voilà en final la tête mon mail envoyé de mon poste linux tel que l'a renvoyé le serveur écho du cnam:
> From olivier.hoarau@fnac.net Sat Jul 15 09:23:09 2000
> Received: from postfix1.free.fr (postfix@postfix1.free.fr
[212.27.32.21])
> by fermi.cnam.fr
(8.8.8/jpm-301097) with ESMTP id JAA10064
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 09:23:09 +0200 (MET DST)
> Return-Path: <olivier.hoarau@fnac.net>
> Received: from ppp.free.fr (massy-2-11-231.dial.proxad.net
[213.228.11.231])
> by postfix1.free.fr (Postfix)
with ESMTP id DA7D228043
> for <echo@cnam.fr>; Sat,
15 Jul 2000 09:23:03 +0200 (MEST)
> Received: from free.fr
> by free.fr
(8.10.1/8.10.1/Olivier Hoarau-992911) with ESMTP id e6F72bP02146
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 09:02:37 +0200
> Sender: ohoarau@free.fr
> Message-ID: <39700C8D.3443567C@free.fr>
> Date: Sat, 15 Jul 2000 09:02:37 +0200
> From: Olivier Hoarau <olivier.hoarau@fnac.net>
> Organization: Breizh Connection
> X-Mailer: Mozilla 4.73 [fr] (X11; I; Linux 2.2.15-4mdk i686)
> X-Accept-Language: en
> MIME-Version: 1.0
> To: echo@cnam.fr
> Subject: essai
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
Le Message-Id et le Sender ont maintenant une bonne tête.
Voilà le message renvoyé d'un mail partant d'un poste client windows du réseau:
> From olivier.hoarau@fnac.net Sat Jul 15 09:46:21 2000
> Received: from postfix2.free.fr (postfix@postfix2.free.fr
[212.27.32.74])
> by fermi.cnam.fr
(8.8.8/jpm-301097) with ESMTP id JAA11374
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 09:46:21 +0200 (MET DST)
> Return-Path: <olivier.hoarau@fnac.net>
> Received: from ppp.free.fr (massy-2-10-239.dial.proxad.net
[213.228.10.239])
> by postfix2.free.fr (Postfix)
with ESMTP id 7FB1D740DB
> for <echo@cnam.fr>; Sat,
15 Jul 2000 09:46:20 +0200 (MEST)
> Received: from free.fr
> by free.fr
(8.10.1/8.10.1/Olivier Hoarau-992911) with ESMTP id e6F7iTG02453
> for
<echo@cnam.fr>; Sat, 15 Jul 2000 09:44:30 +0200
> Message-ID: <39701660.10A22F73@free.fr>
> Date: Sat, 15 Jul 2000 09:44:32 +0200
> From: Olivier Hoarau <olivier.hoarau@fnac.net>
> X-Mailer: Mozilla 4.6 [fr] (Win98; I)
> X-Accept-Language: fr
> MIME-Version: 1.0
> To: echo@cnam.fr
> Subject: tavel
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
------
Vous pouvez constater qu'il n'y a pas de champ Sender.
[Retour page d'accueil FUNIX] |