Problème de configuration Postfix

Bonjour,

Tout d’abord, je me présente, je suis Hugo Vacher alias Korri.

Je ne sait pas si le forum est approprié, mais je désespère alors je post ici.

Voila, j’ai depuis peu un serveur sous débian, etc j’ai quelques problèmes dans la configuration de postfix.

L’envoi de mail, le pop etc marche parfaitement, seulement impossible de recevoir de mail.

Voila le log qui s’affiche dans mail.info quand j’envoie un mail depuis gmail :

/var/log/mail.info

Mar 8 11:32:17 ks360526 postfix/smtpd[16281]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Mar 8 11:32:17 ks360526 postfix/smtpd[16281]: connect from mail-bw0-f163.google.com[209.85.218.163] Mar 8 11:32:17 ks360526 postfix/trivial-rewrite[16283]: warning: do not list domain korri.fr in BOTH mydestination and virtual_mailbox_domains Mar 8 11:32:17 ks360526 postfix/smtpd[16281]: 5495C2F5B3: client=mail-bw0-f163.google.com[209.85.218.163] Mar 8 11:32:17 ks360526 postfix/cleanup[16284]: 5495C2F5B3: message-id=<1abcb8400903080333n7fcd0acfmeb57b0f8a85548d@mail.gmail.com> Mar 8 11:32:17 ks360526 postfix/qmgr[15104]: 5495C2F5B3: from=<-----@gmail.com>, size=1824, nrcpt=1 (queue active) Mar 8 11:32:17 ks360526 postfix/trivial-rewrite[16283]: warning: do not list domain korri.fr in BOTH mydestination and virtual_mailbox_domains Mar 8 11:32:17 ks360526 postfix/local[16285]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Mar 8 11:32:17 ks360526 postfix/local[16285]: 5495C2F5B3: to=<xxxxx@korri.fr>, relay=local, delay=0.15, delays=0.13/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "xxxxx") Mar 8 11:32:17 ks360526 postfix/cleanup[16284]: 6C6BA2F5B5: message-id=<20090308103217.6C6BA2F5B5@mail.korri.fr> Mar 8 11:32:17 ks360526 postfix/qmgr[15104]: 6C6BA2F5B5: from=<>, size=3510, nrcpt=1 (queue active) Mar 8 11:32:17 ks360526 postfix/bounce[16286]: 5495C2F5B3: sender non-delivery notification: 6C6BA2F5B5 Mar 8 11:32:17 ks360526 postfix/qmgr[15104]: 5495C2F5B3: removed Mar 8 11:32:17 ks360526 postfix/smtp[16287]: 6C6BA2F5B5: to=<-----@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.79.114]:25, delay=0.39, delays=0.01/0.01/0.05/0.31, dsn=2.0.0, status=sent (250 2.0.0 OK 1236508439 24si3067131eyx.14) Mar 8 11:32:17 ks360526 postfix/qmgr[15104]: 6C6BA2F5B5: removed
Note : J’ai protégé les emails, xxxxx correspond à “admin” et ------ a mon login gmail d’où j’envoie le mail.

Je désespère de trouver d’ou ce problème vient…

Voila ma configuration postfix :

/var/postfix/main.cf

[code]
smtp_banner = $myhostname ESMTP (Debian / GNU)
smtpd_banner = $myhostname ESMTP (Debian / GNU)
biff = no
disable_vrfy_command = yes
smtpd_helo_required = yes

append_dot_mydomain = no

mydomain = korri.fr
myhostname = mail.korri.fr

myorigin = $mydomain

mydestination = $mydomain, $myhostname, localhost, localhost.$mydomain

relayhost =

mynetworks = 127.0.0.0/8
inet_interfaces = all

smtpd_sender_restrictions =
permit_mynetworks,
reject_unknown_sender_domain,
warn_if_reject reject_unverified_sender

smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient

smtpd_client_restrictions =
reject_unknown_client,
permit_mynetworks

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf, mysql:/etc/postfix/mysql-virtual_aliases_mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/spool/vmail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "Desole, la boite email de l’utilisateur est pleine. Veuillez re-essayer plus tard !"
virtual_overquota_bounce = yes[/code]

Merci d’avance pour vos réponses !

Personne ne peut m’aider ?

Hello,

Tout d’abord, donne nous quelques précisions…

D’après ce que je vois, ton domaine doit être accessible :

