Postfix ... beaucoup de choses m'échappent

Postfix ... beaucoup de choses m'échappent - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 19-10-2005 à 21:15:57    

J'essaye en vain de faire fonctionner Postfix couplé avecune base Mysql en utilisant des boîtes à lettres virtuelles.
Pour ce faire, j'ai utilisé le tuto http://minilien.com/?rxfQzGDBbO
 
J'ai un domaine que l'on nommera mon.domaine.org.
J'ai créé via postfixadmin une boîte aux lettres virtuelle (compte non Unix) que l'on nommera toto@mon.domaine.org
 
Les enregistrements dans la base sont corrects. L'utilisateur postfix y accède sans erreurs.
 
J'ai défini le répertoire de base pour toutes les boîtes aux lettres virtuelles dans le fichier de configuration /etc/postfix/main.cf avec virtual_mailbox_base = /usr/local/virtual
J'ai bien dans ce répertoire la dossier toto@mon.domaine.org qui a été créé après l'envoi d'un premier mail à destination de  toto@mon.domaine.org.
 
Lorsque j'envoie un mail via le réseau Internet. Je reçois bien l'email à destination de toto@mon.domaine.org. Cet email reçu est bien stocké dans /usr/local/virtual
 
Or mon MUA ne consulte pas /usr/local/virtual et je ne parviens pas à visualiser le contenu des emails reçus.
 
Je demande de l'aide .... !!!! :'(
 
Il y a certainement un pb de configuration mais je ne sais pas où.
 
 
Merci

Reply

Marsh Posté le 19-10-2005 à 21:15:57   

Reply

Marsh Posté le 19-10-2005 à 22:32:29    

quel solution utilise tu pour récupérer tes mails via ton mua ? pop, imap ?

Reply

Marsh Posté le 19-10-2005 à 22:58:37    

J'ai essayé avec pop et imap. J'obtiens le même résultat.

Reply

Marsh Posté le 19-10-2005 à 23:18:16    

y a t'il quelque chose qui apparait dans les logs postfix au moment de la connexion pop par exemple ?
 
Tu pourrais tester une connexion pop en local deja, pour voir ce que ca retourne. Pour info, au cas ou tu ne connaitrais pas les commandes :
 

Code :
  1. $ telnet localhost 110
  2. Trying xxx.xxx.xxx.xxx...
  3. Connected to hostname.
  4. Escape character is '^]'.
  5. +OK Hello there.
  6. user user@domain.tld
  7. +OK Password required.
  8. pass tonpass
  9. +OK logged in.
  10. list
  11. +OK POP3 clients that break here, they violate STD53.
  12. ...
  13. quit


 
Si quelque chose se passe mal, ca apparaitra ici

Reply

Marsh Posté le 20-10-2005 à 09:28:57    

Avec 192.168.0.1 (machine serveur) et 192.168.0.2 (machine serveur) ...
 
$ telnet 192.168.0.1 110
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
+OK Hello there.
user toto
+OK Password required.
pass ******
-ERR Login failed.
Connection closed by foreign host.
 
$ tail -f /var/log/mail.log
 
Oct 20 09:24:52 server courierpop3login: Connection, ip=[:ffff:192.168.0.2]
Oct 20 09:25:12 server courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.2], command=USER
Oct 20 09:25:16 server courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.2], command=PASS
Oct 20 09:25:16 server courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.2], username=toto
Oct 20 09:25:16 server courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.2], password=******
Oct 20 09:25:16 server courierpop3login: authdaemon: starting client module
Oct 20 09:25:17 server courierpop3login: authdaemon: REJECT
Oct 20 09:25:22 server courierpop3login: LOGIN FAILED, ip=[:ffff:192.168.0.2]


Message édité par sneakz le 20-10-2005 à 09:30:14
Reply

Marsh Posté le 20-10-2005 à 09:34:57    

donc c'est dans le authdaemonrc que quelque chose ne vas pas ... Voici ce que j'ai dans ma conf, et qui fonctionne.
 
dans le fichier /etc/courier/authdaemonrc :

Code :
  1. authmodulelist="authmysql authpam"


 
dans le fichier /etc/courier/authmysqlrc, apres les parametres de connexion à la base :

Code :
  1. MYSQL_SELECT_CLAUSE SELECT username, \
  2. ENCRYPT(password), \
  3. password, \
  4. 1002, \
  5. 1002, \
  6. '/usr/local/virtual', \
  7. CONCAT(username, '/'), \
  8. 0, \
  9. '' \
  10. FROM mailbox \
  11. WHERE username = '$(local_part)@$(domain)'


 
