Configuration particulière de Postfix [Fermé]

Signaler
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
59
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
21 février 2011
-
Bonjour,
J'aimerai effectuer une configuration partculière (peut être :) de Postfix:
dans ma société, nous avons une messagerie intranet et une autre externe hégergé chez un fournisseur.

En local nous avons un serveur sous mandrake 9.2, avec postfix comme serveur de messagerie (domaine masociété.ma).
La messagerie externe est aussi sous le même domaine (masociété.ma).

Les utilisateurs ont donc un compte nom@masociété.ma en local et certains d'eux disposent en plus d'un compte prenom.nom@masociété.ma en externe.

Mon souhait est de configurer Postfix de telle façon à ce que tous les utilisateurs envoient leurs emails au serveur local, postfix devra vérifier si le destinataire existe en local alors c'est ok, il lui envoie l'email mais s'il ne le trouve pas, postfix devra l'envoyer au serveur distant.

quel serait la bonne config de postfix?

Merci d'avance pour votre aide.

18 réponses

Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut,

Essaye en renseignant la directive "relayhost" avec le smtp de ton fournisseur. En principe, elle a pour effet de faire passer par ce relai les e-mails sortants qui ne peuvent pas être acheminés en interne.

Par exemple si le smtp de ton fournisseur est : smtp.monfournisseur.ma, tu mets :

relayhost = [smtp.monfournisseur.ma]

Si cela ne fonctionne pas, reviens faire un tour.


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Merci pour votre réponse,
j'ai essayé de renseigner l'adresse ip du fournisseur au niveau du paramètre relayhost mais ca na pas marché.
quand j'envoie un email à une boite externe, je reçoit le message: 450 User unknown in local recipient table.
Bonjour,

Dans votre config ça ne peut pas fonctionner : si le domaine local est masociete.ma, il n'est pas possible d'avoir le même domaine à l'exterieur sur un autre serveur.
Postfix ce sert du domaine (après l'@) pour savoir s'il doit relayer ou distribuer en local.

Personnellement j'ai rapatrié tous les comptes en local (avant on fonctionnais aussi comme vous).
Il suffit de configurer le dns avec votre adresse IP fixe de votre fournisseur d'acces ADSL et le routeur pour qu'il fasse transiter le trafic entrant vers votre serveur : tout est géré en interne.

Par contre il faut être clair avec les dns : il faut relayer uniquement avec les DNS de votre fournisseur d'accès.
J'utilise bind9 pour le dns local et relai vers orange : sans soucis.

Cordialement,
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
si j'ai bien compris, je doit:
- soit avoir un seul serveur qui traite la messagerie interne et externe
- soit configurer le serveur interne par le domaine: intranet.masociété.ma, garder le serveur externe avec le domaine masociété.ma et attribuer la valeur [ip de mon fournisseur] au paramètre relayhost.

Dans ce 2ième cas, est-ce qu'il n'y aura pas problème lors de la réception des emails?

Dane le 1er cas, est-il possible de restreindre les adresses email qui ont droit à envoyer à l'exterieur?

qu'en pensez-vous?
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut kasnf,

Peux-tu nous envoyer le résultat de

postconf -n


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
voici le résultat de postconf -n

alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
delay_warning_time = 4
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailbox_command = /usr/bin/procmail -Y -a $DOMAIN
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain,$mydomain
mydomain = masociete.ma
myhostname = mail.masociete.ma
mynetworks = 192.168.0.0/16,127.0.0.0/8,172.16.0.0/16
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.0.13/README_FILES
relayhost = [fournisseur.externe]
sample_directory = /usr/share/doc/postfix-2.0.13/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrake Linux)
unknown_local_recipient_reject_code = 450
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut,

1.

Commente la ligne relayhost si tu ne peux pas utiliser le smtp de ton fournisseur pour tout envoi externe, ou laisse la comme cela si cela ne te gêne pas.

2.

Pour tes envois aux boites pop gérées par ton fournisseur, essaye d'utiliser la table transport_maps.

Cette table influe sur la façon dont qmgr affecte l'e-mail à un transport local, smtp ou pipe (voir http://www.postfix.org/big-picture.html).

Vois man 5 transport pour plus de détails.

Dans ton répertoire de configuration mets un fichier "transport", que tu remplis comme çà :

prenom.nom@masociete.ma smtp:smtp.fournisseur.externe
...

utilise ensuite postmap /chemin/vers/fichier/transport pour construire la base de données.