Odysseus-2001@Monstre:~$ dig @ns.kimsufi.com korri.fr MX +short
10 mail.korri.fr.

Odysseus-2001@Monstre:~$ host korri.fr
korri.fr has address 91.121.163.164

Mais pas de PTR visible :
Odysseus-2001@Monstre:~$ host 91.121.163.164
;; connection timed out; no servers could be reached
Odysseus-2001@Monstre:~$ dig @ns.kimsufi.com korri.fr PTR +short
Odysseus-2001@Monstre:~$

Le résultat est le même pour mail.korri.fr.

Je n’arrive pas non plus à faire un telnet sur le port 25, de l’extérieur :
Odysseus-2001@Monstre:~$ telnet 91.121.163.164 25
Trying 91.121.163.164…
(le port n’est pas ouvert sur le Firewall? ou plus simplement, cf. ma remarque suivante)

Enfin, cette configuration indique que tu n’écoutes qu’en local :
mynetworks = 127.0.0.0/8
inet_interfaces = all

Et en plus, en principe, quand il y a serveur de messagererie, il vaut mieux qu’il y ait un reverse-DNS d’installé (il me semble).

Donc, tu envoies ton message en étant en local? Tant qu’on y est, ton fichier hosts indique le nom de domaine korri.fr ? (En effet, la première chose qu’une machine regarde, pour la résolution de nom est le cache-DNS. Or, le contenu du hosts y est monté au démarrage de la machine. Si elle ne trouve pas son bonheur, elle ira chercher sa réponse auprès d’un serveur de nom de domaine).

Bonjour,

Merci pour ta réponse !

Alors je débute, donc PTR et autres c’est du chinois pour moi !

Mon host indique bien korri.fr :

127.0.0.1       localhost.localdomain localhost
91.121.163.164  ks360526.kimsufi.com
#Domaines :
91.121.163.164  belvisijc.fr
91.121.163.164  korri.fr
91.121.163.164  blog.korri.fr

# The following lines are desirable for IPv6 capable hosts
#(added automatically by netbase upgrade)
::1     ip6-localhost ip6-loopback
feo0::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

J’envoie mon mail depuis gmail dans le log (et je reçois un mail de postfix disant qu’il ne trouve pas l’user).

J’envoie aussi des mails depuis ma debian vers mon gmail et dans ce sens ça marche.

Je n’arrive juste pas a recevoir de mails sur ma débian…

Sinon je vais regarder pour le reverse DNS…

Bonne journée

Hello,

Le PTR : c’est l’entrée dans les RR, dans le fichier de zonefile, qui est utilisé pour la configuration du reverse-DNS. Sans Reverse de configuré, les mails issus d’un serveurs sont généralement bloqués car considéré comme étant du spam (l’origine du mail ne pouvant être correctement vérifié).

Toutefois, ce n’est pas toujours le cas.
Que tu puisses envoyer à partir du serveur est donc plausible.

Que son host, dans le fichier de configuration de postfix, soit bien indiqué, soit.

Mais s’il ne trouve pas ton utilisateur est un autre problème. Il peut être mal configuré. Pour recentrer le problème, teste localement ton utilisateur en te mailant à toi-même un mail, par exemple.

Pour cela :
telnet localhost 25
ehlo korri.fr (déjà tu verras si la config est ok ou non).
mail from:user@korri.fr
rcpt to:user@korri.fr
data
(tu terminera ensuite ton mail par un “.”)

Ensuite, tu vérifies le résultat. Ceci, si tu le fais en local, te permettra de vérifier ton user.

Quelques explications :
Effectuer un telnet korri.fr 25 (suivi des commandes ci-dessus, par exemple) te permettra de vérifier si la machine est joignable sur le smtp.
Quand au MX, il s’agit d’une entrée dans le RR du zonefile qui indique quel est le serveur utilisé pour la messagerie.

Par exemple :
caubin@man0:~$ dig google.fr MX +short
10 smtp3.google.com.
10 smtp4.google.com.
10 smtp1.google.com.
10 smtp2.google.com.

dig smtp3.google.com +short
64.233.183.25

En principe, pour qu’une requête de messagerie puisse trouver ton serveur de messagerie, il doit y avoir une entrée MX qui le lui permettra lorsqu’il cherchera à identifier la machine qui gère le smtp.

