|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Bonjour,
J'aimerai avoir des précisions sur la façon dont on peut configurer postfix (v2.3.7) car malgré mes nombreuses lectures il y a pas mal de zones d'ombres. donc je commence par ceci : Code :
Code :
merci de vos lumières |
||||
|
|
00
|
|
|
#2 | ||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Bon j'ai une réponse claire à ma question 2 dans la documentation mais pour le reste...
Citation:
Citation:
|
||
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Si je récapitule les principales commandes SMTP :
Citation:
Code :
Citation:
L'évaluation s'effectue dans l'ordre des listes de restrictions et l'une après l'autre. Pour la question 3, il semble que c'est la documentation qui répond le mieux : Afin d'éviter les effets de bords, il vaut mieux indiquer les instructions correspondantes à chaque restriction smtpd soit l'instruction reject_invalid_helo_hostname dans la restriction smtpd_helo_restriction. Y a t-il une personne qui pourrait me confirmer tout cela ? Merci |
||||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
regarde un article que j'ai ecrit sur ce point
https://www.starbridge.org/spip/spip.php?article7 cela se base sur une config que je detaille dans un tuto sur le meme site, mais la logique est expliquée et reste la meme pour toute install de postfix. dis moi si il demeure des zones d'ombres et puis sinon comme tu le soulignes la doc est tres precise sur le sujet. mais c'est vrai que cela peut aider d'avoir d'abord une vue d'ensemble globalement l'ordre des restrictions est capital.
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
ça change du faites comme ci, et comme ça, me demandez pas pourquoi chez moi ça marche... Merci beaucoup mrtonio ! je comprend mieux pourquoi il y a un reject_non_fqdn_helo_hostname qui se ballade souvent dans smtpd_recipient_restrictions. Citation:
Par contre quel intérêt de mettre reject_invalid_helo_hostname dans smtpd_recipient_restrictions après reject_non_fqdn_recipient, reject_non_fqdn_sender et reject_unknown_recipient_domain ? Ne devrait-il pas se trouver dans smtpd_helo_restrictions ? Le schéma n'a plus l'air d'exister... Pour l'instruction reject_unauth_pipelining qui se situe dans smtpd_data_restrictions, n'y a t-il pas un intérêt à le mettre dans les autres listes d'accès smtpd ? Citation:
|
||
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
le fait de mettre les acl concernant le helo dans le stage smtpd_recipient est lié a la structure des verifications que fait postfix par defaut.
comme je le precise dans l'article, par defaut postfix evalue toute les restrictions a la fin du dernier stage, donc basiquement on peut placer toutes les acls dans smtpd_recipient . Seul quelques cas particuliers ou il faut jouer avec des reject et des conditions (comme dans le tuto de mon site) impose de dispatcher les acl dans les stages requis. c'est toute la puissance de postfix, cette finesse dans le filtrage. Mais il faut bien comprendre cette notion d'ordre a l'interieur des stages et le concept de l'evaluation des restrictions en fin de cycle. pour le reject_unauth_pipelining il a sa place logiquement plutot dans le stage data. (pour le schema il faut s'authentifier sur le forum de support de mon site)
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#7 | |||||||||||||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
pour le reject_unauth_pipelining, je n'ai pas trouvé d'explications vraiment pertinentes, mis à part effectivement qu'il n'est pas conseillé de l'utiliser dans les autres contextes de restriction.
Citation:
Citation:
Citation:
Citation:
Code :
Finalement une explication précise trouvée dans un échange d'avis sur une main.conf: Citation:
|
|||||||||||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Concernant l'intérêt de mettre reject_invalid_helo_hostname dans smtpd_recipient_restrictions, je pense plutôt suivre les recommandations de la documentation soit de le mettre dans smtpd_helo_restrictions. A moins que le but est de faire passer en premier des restrictions moins gourmandes en ressources, dans ce cas précis, je veux bien. Mais peut-être il y a t-il une autre raison qui m'échappe...
Dans votre schéma, il y a deux fois reject_unknown_sender_domain dans SMTPD_SENDER_RESTRICTIONS et SMTPD_RECIPIENT_RESTRICTIONS, cela fait doublon non ? |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
je conseillerai de mettre a chaque fois que cela est possible, les acl sous smtpd_recipient_restrictions.
tu peux regarder les discussions a ce sujet sur la ML de postfix et ce point de vue est celui de Wenema et Duchovni. La doc donne une vue d'ensemble mais ce sujet est tres tres vaste, et a donné lieu a de multiples discussions. il faut bien saisir cette notion d'ordre et surtout de coherence dans l'application des acl et c'est pour cela qu'il est conseillé de faire comme ceci. comme j'ecrivais plus haut l'interet de separer les acl par stage se trouve dans certains cas particuliers, ou l'on a besoin d'eliminer plus tot une transaction et que des ACL se chavaucheraient. pour le reject_unauth_pipelining c'est bien cela, du moins dans les conditions que tu cites (smtpd_delay_reject = yes et EHLO dans la transaction du client) ce qui est le mode par defaut. Si on places ailleurs le reject_unauth_pipelining, ce n'est pas tres grave, juste inutile. j'ai effectivement mis 2 fois reject_unknown_sender_domain, un dans le stage sender et l'autre dans recipient, et effectivement j'aurai pu ne le mettre que dans le sender. La verif etant en cache cela ne pose pas de reels pbs de perfs mais le doublon existe bien. il faut bien comprendre que quoiqu'il en soit les acl sont parsées jusqu'au bout (fin de recipient), donc le temps de traitement reste a peu pres le meme
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Bonjour M. Tonio, je ne remet pas du tout en question vos conseils bien au contraire toutes mes démonstrations les confirment et vous semblez bien maîtriser votre sujet. Cependant je suis un peu tétu, j'aime bien comprendre le comment du pourquoi...
Alors, j'ai cherché dans la Mailing-List de postfix à l'aide de google mais j'ai l'impression de rechercher une aiguille dans une botte de foin. Avez vous des exemples de discussion avec Wenema et Duchovni... Bref voici la configuration postfix que je suis en train de mettre en place : (elle n'est pas figée, ni terminée, je vais la mettre à jour suivant vos conseils et au fur et mesure de la réflexion) Citation:
Cela permet de mettre en exergue une exception comme reject_non_fqdn_helo_hostname qui est mis dans smtp_recipient_restrictions au lieu de smtpd_helo_restrictions. |
|
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
salut
on peut se tutoyer se sera plus simple j'ai pas d'exemple sous la main, c'est plutot au fil des lectures que ce constat s'est fait. le fait de tout reunir au maximum sous recipient est principalement axé sur un besoin de clarté mais surtout pour eviter des effets de bords dans les restrictions. Si l'on comprends bien les restrictions rien n'empeche effectivement de dispatcher proprement dans les stages relatifs. les effets de bords peuvent se produire justement quand l'interet de cette separation des stages se fait sentir: le besoin de plusieurs conditions. quand un OK ou un permit apparait dans le stage smtpd_recipient le message part tout de suite, ce qui parfois n'est pas le but recherché car l'on souhaite appliquer d'autre verifications avant d'accepter le mail. c'est la tout l'interet de la separation des stages. si l'on n'entre pas dans un tel cas de figure alors peu importe dans quel stage l'acl est mise (enfin presque c'est la qu'il fautbien maitriser ces acl) ainsi un permit sur un HELO specifique dans le stage recipient placé avant permit_mynetwork et reject_unauth_dest aurait commme effet de creer un relais ouvert pour ce helo en question, car le mail serait accepté immediatement des l'acl en question. on comprend le risque etant donnée qu'un helo peut simplement se forger. donc dans ce cas, si l'on a reellement besoin d'autoriser un HELO specifique on place l'ACL relative dans le stage HELO. celui ci terminera par un PERMIT mais le mail ne partira pas directement car il faudra passer par le stage rcpt avec justement les verifs relatives au network et aux destinations. et la le mail ne partira pas si il n'est pas explicitement autorisé par ces regles. je sais pas si c'est clair, car je reconnais que pour s'en rendre compte il faut etre en fait confronté a un cas de figure en pratique. Dans ton main.cf que tu proposes: -tu as 2 fois permit_mynetworks -le warn_if_reject est tout seul ? pourquoi ? -reject_unknown_reverse_client_hostname est assez risqué, cela genere pas mal de faux positifs - dans le fichier internal_networks as tu mis la meme chose que dans mon tuto ? - mettre les checks: check_client_access proxy:mysql :/etc/postfix/mysql-client.cf, check_sender_access proxy:mysql :/etc/postfix/mysql-sender.cf tout a la fin reduit leur interet, notamment pour whiotelister sender ou client sur une RBL (que tu as placé avant) il y a peut etre d'autre choses que j'ai pas vu (j'ai un peu lu vite)
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
tu m'as surpris en pleine rédaction...
Pour l'ordre des restrictions, je pense que j'ai bien compris. ->le fait d'avoir deux fois permit_mynetworks vient de mon incompréhension de l'utilisation de la commande ETRN (mais je voulais l'analyser dans un second temps après m'être informé)
Code :
query = SELECT goto FROM alias WHERE address='%s' |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
ce que je voulais dire c'est que la syntaxe est: warn_if_reject suivi de l'ACL sur la meme ligne
ici tu mets warn_if_reject et l'acl sur 2 lignes separés, ce qui a ma connaissance est sans effet (pas de warn) pour le smtpd_sender_login_maps, je fais le lookup sur la table alias plutot que mailbox car cela permet a un user d'envoyer tout de meme un email avec un de ces alias plutot que de le restreindre a son email de base (table mailbox) l'essentiel c'est que le mailfrom qu'il utilise soit un email qui finissent dans sa boite. (pour le retour de mail) un user avec un mailbox toto@domain.com, peut posseder l'alias tata@domain.com,voire meme l'alias tata@autredomaine.com (tant que celui ci est géré par le serveur evidemment) et sera autorisé a envoyer un email avec le compte de base de sa mailbox c'est a dire toto@domain.com j'en parle dans l'article sur mon site, en detaillant justmeent l'interet de toujours diriger un alias vers une boite physique (mailbox) et non vers un autre alias. précision importante: la table alias dans ma config contient egalement l'entree toto@domain.com ==> toto@domain.com donc un alias vers lui meme
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Ok pour warn_if_reject, heureusement postfix est assez souple dans l'interprétation de sa configuration : il ignore ma virgule mais je corrige.
C'est ça que j'ai du mal à comprendre : on fait appel à la colonne goto qui contient l'adresse finale.
Code :
query = SELECT address FROM alias WHERE address='%s' |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
1- peux tu preciser sur les doublons ?
2- non c'est l'inverse en fait le concept c'est que le mailfrom du mail est la colonne address, on verifie par la table que celui ci soit bien lié a un goto vers la boite physique (le compte sasl si tu preferes) toto@domainegéré.com vers titi@domaineextérieur.com cela correspond a address: toto@domainegéré.com goto: titi@domaineextérieur.com soit aucune autorisation car le compte sasl titi@domaineextérieur.com n'existe pas. personne ne pourra envoyer avec en mailfrom toto@domainegéré.com, ni bien sur titi@domaineextérieur.com je sais pas si c'est clair. 3- si l'alias est crée vers des boite physiques, alors chaque user présent dans la colonne goto pourra envoyer un mail avec comme mailfrom toto@domainegéré.com c'est le but de la manoeuvre en fait. si tu ne desires pas ce comportement pour certains alias généraux alors il suffit de créer cet alias d'une autre maniere (en passant par maildrop dans ma conf) mais pour moi dans la majorité des cas de figure il est normal d'autoriser les users a envoyer un mail avec un mailfrom dont ils sont destinataires, meme si c'est un alias global.
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Je vais prendre un exemple concret pour voir si j'ai bien compris.
Nous avons Alain Dupont qui à une mailbox : alain.dupont@domainegere.com Création des alias en conséquence : Code :
Code :
query = SELECT goto FROM alias WHERE address='%s' alain.dupond@domainegere.com alain-dupont@domainegere.com ad@domainegere.com a.d@domainegere.com a-d@domainegere.com Par contre, groupe@domainegere.com ne pourra pas fonctionner car le résultat du select sera "alain.dupont@domainegere.com,robert@fai.fr,martin@domaineexterieur.com" |
||
|
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
eclaircissons un point:
on parle bien de la possibilité pour un user d'utiliser un mailfrom depuis son compte SASL. tu parles de "se connecter" et j'ai peur qu'il y ait confusion ici le user ne se connectera pas avec les identifiant SASL de ses alias. On verifie juste que son identifiant SASL (c'est a dire son email principal, mailbox dans sql) soit autorisé a utiliser comme adresse de mailfrom les alias en question. (mailfrom c'est l'adresse email que l'on mets dans un client mail et qui apparaitrat chez le destinataire sous la forme: De: alain.dupont@domainegere.com) donc dans ton exemple le user alain.dupont@domainegere.com qui s'identifie donc en SASL par le compte alain.dupont@domainegere.com, sera autorisé a utiliser comme MAILFROM les alias que tu cites: alain.dupond@domainegere.com alain-dupont@domainegere.com ad@domainegere.com a.d@domainegere.com a-d@domainegere.com MAIS AUSSI: groupe@domainegere.com car il apparait dans les users autorisés a utiliser cet alias. robert@fai.fr,martin@domaineexterieur.com eux ne sont pas concernés car evidemment il ne possedent pas de compte sur le serveur (pas d'identifiant SASL) la regle pour eux ne matche pas. donc pour que soit clair on parle de mailfrom et non de connection SASL, celle ci restant toujours la meme c'est a dire celle du compte mailbox.
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
Effectivement, je me suis mal exprimé : je parle bien du MAIL FROM mais pas de la connexion SASL dont le login (nom d'utilisateur + mot de passe) est défini dans la table MAILBOX (ouf, on va y arriver).
Par contre je ne pige pas que "groupe@domainegere.com" puisse être utilisé dans le MAIL FROM car la requête devrait être : Code :
query = SELECT goto FROM alias WHERE address LIKE '%%s%' |
|
|
00
|
|
|
#19 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 202 ![]() |
parce qu'en fait il faut comprendre que la verif est faite dans l'autre sens
pour faire simple: champ address: le MAILFROM champ goto: le login SASL (c'est a dire l'email du user comme dans le champ mailbox) donc quand le login sasl qui est présenté par le user lors de la connection est le meme que celui qui est resolu par la requete c'est OK
__________________
Tutoriaux Postfix: www.starbridge.org/spip Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: www.eole-its.com |
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 31 ![]() |
oui exact, décidément j'ai un problème avec cette requête : je fais constamment l'inversion...
mais dans ce cas précis : goto=alain.dupont@domainegere.com,robert@fai.fr,martin@domaineexterieur.com et address=groupe@domainegere.com donc cela ne colle pas. A moins que postfix ne fasse pas la comparaison et attend juste que la requête soit valide (vrai ou faux) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com