Filtre d'adresse mail sur Postfix

Filtre d'adresse mail sur Postfix - Sécurité - Systèmes & Réseaux Pro

Marsh Posté le 06-08-2009 à 13:18:45    

Bonjour,
 
Je souhaite filtrer les destinataires du courrier entrant sur un serveur Postfix frontal.  
 
Je lisant la doc Postfix j'ai trouvé deux solutions qui consistent :
 
1) Filtrer sur les adresses local/alias ce qui implique, je pense, une remise local du courrier.
 
2) Filtrer sur des adresses virtuelles.
 
Le méthode des adresses virtuelles me gêne car elle oblige à mettre en place toute une architecture virtuelle, or le mail n'est pas géré comme ça.
 
Mon serveur frontal postfix.domaine-messagerie.lan filtre le courrier et le relai à postfix.domaine-utilisateur.lan qui le distribue aux utilisateurs.
 
Comment dans cette configuration je peux vérifier sur postfix.domaine-messagerie.lan que le mail à destination de utilisateur@domaine-utilisateur.lan est légitime.


Message édité par seb-info le 10-08-2009 à 13:53:45
Reply

Marsh Posté le 06-08-2009 à 13:18:45   

Reply

Marsh Posté le 07-08-2009 à 10:44:44    

faudrait voir ton postconf -n pour voir comment tu geres ton relais


---------------
Messagerie dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Reply

Marsh Posté le 07-08-2009 à 14:05:49    

Code :
  1. alias_database = hash:/etc/aliases
  2. alias_maps = hash:/etc/aliases
  3. append_dot_mydomain = no
  4. biff = no
  5. config_directory = /etc/postfix
  6. inet_interfaces = all
  7. mailbox_size_limit = 0
  8. mydestination = postfix.antispam.lan, localhost.antispam.lan, localhost
  9. myhostname = postfix.antispam.lan
  10. mynetworks = 127.0.0.0/8 X.X.X.0/24 [:ffff:127.0.0.0]/104 [:1]/128
  11. myorigin = /etc/mailname
  12. readme_directory = no
  13. recipient_delimiter = +
  14. relay_domains = monentreprise.fr
  15. relayhost = X.X.X.X
  16. smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
  17. smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
  18. smtpd_recipient_restrictions = permit_auth_destination, reject_non_fqdn_recipient,      reject_unauth_destination,    local_recipient_maps=,
  19. smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
  20. smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
  21. smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
  22. smtpd_use_tls = yes


 
Ce serveur mail renvoie vers le serveur X.X.X.X qui distribue les mails aux utilisateurs de monentreprise.fr.
 
Au passage lorsque un spam est reçu avec un nom d'expéditeur inexistant du style : jespam@hrefurfirfgher.ifrhirhir
 
Le FROM est remplacé par : jespam@postfix.antispam.lan ce qui me pose problème.


Message édité par seb-info le 07-08-2009 à 14:06:22
Reply

Marsh Posté le 08-08-2009 à 09:35:01    

enleve le relayhost =  et remplace le par
 

Code :
  1. transport_maps = hash:/etc/postfix/transport


 
et dans /etc/postfix/transport tu mets:
 

Code :
  1. monentreprise.fr     relay:[X.X.X.X]


 
 
il faut ensuite parmetrer la verification des users valides sur le relais:
ajoute au main.cf
 

Code :
  1. relay_recipient_maps = /etc/postfix/relay-recipients


et dedans tu mets les users sous la forme:
 

Code :
  1. user1@monentreprise.fr       1
  2. user2@monentreprise.fr       1


 
tu postmappes les 2 fichiers crées
puis tu relances postfix
 
fais un test et poste les logs  
 


---------------
Messagerie dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Reply

Marsh Posté le 08-08-2009 à 18:12:06    

Je vais essayer ça. Ce sont des solutions que j'ai déjà tenté mais peut etre avec d'autres qui ne produisent pas l'effet voulu. Je posterais le résultat de la configuration que tu me proposes lundi. J'ai un autre soucis un peu plus vicieux, à mes yeux du moins. Lorsqu'il y a un From dans le mail du genre: From: toto. Le mail est envoyé avec l'adresse d'expediteur : toto@monserveur.mondomaine.lan.
 