Postmap gère les formats dbm ou db (hash). En fonction des formats gérés par ton installation il produira l'un ou l'autre (ou spécifie le format que tu veux dans ta ligne de commande postmap (voir man postmap).

La liste des formats de bases de données gérés par ton système est listée par postconf -m

Mets le fichier produit par postmap dans la ligne transport_maps de ton main.cf avec la mention de son format.

par exemple :

transport_maps = hash:/chemin/vers/fichier/transport

Relance postfix

postfix reload

et teste :)

3.

Note bien que pour que celà fonctionne, il faut que ton serveur Postfix ne soit pas MX pour le nom de domaine "masociete.ma", sinon ton fournisseur va te renvoyer l'e-mail et tu vas faire de jolies boucles.


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Bonjour Dal,
j'ai bien testé ce que vous m'avez proposé mais ca ne marche toujours pas:
sur outlook j'ai les deux comptes configurés nom@masociete.ma et prenom.nom@masociete.ma.
j'ai trouvé un fichier transport dans /etc/postfix dans lequel j'ai ajouté mon adresse prenom.nom@masociete.ma smtp:webmail.masociété.ma (webmail.masocité.ma est l'adresse que j'utilise dans outlook).
j'envoie un email depuis nom@masociete.ma vers prenom.nom@masociete.ma et je reçoit l'erreur: 450 <prenom.nom@masociete.ma>: User unknown in local recipient table.

Merci pour votre aide.
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut kasnf,

Il ne suffit pas d'ajouter la ligne en question dans le fichier "transport", il faut générer, à partir de ce fichier le fichier de base de donnée utilisé par postfix avec l'instruction "postmap" comme indiqué dans mon message ci-dessus. Tu n'indiques pas si tu l'as fait. En supposant que ton installation gère le format "hash", la commande en question devrait te créer un fichier transport.db.

Il est alors référencé dans main.cf par la ligne :

transport_maps = hash:/etc/postfix/transport

(sans extension db, le format étant indiqué par le préfixe "hash")

Ensuite, s'agissant de "smtp:webmail.masociété.ma" comme indiqué dans mon message, c'est plutôt le serveur smtp de ton fournisseur que tu dois indiquer là (celui que tu mettais dans "relayhost"). Sinon tu n'es pas plus avancé.


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Salut Dal,
je vous assure que j'ai suivi vos instrtuctions à la lettre mais je n'arrive pas à envoyer vers l'extérieur, je reçoit l'erreur: User unknown in local recipient table.
que pensez-vous du message 3 et 4 ci-desus?
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut kasnf,

1.

Dans le fichier transport ta ligne "smtp:webmail.masociété.ma" est erronée car elle indique le nom d'hôte de ton serveur Postfix local (selon ma compréhension) et non le nom d'hôte du serveur smtp de ton fournisseur... ou alors quelque chose m'échappe.

je reçoit l'erreur: User unknown in local recipient table

C'est normal, vu que ton fichier transport renvoie l'e-mail localement.

2.

que pensez-vous du message 3 et 4 ci-desus?

2.1

Tu peux mettre toutes tes adresses dans ton serveur Postfix. Il te suffira de créer des alias pour qu'elles soient reconnues comme locales et tu laisses tomber les boites pop de ton fournisseur. L'enregistrement MX de ton nom de domaine masociete.ma devra pointer vers l'adresse IP publique de ton serveur Postfix qui devra être accessible à cette adresse sur le port 25 de l'extérieur.

Le désavantage est que si ton serveur Postfix est arrêté ou n'est plus connecté tu perds des e-mails.

2.2

L'autre solution envisagée en 4 suppose que tu changes le mode d'adressage des adresses internes, et que Postfix ne se reconnaisse destinataire que de intranet.macosiete.ma. C'est possible de fonctionner comme cela si tu rapatries les boites pop avec fetchmail et que tu affectes une boite pop à un utilisateur Unix.

C'est un peu dommage de procéder comme cela, et de devoir changer la façon dont les utilisateurs s'écrivent en interne, alors que Postfix t'offre la possibilité de jouer sur la sélection du transport avec la table transport_maps en fonction de l'adresse destinataire.


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Salut Dal,
l'adresse webmail.masociete.ma est bel et bien l'adresse de mon fournisseur, j'ai même remplacé cette adresse par l'adresse ip!

Vu que je reçoit l'erreur user unknown in local recipient table: dois-je créer un compte pour l'adresse extérieur prenom.nom@masociete.ma dans mon serveur postfix ou juste un alias? comment faire si c'est un alias?(excuse moi, je suis novice:-)

Je crois que le problème avec 2.2 est la réception et non l'envoi, car si j'arrive à bien configurer cela et que quand j'envoie un email à l'extérieur, mon postfix va l'envoyer au serveur externe, mais à la reception le serveur externe ne connait pas mon serveur postfix local et donc je doit me connecter au serveur externe pour lire mes emails externes. Sauf si je crée un compte du type prenom.nom dans mon serveur postfix local et que j'y rapatrie les emails de l'adresse externe et dans ce cas je me retrouve avec un serveur externe qui ne sert pas à grand chose sauf si c'est lui qui est connu à l'extérieur (c'est bien coté sécurité et aussi pour éviter ce que tu as dis: Le désavantage est que si ton serveur Postfix est arrêté ou n'est plus connecté tu perds des e-mails..).

Merci pour ton aide.
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut,

J'aimerai bien clarifier un point.

Tu disais dans ton message #8 :

(webmail.masocité.ma est l'adresse que j'utilise dans outlook)

et tu dis dans ton message #12 ci-dessus :

l'adresse webmail.masociete.ma est bel et bien l'adresse de mon fournisseur

Cette adresse n'est donc pas celle de ton serveur Postfix, mais celle du serveur smtp de ton fournisseur.

Vu que je reçoit l'erreur user unknown in local recipient table

Si tu fais tes tests d'envoi depuis des postes Windows avec le client de messagerie Outlook paramétré pour envoyer les e-mails sur cette adresse webmail.masociete.ma, alors tes e-mails ne passent jamais, en envoi, par ton serveur Postfix, et les éventuels messages d'erreurs que tu reçois ne proviennent pas de ton serveur Postfix.

Si tu veux utiliser ton serveur Postfix pour l'envoi des messages, tu dois mettre son adresse IP (l'adresse IP locale accessible par les postes) dans le client de messagerie en tant que serveur smtp d'envoi, afin que Postfix décide quoi faire de l'e-mail.

Il me semble que c'est ce que tu voulais faire quand tu disais dans ton message #1

tous les utilisateurs envoient leurs emails au serveur local, postfix devra vérifier si le destinataire existe en local alors c'est ok, il lui envoie l'email mais s'il ne le trouve pas, postfix devra l'envoyer au serveur distant


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Salut Dal,
en fait j'ai configuré outlook pour qu'il rapatrie mes emails sur les deux serveurs (iterne et externe).
quand je veux envoyer unemail, je dois préciser quel compte, et par conséquent, quel serveur utiliser.

en suivant tes instructions, j'envoie un email depuis outlook, en précisant le compte interne, vers mon adresse externe te je reçoit l'erreur que j'ai déjà signalé.
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Ok,

Peux-tu arrêter Postfix (postfix stop), le redémarrer en mode "verbeux" (/usr/sbin/postfix -v start), effectuer un nouveau test d'envoi et consulter /var/log/mail.log pour voir ce qui se passe ?


Dal
Messages postés
14
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2009
1
Salut Dal,
Désolé pour le retard causé par des vacances.

j'ai bien effectué ce que tu dis, le fichier /var/log/mail/info donne ce qui suit:
...
Dec 28 19:11:00 mail postfix/smtpd[1717]: connect from unknown[172.16.1.8]
Dec 28 19:11:00 mail postfix/smtpd[1717]: D82DB3A800D: client=unknown[172.16.1.8]
Dec 28 19:11:00 mail postfix/smtpd[1717]: D82DB3A800D: reject: RCPT from unknown[172.16.1.8]: 450 <prenom.nom@masociete.ma>: User unknown in local recipient table; from=<nom@masociete.ma> to=<prenom.nom@masociete.ma> proto=ESMTP helo=<INFOAK>
Dec 28 19:11:04 mail postfix/smtpd[1717]: disconnect from unknown[172.16.1.8]
...

c'est le message que je reçoit sur outlook quand j'envoie à une adresse externe.

qu'en pensez-vous?

j'ajoute que mon serveur postfix est sur un réseau local non routable, son accés à l'extérieur est assuré par un firewall/routeur (schéma classique).

Merci encore.
Messages postés
5578
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
937
Salut Kasnf,

Désolé, je n'ai pas vu ton message avant aujourd'hui.

Cela dit, je ne vois pas quel est le problème.

Dans la configuration actuelle "relayhost" y est-il ? Si oui, essaye de le retirer (commente le et relance postfix avec un postfix reload).

Si tu as vraiment ajouté une table transport_maps et qu'elle est correctement peuplée, compilée et référencée dans main.cf, elle devrait faire son travail :)


Dal
Messages postés
59
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
21 février 2011
14
comment configurer les post client linux et xp pour qu'il utlise un serveur postfix
pour mon serveur j'ai juste configurer le fichier main.cf c tout et installer imap (laisser comme il est)
es ce que c'est sufusant pour une configuration basique ( je prends pas en considiration la securité "spam")
?
merci