Probleme d'expéditeur de mail avec postfix

Bonjour a tous,

N’ayant pas trouvé de réponse a mon problème je sollicite votre aide.

Voici mon problème j’ai sur un serveur dédié installé bind + postfix + procmail + dovecot + spamassassin.

J’ai configuré ainsi :
-réception des messages de l’adresse testspam@lamachineacafe.fr -> analyse par spammassassin (configuré pour taguer les mails dès le score 0)
configuration de procmail pour renvoyer les mails de testspam tagué vers une adresse externe.
Tout se passe bien sauf que :
l 'expéditeur du mail tagué par spammassassin reste l’expéditeur d’origine et ne devient pas testspam@lamachineacafe.fr.
J’ai l’impression que mon postfix ne fait que faire transiter le message.

Si besoin n’hésitez pas a me demander de vous envoyer les fichiers de configurations(je suppose que vous en aurez besoin pour m’aider), ne sachant pas lesquels pourraient être utiles je préfère attendre vos demandes plutôt que de surcharger le forum de pages de fichiers inutiles.

Je vous remercie tous d’avance et continu a scruter le forum a la recherche de mes réponses.

Dans le wiki (lien direct barre du haut), il y a un bon tuto sur Postfix, tout y est expliqué.

Merci ricardo mais c’est exactement ce tuto que j’ai suivi a une exception près c’est que je n’ai pas mis en place certaines règles pour accepter ou refuser les connexions.

mon fichier main.cf :

[code]# See /usr/share/postfix/main.cf.dist for a commented, more complete version

Debian specific: Specifying a file name will cause the first

line of that file to be used as the name. The Debian default

is /etc/mailname.

myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

appending .domain is the MUA’s job.

append_dot_mydomain = no

Uncomment the next line to generate “delayed mail” warnings

#delay_warning_time = 4h

readme_directory = no

TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

information on enabling SSL in the smtp client.

myhostname = vps11003.lamachineacafe.fr
mydomain = lamachineacafe.fr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/
mailbox_command = procmail -a “EXTENSION”
inet_protocols = ipv4

Activer l’identification SASL

smtpd_sasl_auth_enable = yes

Utiliser le service d’identification de Dovecot

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Noter dans les en-tête des messages l’identifiant de l’utilisateur.

smtpd_sasl_authenticated_header = yes

Règles pour accepter ou refuser une connexion :

- on attend une seconde (pour piéger les zombies) ;

- on interdit la parallélisation là où il n’est pas sensé y en avoir.

smtpd_client_restrictions =
permit_mynetworks, permit_sasl_authenticated,
sleep 1, reject_unauth_pipelining[/code]

et master.cf :

[code]#

Postfix master process configuration file. For details on the format

of the file, see the master(5) manual page (command: “man 5 master”).

Do not forget to execute “postfix reload” after editing this file.

==========================================================================

service type private unpriv chroot wakeup maxproc command + args

(yes) (yes) (yes) (never) (100)

==========================================================================

smtp inet n - - - - smtpd
#submission inet n - - - - smtpd

-o smtpd_tls_security_level=encrypt

-o smtpd_sasl_auth_enable=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

#smtps inet n - - - - smtpd

-o smtpd_tls_wrappermode=yes

-o smtpd_sasl_auth_enable=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

#628 inet n - - - - qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp

When relaying mail as backup MX, disable fallback_relay to avoid MX loops

relay unix - - - - - smtp
-o smtp_fallback_relay=

-o smtp_helo_timeout=5 -o smtp_connect_timeout=5

showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache

====================================================================

Interfaces to non-Postfix software. Be sure to examine the manual

pages of the non-Postfix software to find out what options it wants.

Many of the following services use the Postfix pipe(8) delivery

agent. See the pipe(8) man page for information about ${recipient}

and other message envelope options.

====================================================================

maildrop. See the Postfix MAILDROP_README file for details.

Also specify in main.cf: maildrop_destination_recipient_limit=1

maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}

====================================================================

Recent Cyrus versions can use the existing “lmtp” master.cf entry.

Specify in cyrus.conf:

lmtp cmd=“lmtpd -a” listen=“localhost:lmtp” proto=tcp4

Specify in main.cf one or more of the following:

mailbox_transport = lmtp:inet:localhost

virtual_transport = lmtp:inet:localhost

====================================================================

Cyrus 2.1.5 (Amos Gouaux)

Also specify in main.cf: cyrus_destination_recipient_limit=1

#cyrus unix - n n - - pipe

user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}

====================================================================

Old example of delivery via Cyrus.

#old-cyrus unix - n n - - pipe

flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}

====================================================================

See the Postfix UUCP_README file for configuration details.

uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

Other external delivery methods.

ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}

spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${recipent} ${sender}[/code]

je pense que le problème vient des pipe mais je n’en suis pas sur :think:

Si j’ai bien configuré mon procmailrc tout les mails a destination de testspam@lamachineacafe.fr l’expéditeur !

mon procmailrc :

[code]DROPPRIVS=yes
:0


Pas d’idées ? :think:

[quote=“rca.buzzee”]Bonjour a tous,

J’ai configuré ainsi :
-réception des messages de l’adresse testspam@lamachineacafe.fr -> analyse par spammassassin (configuré pour taguer les mails dès le score 0)
configuration de procmail pour renvoyer les mails de testspam tagué vers une adresse externe.
Tout se passe bien sauf que :
l 'expéditeur du mail tagué par spammassassin reste l’expéditeur d’origine et ne devient pas testspam@lamachineacafe.fr.
J’ai l’impression que mon postfix ne fait que faire transiter le message.
[/quote]

=>je n’ai pas tout compris.
-réception des messages de l’adresse testspam@lamachineacafe.fr => ambigue. Quelle est la boite mail destinataire qui reçoit les mails et quelle est adresse mail expéditrice ?
-l’expéditeur d’origine => c’est-à-dire ?

Je m’explique mieux tu as raison.
J’écris avec l’adresse testspam@lamachineacafe.fr
Je souhaite ensuite après analyse par spamassassin envoyer le résultat à testspam@lamachineacafe.fr qui est utilisé.
Comment à partir du postfix de lamachineacafe.fr utiliser l’adresse de l’expéditeur original pour envoyer un mail.

[quote=“rca.buzzee”]
J’écris avec l’adresse testspam@lamachineacafe.fr[/quote]

Peux-tu refaire le test, et nous donnez les logs de syslog ?

:119 J’étais fatigué quand j’ai répondu hier soir ! :119

C’est tout le contraire il faut que le résultat du test de spamassassin soit envoyé avec comme adresse d’expéditeur yyyyy@yyyyy.fr hors l’adresse d’expéditeur du résultat du test est l’adresse de l’expéditeur d’origine du mail testé!

je viens de faire un test d’envoi de testspam@lamachineacafe.fr.

voici le syslog :

root@vps11003:~# tail -f /var/log/syslog Oct 23 09:26:38 vps11003 postfix/smtpd[23870]: 9AC69482C00B: client=mail-qa0-f53.google.com[209.85.216.53] Oct 23 09:26:38 vps11003 postfix/cleanup[23854]: 9AC69482C00B: message-id=<CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com> Oct 23 09:26:38 vps11003 postfix/qmgr[21770]: 9AC69482C00B: from=<rca.buzzee@gmail.com>, size=3305, nrcpt=1 (queue active) Oct 23 09:26:38 vps11003 spamd[20008]: spamd: connection from localhost [127.0.0.1] at port 38430 Oct 23 09:26:38 vps11003 spamd[20008]: spamd: setuid to testspam succeeded Oct 23 09:26:38 vps11003 spamd[20008]: spamd: processing message <CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com> for testspam:1000 Oct 23 09:26:43 vps11003 spamd[20008]: spamd: identified spam (1.7/0.0) for testspam:1000 in 5.1 seconds, 3408 bytes. Oct 23 09:26:43 vps11003 spamd[20008]: spamd: result: Y 1 - FREEMAIL_FROM,HTML_IMAGE_ONLY_12,HTML_IMAGE_RATIO_08,HTML_MESSAGE,SPF_PASS,T_DKIM_INVALID,T_REMOTE_IMAGE scantime=5.1,size=3408,user=testspam,uid=1000,required_score=0.0,rhost=localhost,raddr=127.0.0.1,rport=38430,mid=<CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com>,autolearn=no Oct 23 09:26:43 vps11003 spamd[21945]: prefork: child states: II Oct 23 09:26:43 vps11003 postfix/pickup[23614]: EDF70482C00F: uid=1000 from=<testspam> Oct 23 09:26:43 vps11003 postfix/cleanup[23854]: EDF70482C00F: message-id=<CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com> Oct 23 09:26:43 vps11003 postfix/local[23855]: 9AC69482C00B: to=<testspam@lamachineacafe.fr>, relay=local, delay=6.4, delays=1.3/0/0/5.2, dsn=2.0.0, status=sent (delivered to command: procmail -a "EXTENSION") Oct 23 09:26:43 vps11003 postfix/qmgr[21770]: 9AC69482C00B: removed Oct 23 09:26:43 vps11003 postfix/qmgr[21770]: EDF70482C00F: from=<testspam@vps11003.lamachineacafe.fr>, size=6823, nrcpt=2 (queue active) Oct 23 09:26:44 vps11003 postfix/smtp[23880]: EDF70482C00F: to=<yyyyy@yyyyy.fr>, relay=mail.buzzee.fr[80.239.174.133]:25, delay=0.17, delays=0.01/0.01/0.11/0.05, dsn=2.0.0, status=sent (250 OK 10398505) Oct 23 09:26:45 vps11003 postfix/smtp[23879]: EDF70482C00F: to=<rca.buzzee@outlook.com>, relay=mx4.hotmail.com[65.55.37.88]:25, delay=1.2, delays=0.01/0.01/0.51/0.67, dsn=2.0.0, status=sent (250 <CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com> Queued mail for delivery) Oct 23 09:26:45 vps11003 postfix/qmgr[21770]: EDF70482C00F: removed

et voici l’entête de l’eml que je reçois sur l’adresse rca.buzzee@outlook.com

[code]Received: by vps11003.lamachineacafe.fr (Postfix, from userid 1000)
id EDF70482C00F; Tue, 23 Oct 2012 09:26:43 +0200 (CEST)
Received: from localhost by vps11003.lws-hosting.com
with SpamAssassin (version 3.3.1);
Tue, 23 Oct 2012 09:26:43 +0200
From: rca buzzee rca.buzzee@gmail.com
To: testspam@lamachineacafe.fr
Subject: SPAM1.7 test d’envoi 09h28
Date: Tue, 23 Oct 2012 09:26:36 +0200
Message-Id: CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
vps11003.lws-hosting.com
X-Spam-Flag: YES
X-Spam-Level: *
X-Spam-Status: Yes, score=1.7 required=0.0 tests=FREEMAIL_FROM,
HTML_IMAGE_ONLY_12,HTML_IMAGE_RATIO_08,HTML_MESSAGE,SPF_PASS,T_DKIM_INVALID,
T_REMOTE_IMAGE autolearn=no version=3.3.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_508646B3.A9B81931"

This is a multi-part message in MIME format.

------------=_508646B3.A9B81931
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable[/code]

Comme vous voyez dans l’entête du mail le From est testspam@lamachineacafe.fr. :119
Le mail semble juste avoir été taguer puis renvoyé vers rca.buzzee@outlook.com
Hors quand je regarde la fin de mon syslog je vois bien from=testspam@vps11003.lamachineacafe.frto=yyyyy@yyyyy.frstatus=sent (250 OK 10398505)to=rca.buzzee@outlook.comstatus=sent (250 CAHo5AKVkWd_Kx5UQFovfqHZLi3sARkuLkev9zHiZJCNhpJgcJQ@mail.gmail.com

Je n’y comprend plus rien.

=>Postfix a bien fait son boulot. T’envoie un mail vers rca.buzzee@outlook.com ,
donc c’est normal que postfix met comme expéditeur rca.buzzee@outlook.com.

Le seul moyen pour avoir testspam@lamachineacafe.fr. Pour cela, tu dois utiliser dans ton main.cf le paramètre header_checks avec comme valeur un fichier regexp pour parser l’en-tête des mails :

header_checks = pcre:/etc/postfix/header_checks.pcre

Et dans ton fichier header_check.pcre, tu met :

/From: rca buzzee <rca.buzzee@gmail.com>/ REPLACE From: testspam@lamachineacafe.fr

Puis tu tape :

postmap /etc/postfix/header_checks.pcre
/etc/init.d/postfix reload;/etc/init.d/postfix restart

Puis tu test en envoyant un mail.

Merci fluo pour cette réponse très clair.

J’ai une question à ce propos.
Sachant que postfix va recevoir des mails de différentes adresses à l’attention de testspam@lamachineacafe.fr pour les tests, est t’il possible de mettre dans le le fichier header_chek.pcre des caractères génériques du type :

sans que cela impacte les mails à destination des autres utilisateurs ?

Ou sinon il y a t’il une façon de faire le remplacement uniquement sur les mails à destination de testspam@lamachineacafe.fr du genre :

[quote=“rca.buzzee”]est t’il possible de mettre dans le le fichier header_chek.pcre des caractères génériques du type :

sans que cela impacte les mails à destination des autres utilisateurs ?
[/quote]
=>Oui tu peut utiliser des caractères génériques car pcre est un langage d’expression régulière.
Le joker est représenté par un point.

[quote=“rca.buzzee”]
Ou sinon il y a t’il une façon de faire le remplacement uniquement sur les mails à destination de testspam@lamachineacafe.fr du genre :

=>Oui, exemple :

if /From: rca buzzee <rca.buzzee@gmail.com>/ REPLACE From: testspam@lamachineacafe.fr
endif
if /From: yyyy <yyyyy@gmail.com>/ REPLACE From: testspam@lamachineacafe.fr
endif