#1 Le 21/08/2006, à 19:14
- Geek87
[Résolu] Postfix et réécriture d'adresse
Bonjour !
Je me suis documenté depuis quelques temps sur le serveur de messagerie Postfix car je voulais faire tourner les fonctions de messagerie de PHP sur mon PC. Et puis je me suis intéressé de plus près à Postfix et je me suis décidé à monter un petit serveur de messagerie pour mon réseau. Pour l'instant j'arrive à peu près bien à envoyer des email.
Mon problème concerne la réécriture d'adresse grâce à Postfix car je ne comprends pas très bien le rôle des tables de correspondance de Postfix. Quel est le rôle précis des tables "canonical", "virutal", "generic" et "aliases" ? J'ai en effet l'impression que l'on peut quelquefois faire la même chose avec des tables différentes.
Voilà, si quelqu'un peut m'éclaircir, je l'en remercie d'avance.
A bientôt.
Dernière modification par Geek87 (Le 07/09/2006, à 18:37)
Hors ligne
#2 Le 21/08/2006, à 20:22
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
o Canonical permet de "mapper" a la fois
-l'adresse de l'enveloppe SMTP et
-l'adresse présente dans les en-tetes..
(et ceci soit sur l'expediteur (MAIL FROM et From:, soit sur le(s) destinataire(s) RCPT TO: et To: Cc: etc...)
o Virtual permet juste de remplacer l'enveloppe sans modifier les en-tetes...
o Les alias, c'est plutot si tu veux par exemple que les mails envoyés a drh@exemple.tld soient envoyés à robert@exemple.tld et gertrude@exemple.tld
Tout ceci est très bien documenté par Wietse... Il suffit de lire les manuels.. (et s'y connaitre un peu en SMTP )
Hors ligne
#3 Le 21/08/2006, à 20:50
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Je te remercie beaucoup de m'avoir répondu aussi vite.
Je suis en effet en train de relire les docs de Wietse et cela commençait à devenir un peu plus clair. Il faut dire que ça fait deux jours que je lis les docs en non-stop et comme ces fichiers ne sont documentés qu'en Anglais, j'ai eu du mal a tout avaler ! lol !
Il me reste encore trois petits points à éclaircir :
- generic fait la même chose que canonical mais juste sur le smtp sortant et sur l'expéditeur ?
- canonical opère les modifs aussi bien sur les mails entrant que les mails sortant (je parle de sortant de l'ordi et pas de la chaîne de postfix comme dans la doc, ce qui m'a d'ailleurs un peu embrouillé !) ? sachant qu'on peut dissocier les deux grâce à canonical_sender et canonical_recipient ?
- aliases ne fait-il que de la redirection en local ou peut-il rediriger vers l'extérieur ? et modifie-t-il les en-têtes ?
Merci d'avance pour tes réponses.
Dernière modification par Geek87 (Le 21/08/2006, à 20:56)
Hors ligne
#4 Le 21/08/2006, à 20:53
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Oups là ! Petite erreur de ma part pour le point numéro 2 : canonical_sender et canonical_recipient servent à dissocier les remplacements pour les destinataires et les expéditeurs, c'est bien ça ? Mais canonical opère bien sur l'entrant et le sortant ?
Hors ligne
#5 Le 21/08/2006, à 22:21
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
- generic fait la même chose que canonical mais juste sur le smtp sortant et sur l'expéditeur ?
A priori, oui. (jamais utiliser generic)
- canonical opère les modifs aussi bien sur les mails entrant que les mails sortant (je parle de sortant de l'ordi et pas de la chaîne de postfix comme dans la doc, ce qui m'a d'ailleurs un peu embrouillé !) ?
oui... il opere sur les mails qui passent a travers le serveur... mais a mon avis meme si ils ne ressortent pas (cas ou tu map vers une adresse locale)
- aliases ne fait-il que de la redirection en local ou peut-il rediriger vers l'extérieur ?
Il ne peut rediriger que des mails qui sont a la base, à destination du systeme local.. mais si tu mappes à cette adresse locale une adresse "externe", alors oui, il redirigeras vers l'extérieur... (a condition peut etre d'avoir 127.0.0.1 dans mynetworks dans ce cas ? )
et modifie-t-il les en-têtes ?
La comme çà, j'ai un doute...je ne suis plus sur... a regarder dans la doc ou a tester...
Hors ligne
#6 Le 21/08/2006, à 22:22
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
canonical_sender et canonical_recipient servent à dissocier les remplacements pour les destinataires et les expéditeurs, c'est bien ça ?
Exactement...
Déjà mis en prod sur des serveurs... çà tourne nickel...
Hors ligne
#7 Le 21/08/2006, à 22:27
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
OK ! Merci pour tout.
J'en déduis donc que tu ne pourras pas m'aider à trouver ce qui couille avec mon generic (qui ne remplace rien du tout) vu que tu ne t'en sers pas.
Je poste dès que j'arrive à le faire marcher, si j'abandonne pas d'ici là ! lol !
Bonne soirée.
Hors ligne
#8 Le 22/08/2006, à 07:47
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
si tu peux quand meme balancer..
var/log/mail.log + "postconf -n" + les fichiers en question....
Hors ligne
#9 Le 22/08/2006, à 09:27
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
OK, je fais ça dès que je peux, parce que j'ai choisi de tout réinstaller pour partir sur des bases saines car j'avais un peu touché à tous les paramètres !
Hors ligne
#10 Le 22/08/2006, à 09:52
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
Geek87 a écrit :et modifie-t-il les en-têtes ?
La comme çà, j'ai un doute...je ne suis plus sur... a regarder dans la doc ou a tester...
Non, il ne modifie pas les en-tetes...
Chaque personne qui recoit voit l'adresse de destination originale
Hors ligne
#11 Le 22/08/2006, à 12:31
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
J'ai tout réinstallé et reconfiguré et j'arrive toujours pas à faire marcher generic
Voici mes fichiers :
- main.cf (postconf -n) :
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
biff = no
canonical_maps = hash:/etc/postfix/canonical
config_directory = /etc/postfix
mailbox_size_limit = 0
masquerade_domains = $mydomain
mydestination = $myhostname localhost.$mydomain localhost $mydomain
myhostname = host.domain.tld
mynetworks = 127.0.0.0/8 192.168.0.0/28
myorigin = $mydomain
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
recipient_delimiter = +
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_generic_maps = hash:/etc/postfix/generic
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = hash:/etc/postfix/virtual
- generic :
login prenom.nom@fai.fr
- canonical, recipient_canonical, sender_canonical et virtual sont vides
- et aliases :
MAILER-DEAMON: root
postmaster: root
abuse: root
webmaster: root
www-data: root
root: login
Je fais postalias /etc/aliases, postmap canonical generic recipient_canonical sender_canonical virtual et postfix reload à chaque modification d'un fichier.
Je fais mes tests avec sendmail -bv adresse. Cela m'a permis de voir qu'aucune réécriture n'est faite par generic.
A+
Dernière modification par Geek87 (Le 03/05/2007, à 21:35)
Hors ligne
#12 Le 22/08/2006, à 12:43
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Je viens de réessayer et ça marche !
En fait les commandes sendmail -bv adresse et sendmail -v adresse ne montrent pas les réécriture opérées par generic mais ces dernières sont quand même effectuées !
Il me semble pourtant bien avoir déjà testé sendmail adresse sans que ça marche : ou je délire ou alors le postfix reload ne marche pas...
Bonne appétit. A cette après midi.
Hors ligne
#13 Le 22/08/2006, à 13:41
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
Heuu...ok...
Sinon n'oublie pas le /var/log/mail.log...
Hors ligne
#14 Le 22/08/2006, à 13:44
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
J'y comprends pas grand chose à ce /var/log/mail.log.
Les réécritures y sont indiquées ?
Hors ligne
#15 Le 22/08/2006, à 14:51
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
En fait je viens de réfléchir à un truc : quand on veut remplacer login par prénom.nom à l'émission puis faire l'inverse à la réception, c'est plus logique de faire la 1ère transformation à l'aide sender_canonical et la 2nde à l'aide de recipient_canonical plutôt que de faire la première avec canonical et la 2nde avec aliases ?
Ça me paraît plus cohérent, mais c'est mon avis personnel.
Hors ligne
#16 Le 22/08/2006, à 15:20
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
tu as combien de machines dans ta chaine smtp ?
quels sont les types d'adresses sender et recipient sur chacunes de ces machines ?
tu veux faire quoi (mapper de quoi vers quoi etc..) ?
Fait une sorte de petit schéma pour qu'on puisse comprendre...
Hors ligne
#17 Le 22/08/2006, à 15:21
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
J'y comprends pas grand chose à ce /var/log/mail.log.
sudo apt-get install ccze
tail -f /var/log/mail.log|ccze -A
->ca sera deja plus lisible....
Les réécritures y sont indiquées ?
En tout cas pour canonical et alias -> oui...
Hors ligne
#18 Le 22/08/2006, à 20:50
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Merci pour ccze, je connaissais pas.
En fait, y a vraiment rien de défini pour l'instant.
A la base je voulais juste faire tourner les fonctions mail de PHP et il me fallait Postfix, Exim ou Sendmail pour ça. J'ai vite choisi Postfix après tout le bien que j'ai lu à propos de lui.
Comme j'arrivais pas à faire marcher Postfix pour PHP, j'ai dû me plonger dans les docs. C'est comme ça que je me suis dit que si je me mettais à lire les docs, autant ne pas le faire pour rien et monter un petit serveur mail.
Je suis connecté en IP ADSL Free à 2Mbits/s avec une Freebox v.4 configurée en routeur. Derrière la Freebox, un switch Gigabit 8 ports Netgear GS608. Sur le switch j'ai pour l'instant 3 PCs et un serveur d'impression Netgear PS121 (qui couille pas mal et je ne sais pas pourquoi...). Il me reste un vieil ordinateur (peut-être trop vieux ? on verra bien !) qui pourrais me servir de serveur mail (pour ça je crois que c'est bon) et de serveur web (pour ça peut-être moins...). Mais en ce moment je fais mes tests sur ma machine à moi.
Normallement je vais bientôt disposer d'un nom de nomaine grâce à la personnalisation DNS de Free.
Désolé pour toutes ces lignes je vais voir ce que j'ai pour te faire un schémas : ce sera plus clair.
Hors ligne
#19 Le 22/08/2006, à 20:58
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Donc pour la livraison locale à mon PC pas de problème : je transforme les login en prénom.nom grâce à sender_canonical et les prénom.nom en login grâce à recipient_canonical (je viens de me rendre compte en écrivant, que le destinataire verra son login plutôt que son prénom.nom dans le message. Donc il faut router les prénom.nom vers les login grâce à aliases ?).
Pour envoyer vers l'extérieur (en attendant mon nom de domaine), je remplace les prénom.nom par une adresse chez un FAI.
Par contre je m'interroge sur comment router le courrier vers des autres machines de mon réseau qui sont sous linux (grâce à procmail ?) et encore pire vers des machines Windows ?
Voilà, je te trouve très motivé si tu es arrivé jusque là ! lol.
Hors ligne
#20 Le 22/08/2006, à 21:00
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Je m'interroge encore sur le rôle de virtual quand tu n'as qu'un seul domaine ?
Hors ligne
#21 Le 22/08/2006, à 21:35
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Voilà pour le schémas :
Je sais pas si c'est plus clair mais bon c'est toujours ça.
Dernière modification par Geek87 (Le 22/08/2006, à 21:44)
Hors ligne
#22 Le 22/08/2006, à 22:56
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
Postfix est-il un MDA ou ne fait-il que MTA ?
Faut-il créer un compte pour chaque utilisateur du réseau local sur la passerelle Postfix ou on peut leur créer une boîte aux lettres sans qu'il ne disposent de compte ?
Hors ligne
#23 Le 22/08/2006, à 23:25
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
Voila ce que je ferais vu ce que j'ai compris de ce que tu veux faire...
-Flux entrants (de l'exterieur vers tes users internes)
Sur le serveur: Postfix/Dovecot
des comptes locaux, mettons sous la forme "login"...
Tu fais un alias genre
prenom.nom: login
prenom2.nom2: login2
Les mails a destination de prenom.nom sont acceptés par postfix (vu que mydestination contient par défaut le fichier alias) et delivrés des les boites des logins correspondant..
Dans les clients pop/imap, tu fait pointer vers le serveur Dovecot avec acces avec "login"...
-Flux sortants (de tes users internes vers l'exterieur ou l'interieur )
Dans les clients pop/imap/smtp des users, tu configures l'IP de ton Postfix comme serveur SMTP..
L'adresse mail configurée comme adresse expéditeur dans le client messagerie est de la forme prenom.nom@domain.tld
Dans ton postfix, tu mets les IPs des machines client dans "mynetworks"..
donc les mails venant de ces machines pourront etre envoyés aussi vers l'exterieur...(sans besoin de modifs des adresses sui seront deja au bon format...)
Bref, ma solution n'emploi ni canonical, ni generic..Etc... juste aliases
(et encore pas besoin d'utiliser alias si tu créés les comptes Linux directement sous la forme "prenom.nom" au lieu de juste "user")
Hors ligne
#24 Le 22/08/2006, à 23:33
- Uggy
Re : [Résolu] Postfix et réécriture d'adresse
Postfix est-il un MDA ou ne fait-il que MTA ?
Il est MTA mais il sait délivrer les mails soit à des scripts (avec des pipes) soit "localement" en les stoquant dans la boite mail du user local...
Par contre ça fait pas comme procmail qui peut faire plein d'autres trucs; filtres etc....
Faut-il créer un compte pour chaque utilisateur du réseau local sur la passerelle Postfix ou on peut leur créer une boîte aux lettres sans qu'il ne disposent de compte ?
Je ne sais pas comment créer des boites sans faire de compte linux...
mais doit y avoir moyen... ? a voir peut etre aussi du coté du client pop/imap utilisé...
Hors ligne
#25 Le 23/08/2006, à 10:56
- Geek87
Re : [Résolu] Postfix et réécriture d'adresse
OK. Je te remercie pour tous ces conseils. Je pense que je vais m'y prendre comme tu me l'a indiqué.
Par contre, je pense que j'aurais quand même besoin de generic tant que j'ai pas mon nom de domaine. Ce qui est con avec ce fichier, c'est qu'il ne se contente pas de modifier l'adresse de l'expéditeur, il modifie aussi l'adresse du destinataire. C'est génant quand tu rediriges ton courrier vers un FAI grâce à aliases.
Et tu as oublié de répondre à ma question sur virtual ce fichier a un intérêt quand tu ne gère qu'un seul nom de domaine sur ta machine ? Ca a quelque chose à voir avec les BAL virtuelles ?
Hors ligne