Il faut adapter le UID et GID, ainsi que le répertoire et le nom des champs

Reply

Marsh Posté le 20-10-2005 à 11:10:53    

dans mon fichier /etc/courier/authdaemonrc :  
 
authmodulelist="authcustom authuserdb authmysql authpam"
 
dans mon fichier /etc/courier/authmysqlrc (assez différent du tien):
 
#DEFAULT_DOMAIN         mon.domaine.org
#MYSQL_CRYPT_PWFIELD    password
MYSQL_CLEAR_PWFIELD     password
MYSQL_DATABASE          postfix
MYSQL_GID_FIELD         104
MYSQL_HOME_FIELD        '/usr/local/virtual'
MYSQL_LOGIN_FIELD       username
MYSQL_MAILDIR_FIELD     maildir
MYSQL_NAME_FIELD        name
MYSQL_OPT               0
MYSQL_PASSWORD          postfix
#MYSQL_PORT             0
#MYSQL_QUOTA_FIELD      quota
MYSQL_SERVER            localhost
#MYSQL_SOCKET           /var/mysql/mysql.sock
MYSQL_UID_FIELD         104
MYSQL_USERNAME          postfix
MYSQL_USER_TABLE        mailbox
#MYSQL_WHERE_CLAUSE     server='mailhost.example.com'
 
 
UID et GID correspondent bien à postfix
 
Ton avis ?


Message édité par sneakz le 20-10-2005 à 11:11:39
Reply

Marsh Posté le 20-10-2005 à 11:46:45    

oui, ceci est correct, mais il faut que tu ajoute le bloc que je t'ai donné a la fin du fichier /etc/courier/authmysqlrc, puis relance courier-auth
 
En parallele, tu peux activer le log sur le serveur MySQL et tenter une connexion POP et regarder les logs MySQL en meme temps pour voir si la requete d'authentification passe bien..

Reply

Marsh Posté le 20-10-2005 à 11:49:40    

ok je vais suivre tes indications

Reply

Marsh Posté le 20-10-2005 à 12:14:42    

Avec le nouveau bloc ajouté ...
 
$ telnet 192.168.0.1 110
 

Code :
  1. Trying 192.168.0.1...
  2. Connected to 192.168.0.1.
  3. Escape character is '^]'.
  4. +OK Hello there.
  5. user toto
  6. +OK Password required.
  7. pass ******
  8. -ERR Login failed.
  9. Connection closed by foreign host.


 
# tail -f  /var/log/mysql/mysql.log

Code :
  1. 051020 12:09:38       4 Query       INSERT INTO logs
  2.       (host, facility, priority, level, tag, datetime, program, msg)
  3.       VALUES ( 'server', 'mail', 'debug', 'debug', '17', '2005-10-20 12:09:38',
  4.       'courierpop3login', 'courierpop3login: Connection, ip=[:ffff:192.168.0.1]' )
  5. 051020 12:09:47       4 Query       INSERT INTO logs
  6.       (host, facility, priority, level, tag, datetime, program, msg)
  7.       VALUES ( 'server', 'mail', 'info', 'info', '16', '2005-10-20 12:09:47',
  8.       'courierpop3login', 'courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.1], command=USER' )
  9. 051020 12:09:51       4 Query       INSERT INTO logs
  10.       (host, facility, priority, level, tag, datetime, program, msg)
  11.       VALUES ( 'server', 'mail', 'info', 'info', '16', '2005-10-20 12:09:51',
  12.       'courierpop3login', 'courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.1], command=PASS' )
  13.                       4 Query       INSERT INTO logs
  14.       (host, facility, priority, level, tag, datetime, program, msg)
  15.       VALUES ( 'server', 'mail', 'info', 'info', '16', '2005-10-20 12:09:51',
  16.       'courierpop3login', 'courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.1], username=toto' )
  17.                       4 Query       INSERT INTO logs
  18.       (host, facility, priority, level, tag, datetime, program, msg)
  19.       VALUES ( 'server', 'mail', 'info', 'info', '16', '2005-10-20 12:09:51',
  20.       'courierpop3login', 'courierpop3login: LOGIN: DEBUG: ip=[:ffff:192.168.0.1], password=******' )
  21.                       4 Query       INSERT INTO logs
  22.       (host, facility, priority, level, tag, datetime, program, msg)
  23.       VALUES ( 'server', 'mail', 'debug', 'debug', '17', '2005-10-20 12:09:51',
  24.       'courierpop3login', 'courierpop3login: authdaemon: starting client module' )
  25.                       4 Query       INSERT INTO logs
  26.       (host, facility, priority, level, tag, datetime, program, msg)
  27.       VALUES ( 'server', 'mail', 'debug', 'debug', '17', '2005-10-20 12:09:51',
  28.       'courierpop3login', 'courierpop3login: authdaemon: TEMPFAIL - no more modules will be tried' )
  29. 051020 12:09:53       4 Query       INSERT INTO logs
  30.       (host, facility, priority, level, tag, datetime, program, msg)
  31.       VALUES ( 'server', 'syslog', 'notice', 'notice', '2d', '2005-10-20 12:09:53',
  32.       'syslog-ng', 'syslog-ng[494]: STATS: dropped 0' )
  33. 051020 12:09:56       4 Query       INSERT INTO logs
  34.       (host, facility, priority, level, tag, datetime, program, msg)
  35.       VALUES ( 'server', 'mail', 'err', 'err', '13', '2005-10-20 12:09:56',
  36.       'courierpop3login', 'courierpop3login: LOGIN FAILED, ip=[:ffff:192.168.0.1]' )