Avant ça ne me le faisiait pas je ne sais pas ce qui a déclenché cette configuration mais elle ne me convient pas. J'ai essayé l'enelve "rewrite" dans master.cf ce qui empêche le bon fonctionnement de Postfix ^^.
 
En continuant les recherche j'ai vu que cela pourrait venir de l'option "canonical" qui semblerait-il est désactivé par défaut donc je ne vois pas pourquoi les From sont modifiés. Ca m'embête bien aussi ....
 
PS : un autre poste que j'ai fait pour le problème des From : http://forum.hardware.fr/hfr/OSAlt [...] 9863_1.htm


Message édité par seb-info le 08-08-2009 à 18:13:51
Reply

Marsh Posté le 10-08-2009 à 10:29:31    

Pour la partie filtrage des adresses les commandes fonctionnent bien avec la configuration suivante :
 

Code :
  1. alias_database = hash:/etc/aliases
  2. alias_maps = hash:/etc/aliases
  3. append_dot_mydomain = no
  4. biff = no
  5. config_directory = /etc/postfix
  6. inet_interfaces = all
  7. mailbox_size_limit = 0
  8. mydestination = postfix.antispam.lan, antispam.lan, localhost
  9. myhostname = postfix.antispam.lan
  10. mynetworks = 127.0.0.0/8 X.X.X.0/24 [:ffff:127.0.0.0]/104 [:1]/128
  11. myorigin = /etc/mailname
  12. readme_directory = no
  13. receive_override_options = no_address_mappings
  14. recipient_delimiter = +
  15. relay_domains = monentreprise.fr
  16. relay_recipient_maps = hash:/etc/postfix/clients
  17. relayhost = none
  18. smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
  19. smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
  20. smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
  21. smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
  22. smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
  23. smtpd_use_tls = yes
  24. transport_maps = hash:/etc/postfix/chainefiltre


 
Le problème est que je reçois les mails sur la boite client avec un From modifier de l'orginale. Par exemple
 

Code :
  1. mail from: toto@aol.com
  2. rcpt to: monutilisateur@monentreprise.fr
  3. data
  4. from: toto


 
Monutilisateur recevra le mail de toto avec comme adresse d'expediteur toto@aol.com et comme nom toto@serveurpostfix.sondomaine.lan
Il me reste ce problème a résoudre surtout que j'ai l'impression que la réecriture du champ From fait que le traitement par SpamAssassin n'est pas efficace car il reconnais un domaine local. Ceci n'est qu'une apartée.
 
Voilà le master.cf :