Autrement dit :
Requête => vérifie le solveur en local s’il trouve le nom de domaine (ND) => Si non, vérifie s’il y a un serveur DNS dans le réseau => si non, var interroger ton FAI, qui lui-même va aller voir du côté des serveurs ROOT => les serveurs ROOT vérifieront les informations indiqués par le Registrar => la requête sera renvoyé à l’hébergeur du nom de domaine => qui va vérifier l’entrée MX et sa correspondance (je shématise, mais c’est le principe). De là, la réponse à la requête de résolution pour le MX sera l’adresse IP de ta machine.

Cette réponse sera alors mise en cache dans le solveur.

Dans ton cas, tu as un MX :
caubin@man0:~$ dig korri.fr MX +short
10 mail.korri.fr.
caubin@man0:~$ dig mail.korri.fr +short
91.121.163.164

Donc, une requête devrait atteindre ta machine, ce que je confirme :
caubin@man0:~$ telnet korri.fr 25
Trying 91.121.163.164…
Connected to korri.fr.
Escape character is ‘^]’.
220 mail.korri.fr ESMTP (Debian / GNU)
(note qu’hier, un telnet n’était pas possible…).

Donc, il ne reste qu’un problème possible avec la configuration de ton utilisateur. Fais un test en local et donne nous le résultat :slightly_smiling:.

Bonjour,

Merci pour ta réponse !

Voila le resultat du telnet :

ks360526:/home/korri# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. 220 mail.korri.fr ESMTP (Debian / GNU) ehlo korri.fr 250-mail.korri.fr 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from:<admin@korri.fr> 250 2.1.0 Ok rcpt to:<admin@korri.fr> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Petit mail de test ! . 250 2.0.0 Ok: queued as 36E542F5AA

Aucun mail ne semble être arrivé…

Je desespere :’(

Pour recevoir un mail un reverse DNS n’est pas nécessaire, ton mail semble fonctionner:

[quote]francois@cerbere:~$ telnet korri.fr 25
Trying 91.121.163.164…
Connected to korri.fr.
Escape character is ‘^]’.
220 mail.korri.fr ESMTP (Debian / GNU)
helo franb@la
250 mail.korri.fr
rcpt to: user@korri.fr
503 5.5.1 Error: need MAIL command
mail from: fran.b@moi.la
250 2.1.0 Ok
rcpt to: user@korri.fr

550 5.1.1 user@korri.fr: Recipient address rejected: User unknown in local recipient table
500 5.5.2 Error: bad syntax
rcpt to: root@korri.fr
250 2.1.5 Ok
data
354 End data with .
test

.
250 2.0.0 Ok: queued as 8D13B2F5AA
quit
221 2.0.0 Bye
Connection closed by foreign host.
You have new mail in /var/mail/francois
francois@cerbere:~$ [/quote]

Vérifies que root a reçu un mail.

Nan, le reverse est (ou peut être) nécessaire dans le cas d’un envoie de mail à partir de ta machine. C’est normal : cela fonctionne ainsi pour éviter l’envoie de spams. Le principe étant de s’assurer que l’expéditeur d’un mail est bien celui qu’il prétend être, notamment => Un mail est reçu par un client. Le client va pouvoir comparer l’adresse IP de l’expéditeur et l’adresse IP que le client devrait voir normalement… Si cela ne correspond pas, c’est bloqué. Voilà pour le principe.

Mais si tu le fais en local, qu’importe.

Si tu envoie un mail de l’extérieur vers ton serveur, pas de pb. Pas de problème non plus, normalement, si tu le fais en local.

Comme le remarque fran, tu dois vérifier si root a reçu le mail. Tu dois vérifier tes logs.
Les mails envoyé par “admin” doivent être redirigé quelque part, puisqu’il n’y a pas d’erreur… Trouve le mail et tu sauras rapidement ce qui plante.

[quote=“fran.b”]Pour recevoir un mail un reverse DNS n’est pas nécessaire, ton mail semble fonctionner:

[quote]francois@cerbere:~$ telnet korri.fr 25
Trying 91.121.163.164…
Connected to korri.fr.
Escape character is ‘^]’.
220 mail.korri.fr ESMTP (Debian / GNU)
helo franb@la
250 mail.korri.fr
rcpt to: user@korri.fr
503 5.5.1 Error: need MAIL command
mail from: fran.b@moi.la
250 2.1.0 Ok
rcpt to: user@korri.fr

550 5.1.1 user@korri.fr: Recipient address rejected: User unknown in local recipient table
500 5.5.2 Error: bad syntax
rcpt to: root@korri.fr
250 2.1.5 Ok
data
354 End data with .
test

