Next Previous Contents

11. Masquage de domaine

11.1 Principes

Si on se contente d'appliquer la doc de Jacoboni brut de forme, on est confronté à un gros problème qui est mis en évidence à la réception d'email de réflecteurs comme mailto:[email protected] . Ces réflecteurs se contentent de vous renvoyer votre email, y compris et surtout avec l'entête complète du mail d'origine, on peut y voir des informations indiscrètes que vous ne voudriez pas forcément voir figurer.

Admettons que l'utilisateur toto envoie un mail en tapant la commande:

mail -v echo@cnam < mail.test  
 

Avec mail.test un fichier texte contentant:

Subject: test  
première ligne 
 

Voici maintenant le mail retourné par le serveur écho du CNAM:

------ Le serveur echo du domaine cnam.fr
------ a recu votre message le mar 10 aoû 22:25:28 MET DST 1999

------ Ci-dessous les en-tetes et le corps de votre message

> From [email protected] 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 <[email protected]>; Tue, 10 Aug 1999 22:25:27 +0200 (MET DST)
> From: [email protected]
> Return-Path: <[email protected]>
> Received: from machine.domaine.fr (IDENT:[email protected] [210.205.98.22])
>      by obelix.fai.fr (8.9.1/8.9.1/R&D&B-990119) with ESMTP id WAA26056
>      for <[email protected]>; Tue, 10 Aug 1999 22:24:55 +0200
> Received: (from toto@localhost)
>    by machine.domaine.fr (8.9.3/8.9.3/Commentaire quelconque qui apparaitra dans l'entete
 - 15/08/99) id WAA00754
>      for [email protected]; Tue, 10 Aug 1999 22:25:34 +0200
> Date: Tue, 10 Aug 1999 22:25:34 +0200
> Message-Id: <[email protected]>
> To: [email protected]
> Subject: test

------
>
> première ligne
>
------
 Fin de votre message 
 

Quelques commentaires:

On voit que l'adresse de l'utilisateur toto a bien été transformé en [email protected]. Par ailleurs 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) étant votre identité officielle sur le net au moment de votre connexion.

Par contre vous voyez que d'une part le commentaire que vous avez défini dans le fichier de config apparaît dans l'email, ce qui n'est pas vraiment génant, mais on y voit aussi le nom de votre domaine privé dans les champs Received et Message-Id. Certains serveurs sur Internet pourraient rejeter vos emails sous pretexte de contenir un nom de domaine inconnu.

Voyons maintenant un email envoyé d'un de vos postes client et renvoyé par un réflecteur.

------ Le serveur echo du domaine cnam.fr  
------ a recu votre message le mar 10 aoû 19:47:08 MET DST 1999 
 
------ Ci-dessous les en-tetes et le corps de votre message 
 
> From [email protected]  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 <[email protected]>; Tue, 10 Aug 1999 19:47:06 +0200 (MET DST) 
> Return-Path: <[email protected]> 
> Received: from machine.domaine.fr (IDENT:[email protected] [210.205.98.23]) 
> by obelix.fai.fr (8.9.1/8.9.1/R&D&B-990119) with ESMTP id TAA23230  
> for <[email protected]>; 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 qui apparaitre dans l'entete - 15/08/99) with ESMTP id TAA00863 
>      for <[email protected]>; Tue, 10 Aug 1999 19:38:54 +0200 
> Message-Id: <[email protected]> 
> From: "Toto Nom" <[email protected]> 
> To: <[email protected]> 
> 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=ISO-8859-1 
> 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 client, il va d'abord sur machine puis part chez le FAI (sur obelix). On voit donc le nom de votre domaine, le nom du poste Linux et du poste client d'où a été envoyé l'email, et même l'adresse IP que vous lui avez attribué !

11.2 Pour corriger tout ça

Le problème est qu'on ne peut dans les paramètres de configuration de sendmail, supprimer les champs Received, qui plus est 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 FAI, 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.frqu'on peut voir en tapant ifconfig), pour cela reportez vous au chapitre attribution d'adresse dynamique.

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 champ Received:

define(`confRECEIVED_HEADER', `from fai.fr  
        by fai.fr ($v/$Z)$?r with $r$. 
        id $i$?u 
        for $u; $|; 
        $.$b') 
 

Après correction voici la réponse d'un mail envoyé d'un poste client renvoyé par le réflecteur:

------ Le serveur echo du domaine cnam.fr  
------ a recu votre message le dim 22 aoû 12:00:10 MET DST 1999 
 
------ Ci-dessous les en-tetes et le corps de votre message 
 
> From [email protected]  Sun Aug 22 12:00:09 1999 
> Received: from obelix.fai.fr (obelix.fai.fr [212.205.98.21]) 
>       by fermi.cnam.fr (8.8.8/jpm-301097)  with ESMTP id MAA19703 
>       for <[email protected]>; Sun, 22 Aug 1999 12:00:09 +0200 (MET DST) 
> Return-Path: <[email protected]> 
> Received: from fai.fr (IDENT:[email protected] [210.205.98.23]) 
>       by obelix.fai.fr (8.9.1/8.9.1/R&D&B-990119) with ESMTP id LAA13384 
>       for <[email protected]>; Sun, 22 Aug 1999 11:59:36 +0200 
> Received: from fai.fr 
>        by fai.fr (8.9.3/8.9.3/Commentaire quelconque qui apparaitre dans l'entete - 15/08/99) with ESMTP id MAA01804 
>       for <[email protected]>; Sun, 22 Aug 1999 12:00:42 +0200 
> Message-Id: <[email protected]> 
> From: "Toto Nom" <[email protected]> 
> To: <[email protected]> 
> Subject: echop 
> Date: Sun, 22 Aug 1999 11:58:16 +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=ISO-8859-1 
> Content-Transfer-Encoding: 7bit 
 
------
 
> Windows 

------ Fin de votre message 
 

On voit qu'il reste encore des traces du domaine dans l'identité du message. Voici l'email qui part de notre serveur Linux.

------ Le serveur echo du domaine cnam.fr  
------ a recu votre message le dim 22 aoû 12:13:41 MET DST 1999 
 
------ Ci-dessous les en-tetes et le corps de votre message 
 
> From [email protected]  Sun Aug 22 12:13:41 1999 
> Received: from obelix.fai.fr (obelix.fai.fr [212.205.98.21]) 
>        by fermi.cnam.fr (8.8.8/jpm-301097)  with ESMTP id MAA21292 
>        for <[email protected]>; Sun, 22 Aug 1999 12:13:40 +0200 (MET DST) 
> From: [email protected] 
> Return-Path: <[email protected]> 
> Received: from fai.fr (IDENT:[email protected] [210.205.98.23]) 
>      by obelix.fai.fr (8.9.1/8.9.1/R&D&B-990119) with ESMTP id MAA13627 
>      for <[email protected]>; Sun, 22 Aug 1999 12:13:09 +0200 
> Received: from fai.fr 
>       by fai.fr (8.9.3/8.9.3/Commentaire quelconque qui apparaitre dans l'entete - 15/08/99) id MAA01883 
>       for [email protected]; Sun, 22 Aug 1999 12:06:10 +0200 
> Date: Sun, 22 Aug 1999 12:06:10 +0200 
> Message-Id: <[email protected]> 
> To: [email protected] 

------ 

> Subject: test local 
> première ligne de Machine 
 
------ Fin de votre message 
 

Pour régler le problème du Message-Id, on écrira un petit script :

#!/bin/bash  
 
cd /var/spool/mqueue 
for nom_mail in `ls | grep df*` 
do 
        sed "s/machine.domaine.fr/fai.fr/g" $nom_mail > /tmp/mail.tmp 
        cp /tmp/mail.tmp $nom_mail 
done 
 

Qu'on appelera avant sendmail -q et qui permettra de changer le Message-Id.


Next Previous Contents