Message édité par sneakz le 20-10-2005 à 12:16:26
Reply

Marsh Posté le 20-10-2005 à 12:14:42   

Reply

Marsh Posté le 20-10-2005 à 12:30:04    

tes users sont de la forme toto ou toto@domain.tld ? si c'est sous la forme toto@domain.tld, alors le login doit etre de cette forme egalement. C'est du moins ce qu'attend la requete SQL :
 

Code :
  1. WHERE username = '$(local_part)@$(domain)'

Reply

Marsh Posté le 20-10-2005 à 13:07:57    

Mes users sont sous la forme toto@mon.domaine.org.
 
# mysql -D postfix -upostfix -ppostfix -h127.0.0.1
mysql> select * from mailbox;
 

Code :
  1. +----------------------------+-----------+------+-----------------------------+-------+-----------------+---------------------+---------------------+--------+
  2. | username                   | password  | name | maildir                     | quota | domain          | created             | modified            | active |
  3. +----------------------------+-----------+------+-----------------------------+-------+-------------   -+---------------------+---------------------+--------+
  4. | toto@mon.domaine.org       | *****     |      | toto@mon.domaine.org/       |     0 | mon.domaine.org | 2005-10-17 14:38:26 | 2005-10-17 16:57:32 |      1 |
  5. +----------------------------+-----------+------+-----------------------------+-------+-----------------+---------------------+---------------------+--------+
  6. 2 rows in set (0.00 sec)


 
Avec user toto@mon.domaine.org, j'obtiens également un LOGIN FAILED
 
A noter que password dans Mysql est en clair.


Message édité par sneakz le 20-10-2005 à 13:09:55
Reply

Marsh Posté le 20-10-2005 à 14:10:37    

si tu as bien desactivé le chroot dans le fichier master.cf de postfix, a priori il n'y a pas de raison que ca coince :/

Reply

Marsh Posté le 20-10-2005 à 14:48:50    

Tout semble ok du côté du chroot non ?
 

Code :
  1. # ==========================================================================
  2. # service type  private unpriv  chroot  wakeup  maxproc command + args
  3. #               (yes)   (yes)   (yes)   (never) (100)
  4. # ==========================================================================
  5. smtp      inet  n       -       n       -       -       smtpd
  6. #submission inet n      -       -       -       -       smtpd
  7. #       -o smtpd_etrn_restrictions=reject
  8. #628      inet  n       -       -       -       -       qmqpd
  9. pickup    fifo  n       -       -       60      1       pickup
  10. cleanup   unix  n       -       -       -       0       cleanup
  11. qmgr      fifo  n       -       -       300     1       qmgr
  12. #qmgr     fifo  n       -       -       300     1       oqmgr
  13. rewrite   unix  -       -       -       -       -       trivial-rewrite
  14. bounce    unix  -       -       -       -       0       bounce
  15. defer     unix  -       -       -       -       0       bounce
  16. trace     unix  -       -       -       -       0       bounce
  17. verify    unix  -       -       -       -       1       verify
  18. flush     unix  n       -       -       1000?   0       flush
  19. proxymap  unix  -       -       n       -       -       proxymap
  20. smtp      unix  -       -       -       -       -       smtp
  21. relay     unix  -       -       -       -       -       smtp
  22. #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
  23. showq     unix  n       -       -       -       -       showq
  24. error     unix  -       -       -       -       -       error
  25. local     unix  -       n       n       -       -       local
  26. virtual   unix  -       n       n       -       -       virtual
  27. lmtp      unix  -       -       n       -       -       lmtp
  28. anvil     unix  -       -       n       -       1       anvil

Reply

Marsh Posté le 20-10-2005 à 14:49:55    