.
250 2.0.0 Ok: queued as 8D13B2F5AA
quit
221 2.0.0 Bye
Connection closed by foreign host.
You have new mail in /var/mail/francois
francois@cerbere:~$ [/quote]

Vérifies que root a reçu un mail.[/quote]

Aucun mail pour moi…

Comme tu peut le voir tu a reçu un mail en réponse, ce mail doit être le mail contenant l’erreur.

Je pense que le probleme se situe au niveau des utilisateurs virtuels que je gere avec mysql, postfix ne semble pas les rechercher dans la base de donnés…

Des idées ?

EDIT : Le reverse fonctionne me semble :

host 91.121.163.164 164.163.121.91.in-addr.arpa domain name pointer korri.fr.

Oublie le reverse, lol. Comme je t’ai dit et comme fran te l’a dit avant, dans le cas d’un mail envoyé localement, il n’a pas d’importance.
Cela étant, oui, le reverse est configuré (tant qu’à faire, autant le savoir).

Tu as un fichier “/etc/aliases”? C’est le fichier qui, nativement, contient les redirections
(mirabellug.org/docs/postfixf … /x110.html
et
linux-france.org/article/mai … onfig.html, si ça peut t’aider…).

Odysseus-2001@Monstre:/etc$ ls aliases*
aliases aliases.db

Odysseus-2001@Monstre:/etc$ cat aliases

/etc/aliases

(…)
root: christian, Masteradm01
clamav: root

Tu as quoi dedans, pour commencer?
Un postfix check te renvoie quoi?
Un mailq | grep admin ?
Un mailstat, peut-être?
Un mail -u admin ?

Je cherche a configurer postfix pour qu’il prene les utilisateur depuis la base mysql, aussi je n’utilise pas le fichier des alias don tu parle, j’au un table alias qui est liée grâce au fichier “mysql:/etc/postfix/mysql-virtual_aliases.cf”.

Voila le résultat des commande :
postfix check
=> RIEN
mailq | grep admin
=> RIEN
mailq
=> Mail queue is empty
mailstat
=> Most people don’t type their own logfiles; but, what do I care?
mail -u admin
=> Pas ed courrier pour admin

EDIT: Si je devais emmètre un hypothèse, je dirais qu’il ne prend pas mes users virtuels (virtual)

Hi,

Je ne connais pas la méthode que tu utilises…

Ceci étant clair, n’importe quelle requête mysql sont faite par un user. Le principe étant que le user interroge la base pour envoyer le message dans le répertoire du destinataire du message.

Or le user qui ferait la requête serait sans doute le user postfix.
Donc, à partir de là :

-Le user hypothétiquement postfix a-t-il le droit de requêter la table qui contient le ou les users postfix ? Existe-t-il bien, dans la database ? Si ça peut t’aider :

olange.developpez.com/articles/d … age=page_6