Code :
  1. #
  2. # Postfix master process configuration file.  For details on the format
  3. # of the file, see the master(5) manual page (command: "man 5 master" ).
  4. #
  5. # Do not forget to execute "postfix reload" after editing this file.
  6. #
  7. # ==========================================================================
  8. # service type  private unpriv  chroot  wakeup  maxproc command + args
  9. #               (yes)   (yes)   (yes)   (never) (100)
  10. # ==========================================================================
  11. smtp      inet  n       -       -       -       -       smtpd
  12. #submission inet n       -       -       -       -       smtpd
  13. #  -o smtpd_tls_security_level=encrypt
  14. #  -o smtpd_sasl_auth_enable=yes
  15. #  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  16. #  -o milter_macro_daemon_name=ORIGINATING
  17. #smtps     inet  n       -       -       -       -       smtpd
  18. #  -o smtpd_tls_wrappermode=yes
  19. #  -o smtpd_sasl_auth_enable=yes
  20. #  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  21. #  -o milter_macro_daemon_name=ORIGINATING
  22. #628      inet  n       -       -       -       -       qmqpd
  23. pickup    fifo  n       -       -       60      1       pickup
  24. cleanup   unix  n       -       -       -       0       cleanup
  25. qmgr      fifo  n       -       n       300     1       qmgr
  26. #qmgr     fifo  n       -       -       300     1       oqmgr
  27. tlsmgr    unix  -       -       -       1000?   1       tlsmgr
  28. rewrite   unix  -       -       -       -       -       trivial-rewrite
  29. bounce    unix  -       -       -       -       0       bounce
  30. defer     unix  -       -       -       -       0       bounce
  31. trace     unix  -       -       -       -       0       bounce
  32. verify    unix  -       -       -       -       1       verify
  33. flush     unix  n       -       -       1000?   0       flush
  34. proxymap  unix  -       -       n       -       -       proxymap
  35. proxywrite unix -       -       n       -       1       proxymap
  36. smtp      unix  -       -       -       -       -       smtp
  37. # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
  38. relay     unix  -       -       -       -       -       smtp
  39.         -o smtp_fallback_relay=
  40. #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
  41. showq     unix  n       -       -       -       -       showq
  42. error     unix  -       -       -       -       -       error
  43. retry     unix  -       -       -       -       -       error
  44. discard   unix  -       -       -       -       -       discard
  45. #local     unix  -       n       n       -       -       local
  46. virtual   unix  -       n       n       -       -       virtual
  47. lmtp      unix  -       -       -       -       -       lmtp
  48. anvil     unix  -       -       -       -       1       anvil
  49. scache    unix  -       -       -       -       1       scache
  50. #
  51. # ====================================================================
  52. # Interfaces to non-Postfix software. Be sure to examine the manual
  53. # pages of the non-Postfix software to find out what options it wants.
  54. #
  55. # Many of the following services use the Postfix pipe(8) delivery
  56. # agent.  See the pipe(8) man page for information about ${recipient}
  57. # and other message envelope options.
  58. # ====================================================================
  59. #
  60. # maildrop. See the Postfix MAILDROP_README file for details.
  61. # Also specify in main.cf: maildrop_destination_recipient_limit=1
  62. #
  63. maildrop  unix  -       n       n       -       -       pipe
  64.   flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
  65. #
  66. # See the Postfix UUCP_README file for configuration details.
  67. #
  68. uucp      unix  -       n       n       -       -       pipe
  69.   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
  70. #
  71. # Other external delivery methods.
  72. #
  73. ifmail    unix  -       n       n       -       -       pipe
  74.   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
  75. bsmtp     unix  -       n       n       -       -       pipe
  76.   flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
  77. scalemail-backend unix  -       n       n       -       2       pipe
  78.   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
  79. mailman   unix  -       n       n       -       -       pipe
  80.   flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  81.   ${nexthop} ${user}


Message édité par seb-info le 10-08-2009 à 10:30:42
Reply

Marsh Posté le 10-08-2009 à 15:52:54    

tu peux faire voir les logs du pb ?
 
pourquoi as tu :
# receive_override_options = no_address_mappings
 
et fais aussi voir le /etc/mailname


---------------
Messagerie dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Reply

Marsh Posté le 10-08-2009 à 17:22:49    

Code :
  1. postfix:~# cat /etc/mailname
  2. postfix.antispam.lan


 
Le receive_override_options doit être une règle que j'ai appliqué pour résoudre le problème de la réécriture du From et que j'ai oublié d'enlever :D
 
Voilà le log d'un envoie de mail :
 

Code :
  1. Aug 10 17:41:22 postfix postfix/smtpd[3105]: connect from unknown[X.X.X.X]
  2. Aug 10 17:42:31 postfix postfix/cleanup[3109]: 34FA087AE: message-id=<20090810154218.34FA087AE@postfix.antispam.lan>
  3. Aug 10 17:42:31 postfix postfix/qmgr[3086]: 34FA087AE: from=<emetteur@free.fr>, size=415, nrcpt=1 (queue active)
  4. Aug 10 17:42:31 postfix postfix/smtp[3110]: 34FA087AE: to=<seb-info@domaine.fr>, relay=Y.Y.Y.Y[Y.Y.Y.Y]:25, delay=16, delays=16/0/0/0.03, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 831C22016)
  5. Aug 10 17:42:31 postfix postfix/qmgr[3086]: 34FA087AE: removed

 
Voila le passage du mail dans le serveur frontal X.X.X.X vers le serveur relai Y.Y.Y.Y
 
Maintenant le log du passage du mail dans le serveur Y.Y.Y.Y