l'ideal est de passer toutes les valeurs en n
 

Code :
  1. # ==========================================================================
  2. # service type  private unpriv  chroot  wakeup  maxproc command + args
  3. #               (yes)   (yes)   (yes)   (never) (50)
  4. # ==========================================================================
  5. smtp      inet  n       -       n       -       -       smtpd
  6. #628      inet  n       -       n       -       -       qmqpd
  7. pickup    fifo  n       -       n       60      1       pickup
  8. cleanup   unix  n       -       n       -       0       cleanup
  9. qmgr      fifo  n       -       n       300     1       qmgr
  10. #qmgr     fifo  n       -       n       300     1       nqmgr
  11. rewrite   unix  -       -       n       -       -       trivial-rewrite
  12. bounce    unix  -       -       n       -       0       bounce
  13. defer     unix  -       -       n       -       0       bounce
  14. flush     unix  n       -       n       1000?   0       flush
  15. smtp      unix  -       -       n       -       -       smtp
  16. showq     unix  n       -       n       -       -       showq
  17. error     unix  -       -       n       -       -       error
  18. local     unix  -       n       n       -       -       local
  19. virtual   unix  -       n       n       -       -       virtual
  20. lmtp      unix  -       -       n       -       -       lmtp
  21. lmtp-amavis unix        -       -       n       -       40      lmtp -o smtp_data_done_timeout=1200

Reply

Marsh Posté le 20-10-2005 à 15:11:17    

Je suis dsl mais même avec l'ensemble des valeurs passés en n, cela ne marche pas.

Reply

Marsh Posté le 20-10-2005 à 21:43:25    

bon bah désolé mais la comme ca ... je vois pas :/

Reply

Marsh Posté le 21-10-2005 à 13:20:07    

merci syl94 pour ton aide.
Je reste coincé. J'ai posté sur http://forums.high5.net/ mais pas de réponse.

Reply

Marsh Posté le 22-10-2005 à 09:38:13    

Tout fonctionne correctement. Les heures passées à solutionner le pb m'auront permis également de me plonger dans le fonctionnement des requêtes Mysql.
 
Après une modif du fichier de config de postfix (main.cf)
 

Code :
  1. #local_transport = virtual


 
J'ai commenté local_transport
 
Voici le fichier /etc/courier/authmysqlrc qui va bien
 

Code :
  1. MYSQL_SERVER            127.0.0.1
  2. MYSQL_USERNAME          postfix
  3. MYSQL_PASSWORD          postfix
  4. MYSQL_PORT              0
  5. MYSQL_OPT               0
  6. MYSQL_DATABASE          postfix
  7. MYSQL_USER_TABLE        mailbox
  8. DEFAULT_DOMAIN          mon.domaine.org
  9. MYSQL_LOGIN_FIELD       username
  10. MYSQL_CLEAR_PWFIELD     password
  11. MYSQL_UID_FIELD         104
  12. MYSQL_GID_FIELD         104
  13. MYSQL_HOME_FIELD        '/usr/local/virtual'
  14. MYSQL_MAILDIR_FIELD     maildir
  15. MYSQL_NAME_FIELD        name


 
J'ai laissé les valeurs passées à n dans master.cf


Message édité par sneakz le 22-10-2005 à 09:41:19
Reply

Marsh Posté le 06-11-2005 à 15:13:42    

A nouveau cela ne fonctionne pas.
 
J'ai voulu corriger un pb cf post :
http://forum.hardware.fr/hardwaref [...] 3216-1.htm
 
Voilà que je ne reçois plus d'email.
 
J'ai modifié main.cf :
 
transport_maps = hash:/etc/postfix/transport
 
J'ai édité le fichier  /etc/postfix/transport
 
J'ai créé la table :
postmap /etc/postfix/transport
 
J'ai rechargé la config :
 
/etc/init.d/postfix reload
 
Bon entre temps g installé clamav et amavis
 
De plus je reçois bien des messages en passant par mon serveur SMTP :
 
bibi@nomdedomaine.fr écrit à pseudo@monnomdedomaine.fr (hôte virtuel) via mon serveur SMTP.
pseudo@monnomdedomaine.fr reçoit bien le message de bibi@nomdedomaine.fr
 
Si bibi@nomdedomaine.fr utilise le serveur SMTP de son FAI, pseudo@monnomdedomaine.fr (hôte virtuel) ne reçoit pas de message.
 
Voilà que je ne reçois plus d'email. Je peux envoyé mais pas recevoir ..
 
 
HELP HELP HELP


Message édité par sneakz le 06-11-2005 à 16:37:05
Reply

Sujets relatifs:

Leave a Replay

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