-Le fichier d’alias se situe-t-il bien à l’endroit indiqué dans la conf (mysql:/etc/postfix/mysql-virtual_aliases.cf") ? (Je me suis bien fait avoir, perso, avec l’aliases.db de postfix… l’était dans /etc et non pas dans /etc/postfix, ce qui fait que je l’avais doublement créé pour rien, à l’époque…)

Bonjour,

J’ai utilisé le tutoriel que tu présente pour mettre en place mon postfix !

Mon fichier d’alias est bien à l’endroit en question :

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_aliases.cf hosts = 127.0.0.1 user = postfix password = ******** dbname = postfix select_field = destination table = alias where_field = source additional_conditions = AND actif='1'

(Évidement le mot de passe est affiché à la place des *****)

Mais cette table c’est celle des alias (redirections vers les mailbox) :

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_mailboxes.cf hosts = 127.0.0.1 user = postfix password = ********* dbname = postfix select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') table = mailbox where_field = email additional_conditions = AND actif='1'

J’ai bien essayé de mettre un alias de admin@korri.fr , mais ça ne change rien

EDIT : VOILA LE CONTENU DE TOUT LES FICHIERS MYSQL :

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_aliases.cf hosts = 127.0.0.1 user = postfix password = *********** dbname = postfix select_field = destination table = alias where_field = source additional_conditions = AND actif='1'

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_aliases_mailbox.cf hosts = 127.0.0.1 user = postfix password = *********** dbname = postfix select_field = email table = mailbox where_field = email additional_conditions = AND actif='1'

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_domains.cf hosts = 127.0.0.1 user = postfix password = *********** dbname = postfix select_field = 'virtual' table = domain where_field = domain additional_conditions = AND actif='1'

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_mailboxes.cf hosts = 127.0.0.1 user = postfix password = *********** dbname = postfix select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') table = mailbox where_field = email additional_conditions = AND actif='1'

root@ks360526:/home/korri#cat /etc/postfix/mysql-virtual_mailbox_limit_maps.cf hosts = 127.0.0.1 user = postfix password = *********** dbname = postfix select_field = quota table = mailbox where_field = email

Et avec tu accèdes bien à la base et aux tables, en tant que postfix?

Oui ça fonctionne bien :

[code]korri@ks360526:~$ mysql -u postfix -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3385
Server version: 5.0.51a-24 (Debian)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use postfix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT * FROM mailbox;
±-----------------------±--------------±------------±------±------±-----±-----+
| email | password | name | quota | actif | imap | pop3 |
±-----------------------±--------------±------------±------±------±-----±-----+
| webmaster@korri.fr | dvrcdst6WykuQ | | 0 | 1 | 1 | 1 |
| webmaster@belvisijc.fr | zvV6dUfhds086 | | 0 | 1 | 1 | 1 |
| admin@korri.fr | qhlchIh8/4ygt | Hugo Vacher | 0 | 1 | 1 | 1 |
±-----------------------±--------------±------------±------±------±-----±-----+
3 rows in set (0.00 sec)
[/code]

ça vien d’ou ? :’(

2 minutes lol.

Ok,
Une fois dans la DB postfix, fais un show tables - bien sûr en tant qu’utilisateur mysql postfix. Autant tout vérifier, tant qu’on y est.

Ensuite, montre nous les droits de l’utilisateur postfix :
dev.mysql.com/doc/refman/5.0/fr/privileges.html

SHOW GRANTS FOR ‘postfix’@‘localhost’ ;

(n’étant pas un spé de mysql, je suppose que c’est la bonne commande).

Voila :

[code]root@ks360526:/home/korri#mysql -u postfix -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3516
Server version: 5.0.51a-24 (Debian)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use postfix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
±------------------+
| Tables_in_postfix |
±------------------+
| alias |
| domain |
| mailbox |
±------------------+
3 rows in set (0.00 sec)

mysql> show grants for ‘postfix’@’%’;
±-------------------------------------------------------------------------------------------------------+
| Grants for postfix@% |
±-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON . TO ‘postfix’@’%’ IDENTIFIED BY PASSWORD ‘DD613EDEKDGF898235E37C1725F123DQ591FF7EB’ |
| GRANT SELECT ON postfix.
TO ‘postfix’@’%’ |
±-------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
[/code]

Des pistes ?

Aucunne piste ??

Hello

Pardon Korri…
non, pour l’instant aucune piste, mais je n’ai pas du tout eu le temps de m’y repencher, ces derniers jours.

Je vais essayer de voir ça.

Juste un truc que j’ai oublié de te demander (je crois). Le contenu de tes tables? Il est conforme à ce qu’il devrait y avoir? la liste des utilisateurs postfix, ce genre de choses…

Oui les données doivent êtres conforme, voila ce que ça donne :

mysql> SELECT * FROM alias;
+--------+----------------+-------+
| source | destination    | actif |
+--------+----------------+-------+
| admin  | admin@korri.fr |     1 |
+--------+----------------+-------+
1 row in set (0.00 sec)

mysql> SELECT * FROM domain;
+--------------+-------+
| domain       | actif |
+--------------+-------+
| korri.fr     |     1 |
| belvisijc.fr |     1 |
+--------------+-------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM mailbox;
+------------------------+---------------+-------------+-------+-------+------+------+
| email                  | password      | name        | quota | actif | imap | pop3 |
+------------------------+---------------+-------------+-------+-------+------+------+
| webmaster@korri.fr     | dvrcDM86WykuQ |             |     0 |     1 |    1 |    1 |
| webmaster@belvisijc.fr | zvV6REyiSaIo6 |             |     0 |     1 |    1 |    1 |
| admin@korri.fr         | qh/23298/4ytk | Hugo Vacher |     0 |     1 |    1 |    1 |
+------------------------+---------------+-------------+-------+-------+------+------+
3 rows in set (0.00 sec)

Voila, merci pour ton aide !