Code :
  1. Aug 10 17:39:33 sa-heu postfix/smtpd[2494]: connect from unknown[X.X.X.X]
  2. Aug 10 17:39:33 sa-heu postfix/smtpd[2494]: 831C22016: client=unknown[X.X.X.X]
  3. Aug 10 17:39:33 sa-heu postfix/cleanup[2497]: 831C22016: message-id=<20090810154218.34FA087AE@postfix.antispam.lan>
  4. Aug 10 17:39:33 sa-heu postfix/smtpd[2494]: disconnect from unknown[X.X.X.X]
  5. Aug 10 17:39:33 sa-heu postfix/qmgr[2472]: 831C22016: from=<emetteur@free.fr>, size=609, nrcpt=1 (queue active)
  6. Aug 10 17:39:33 sa-heu postfix/smtpd[2500]: connect from localhost[127.0.0.1]
  7. Aug 10 17:39:33 sa-heu postfix/smtpd[2500]: DC57C2018: client=localhost[127.0.0.1]
  8. Aug 10 17:39:33 sa-heu postfix/cleanup[2497]: DC57C2018: message-id=<20090810154218.34FA087AE@postfix.antispam.lan>
  9. Aug 10 17:39:33 sa-heu postfix/qmgr[2472]: DC57C2018: from=<emetteur@free.fr>, size=1018, nrcpt=1 (queue active)
  10. Aug 10 17:39:33 sa-heu postfix/smtpd[2500]: disconnect from localhost[127.0.0.1]
  11. Aug 10 17:39:33 sa-heu amavis[2086]: (02086-02) Passed CLEAN, LOCAL [X.X.X.X] [X.X.X.X] <emetteur@free.fr> -> <seb-info@domaine.fr>, Message-ID: <20090810154218.34FA087AE@postfix.antispam.lan>, mail_id: D1iDp6NqWxvH, Hits: -4.399, size: 609, queued_as: DC57C2018, 378 ms
  12. Aug 10 17:39:33 sa-heu postfix/smtp[2498]: 831C22016: to=<seb-info@domaine.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.42, delays=0.03/0/0/0.39, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02086-02, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as DC57C2018)
  13. Aug 10 17:39:33 sa-heu postfix/qmgr[2472]: 831C22016: removed
  14. Aug 10 17:39:34 sa-heu postfix/smtp[2501]: DC57C2018: to=<seb-info@domaine.fr>, relay=Z.Z.Z.Z[Z.Z.Z.Z]:25, delay=0.27, delays=0.04/0/0/0.22, dsn=2.6.0, status=sent (250 2.6.0 <20090810154218.34FA087AE@postfix.antispam.lan> Queued mail for delivery)
  15. Aug 10 17:39:34 sa-heu postfix/qmgr[2472]: DC57C2018: removed


 
Sur mon poste client je reçois le mail comme cela :
 

Code :
  1. From: <From-Emetteur@postfix.antispam.lan>
  2. To: To-Moi@postfix.antispam.lan
  3. Subject: Un rewrite d'header
  4. Message-ID: <20090810154218.34FA087AE@postfix.antispam.lan>
  5. Date: Mon, 10 Aug 2009 17:42:15 +0200
  6. MIME-Version: 1.0
  7. Content-Type: text/plain
  8. Return-Path: emetteur@free.fr

Reply

Marsh Posté le 10-08-2009 à 17:26:01    

visiblement ton relais ne fait rien sur les adresses, donc on dirait que c'est ton serveur cible qui fait la réecriture


---------------
Messagerie dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Reply

Marsh Posté le 10-08-2009 à 22:22:40    

je regarde ca demain et je te dirai.
 
Ce qui m'étonne si c'est le cas ( que le serveur delivrant les mails modifie les en-têtes ) c'est que mon courrier dans la chaine de filtre est un score négatif lorsque j'envoie un spam ...
 
Je poste tout ça demain.

Reply

Marsh Posté le 10-08-2009 à 22:22:40   

Reply

Marsh Posté le 11-08-2009 à 12:09:46    

Si je me connecte depuis un poste lan sur le serveur de messagerie en definissant les options From et TO du Header je vois bien ses informations restistuer sur mon client Outlook.  
 
De ce fait la réecriture semble provenir des serveurs Postix en amont ?

Reply

Marsh Posté le 11-08-2009 à 12:43:46    

je ne suis pas sur de suivre
 
dans tous les cas, postfix ne peut reecrire que l'enveloppe sender, et non les headers (ce que tu vois dans les logs c'est le envelope sender)
si ton header est modifié c'est qu'une action est faite en dehors de postfix


---------------
Messagerie dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed