Pages : 1
#1 Le 10/02/2008, à 17:00
- jak0lantash
[RESOLU][Courier][MySQL]Echec de connexion à imap
Bonjour,
J'aurai besoin d'un peu d'aide pour la configuration d'un serveur Courier. J'ai déjà installé PostFix, qui fonctionne parfaitement (c'est déjà ça ^^).
J'ai suivi le tuto : http://doc.ubuntu-fr.org/serveur/postfix_mysql_tls_sasl
J'ai une configuration un peu particulière. Mais le problème que je rencontre m'est totalement incompréhensible. J'ai un echec authentification, mais surtout, cette erreur est déclenchée avant même que courier n'exécute la requête SQL...
Pour me logs, dans /var/log/syslog :
Feb 10 16:02:30 sd-**** imapd: Connection, ip=[::ffff:88.**.**.**]
Feb 10 16:02:31 sd-**** imapd: LOGIN FAILED, user=utilisateur***, ip=[::ffff:88.**.**.**]
Feb 10 16:02:31 sd-**** imapd: authentication error: Input/output error
Dans /var/log/mysql/mysql.log :
080210 16:02:31 672 Connect userbdd@localhost on
672 Init DB tablebdd
Ce que je ne comprend pas c'est pourquoi est ce que l'erreur est déclenchée avant que la requête soit lancée sur le serveur.
Si quelqu'un pouvait m'aider svp... Merci d'avance
Quand je fais un telnet sur le serveur :
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THRE
AD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyr
ight 1998-2005 Double Precision, Inc. See COPYING for distribution information.
0001 LOGIN ****** ******
* BYE Temporary problem, please try again later
Perte de la connexion à l'hà´te.
Dernière modification par jak0lantash (Le 10/07/2008, à 00:33)
Hors ligne
#2 Le 10/02/2008, à 21:15
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Ca inspire personne ??? :(
Hors ligne
#3 Le 10/02/2008, à 21:17
- toniotonio
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
fais voir la conf
Tutoriaux Postfix sur www.starbridge.org/spip
Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Hors ligne
#4 Le 10/02/2008, à 22:33
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
fais voir la conf
Ca risque d'être un peu compliqué mais soit ^^
Par contre, je peux pas la récupérer tout de suite, je poste ça dès que je peux repasser sur le lien Internet nominal chez moi...
Hors ligne
#5 Le 12/02/2008, à 06:33
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
root@sd-****:/etc/courier# cat authdaemonrc
authmodulelist="authmysql"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""
_
root@sd--****:/etc/courier# cat authmodulelist
authdaemon
_
root@sd-****:/etc/courier# cat authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME ********
MYSQL_PASSWORD ********
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE ********
MYSQL_USER_TABLE user
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD "********"
MYSQL_MAILDIR_FIELD maildir
MYSQL_SELECT_CLAUSE SELECT CONCAT(********,'@',********) AS 'username', CONCAT('{MD5}', ********) AS 'clearpw', '5000' AS 'uid', '5000' AS 'gid', '/********/' AS 'home', CONCAT(********,'@',********,'/') AS 'maildir', ******** AS 'quota', CONCAT(********,' ',********) AS 'fullname', '' FROM ******** INNER JOIN ******** ON ********=********;
_
root@sd-****:/etc/courier# cat imapd
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=imapd"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_ACL=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=65536
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES
MAILDIRPATH=Maildir
_
root@sd-****:/etc/courier# cat imapd.cnf
RANDFILE = /usr/lib/courier/imapd.rand
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=US
ST=NY
L=New York
O=Courier Mail Server
OU=Automatically-generated IMAP SSL key
CN=localhost
emailAddress=*******
[ cert_type ]
nsCertType = server
_
root@sd-****:/etc/courier# cat imapd-ssl
SSLPORT=993
SSLADDRESS=0
SSLPIDFILE=/var/run/courier/imapd-ssl.pid
SSLLOGGEROPTS="-name=imapd-ssl"
IMAPDSSLSTART=YES
IMAPDSTARTTLS=YES
IMAP_TLS_REQUIRED=0
COURIERTLS=/usr/bin/couriertls
TLS_PROTOCOL=SSL3
TLS_STARTTLS_PROTOCOL=TLS1
TLS_CERTFILE=/etc/courier/imapd.pem
TLS_VERIFYPEER=NONE
TLS_CACHEFILE=/var/lib/courier/couriersslcache
TLS_CACHESIZE=524288
MAILDIRPATH=Maildir
Hors ligne
#6 Le 12/02/2008, à 08:14
- toniotonio
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
fais un
ls -la /var/run/courier/authdaemon/
puis un
authtest user@domain.com
autre question: pourquoi as tu un MYSQL_SELECT_CLAUSE a la fin du authmysqlrc ?
Tutoriaux Postfix sur www.starbridge.org/spip
Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Hors ligne
#7 Le 12/02/2008, à 09:25
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Pour les commandes, je te donne le résultat dès que j'ai accès au serveur. Et le MYSQL_SELECT_CLAUSE, c'est parce que je dois m'intégrer dans une architecture BDD existante. Je ne peux pas me contenter des tables de bases pour la gestion des utilisateurs virtuels. Quoiqu'il en soit, la requête n'est même pas exécutée (toutefois c'est vrai que je n'ai pas testé Courier avec une archi simple)...
Hors ligne
#8 Le 12/02/2008, à 17:56
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
root@sd-****:~# ls -la /var/run/courier/authdaemon/
total 4
drwxr-xr-x 2 daemon daemon 100 2008-02-10 15:50 .
drwxr-xr-x 4 daemon daemon 240 2008-02-10 15:50 ..
-rw-r--r-- 1 root root 6 2008-02-10 15:50 pid
-rw------- 1 root root 0 2008-01-31 00:09 pid.lock
srwxrwxrwx 1 root root 0 2008-02-10 15:50 socket
_
root@sd-****:~# authtest utilisateur@*mondomaine*.eu
ERR: authdaemon: s_connect() failed: Connection refused
Authentication FAILED: Illegal seek
Hors ligne
#9 Le 12/02/2008, à 23:32
- toniotonio
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
le pb semble provenir du authmysqlrc
essaye avec un fichier sans la clause
Tutoriaux Postfix sur www.starbridge.org/spip
Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Hors ligne
#10 Le 13/02/2008, à 03:00
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
le pb semble provenir du authmysqlrc
essaye avec un fichier sans la clause
Ok, je vais essayer ça, mais la requête n'est même pas exécutée (puisqu'elle n'apparaît pas dans les logs MySQL).
Hors ligne
#11 Le 13/02/2008, à 03:42
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Avec la config par défaut du tuto, ça marche bien :
root@sd-****:~# authtest utilisateur@domain.tld
Authentication succeeded.
Authenticated: utilisateur@domain.tld (uid 5000, gid 5000)
Home Directory: /home/vmail
Maildir: utilisateur@domain.tld/
Quota: (none)
Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM.
Cleartext Password: (none)
Options: (none)
Y me reste plus qu'a refaire du step by step pour réadapter et voir o๠ça coince...
Hors ligne
#12 Le 13/02/2008, à 05:15
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Bon, ben après tests. Il s'avère que ça marche bien, mais dès que j'active la directive MYSQL_SELECT_CLAUSE, ça ne marche plus, et j'obtients un Input/Output error (pourtant la requête est bonne et elle est même exécutée...
Premier test, sans MYSQL_SELECT_CLAUSE :
root@sd-****:/etc/courier# cat authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME bddtempuser
MYSQL_PASSWORD bddtemppass
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE bddtemp
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
#MYSQL_SELECT_CLAUSE SELECT username, password, "5000" AS 'uid', "5000" AS 'gid', "/home/vmail" AS 'home', name, maildir, quota FROM mailbox WHERE username="$(local_part)@$(domain)"
L'authentif fonctionne bien :
root@sd-****:~# authtest utilisateur@domain.tld
Authentication succeeded.
Authenticated: utilisateur@domain.tld (uid 5000, gid 5000)
Home Directory: /home/vmail
Maildir: utilisateur@domain.tld/
Quota: 0
Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM.
Cleartext Password: (none)
Options: (none)
La requête SQL exécutée est (elle fonctionne bien sous mysql-client) :
SELECT username, password, "", 5000, 5000, "/home/vmail", maildir, quota, name, "" FROM mailbox WHERE username = "utilisateur@domain.tld"
Quand je définit la directive MYSQL_SELECT_CLAUSE :
root@sd-****:/etc/courier# cat authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME bddtempuser
MYSQL_PASSWORD bddtemppass
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE bddtemp
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_SELECT_CLAUSE SELECT username, password, "5000" AS 'uid', "5000" AS 'gid', "/home/vmail" AS 'home', name, maildir, quota FROM mailbox WHERE username="$(local_part)@$(domain)"
Ca ne fonctionne pas, j'ai l'erreur :
root@sd-****:~# authtest utilisateur@domain.tld
Authentication FAILED: Input/output error
La requête SQL exécutée est (elle fonctionne bien sous mysql-client) :
SELECT username, password, "5000" AS 'uid', "5000" AS 'gid', "/home/vmail" AS 'home', name, maildir, quota FROM mailbox WHERE username="utilisateur@domain.tld"
Hors ligne
#13 Le 13/02/2008, à 05:46
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Ayé j'ai trouvé !!! :D:mad::D
Merci en tout cas pour toute ton aide et tes pistes !!
En fait, c'est une histoire de position des valeurs retournées par la requête !
Y a un champ que j'avais pas, que j'ai remplacé par "" AS 'unknow' et ça marche !!!
root@sd-****:/etc/courier# cat authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME bddtempuser
MYSQL_PASSWORD bddtemppass
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE bddtemp
MYSQL_SELECT_CLAUSE SELECT CONCAT(`mailbox`.`username`,'@',`domain`.`domain`) AS 'username', \
`mailbox`.`password` AS 'password', \
"" AS 'unknow', \
"5000" AS 'uid', \
"5000" AS 'gid', \
"/home/vmail" AS 'home', \
`mailbox`.`maildir`, \
`mailbox`.`quota`, \
`mailbox`.`name` \
FROM `mailbox` INNER JOIN `domain` \
ON `mailbox`.`domain`=`domain`.`id` \
WHERE CONCAT(`mailbox`.`username`,'@',`domain`.`domain`)="$(local_part)@$(domain)" \
AND `mailbox`.`active`='1' \
AND `domain`.`active`='1' \
LIMIT 1
L'authentif est OK :
root@sd-****:~# authtest utilisateur@domain.tld
Authentication succeeded.
Authenticated: utilisateur@domain.tld (uid 5000, gid 5000)
Home Directory: /home/vmail
Maildir: utilisateur@domain.tld/
Quota: 0
Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM.
Cleartext Password: (none)
Options: (none)
Et la requête exécutée est bien :
SELECT CONCAT(`mailbox`.`username`,'@',`domain`.`domain`) AS 'username', `mailbox`.`password` AS 'password', "" AS 'unknow', "5000" AS 'uid', "5000" AS 'gid', "/home/vmail" AS 'home', `mailbox`.`maildir`, `mailbox`.`quota`, `mailbox`.`name`
FROM `mailbox` INNER JOIN `domain` ON `mailbox`.`domain`=`domain`.`id`
WHERE CONCAT(`mailbox`.`username`,'@',`domain`.`domain`)="utilisateur@domain.tld" AND `mailbox`.`active`='1' AND `domain`.`active`='1'
LIMIT 1
Je refais la conf comme avant, et si ça marche, je tagg le sujet en résolu...
Dernière modification par jak0lantash (Le 13/02/2008, à 07:32)
Hors ligne
#14 Le 13/02/2008, à 06:56
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
J'ai une petite question cependant. Pour l'encryptage du mot de passe, je souhaite utilisé MD5. Toutefois, j'éprouve quelques difficultés à mettre en place cette utilisation.
Chez moi, les MD5 ressemble à d41d8cd98f00b204e9800998ecf8427e
Pourtant quand j'utilise userdbpw -md5, ça me génère un $1$0p1dyH39$OoiR4E6OFQ/Y7iJQCFb5K0
Avec le premier, impossible de se connecter, avec le deuxième ça marche :/
Donc, c'est lequel qui est en MD5 ????
Serait-il possible de convertir (simplement) le e54cfb3714f76cedd4b27889e1f6a174 en $1$0p1dyH39$OoiR4E6OFQ/Y7iJQCFb5K0 ???
NB : Le champ que je qualifiais de "unknow", c'est le CLEAR_PASSWORD_FIELD...
Dernière modification par jak0lantash (Le 13/02/2008, à 10:21)
Hors ligne
#15 Le 13/02/2008, à 08:23
- toniotonio
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
le "vrai" md5 commence par $1$
Tutoriaux Postfix sur www.starbridge.org/spip
Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Hors ligne
#16 Le 13/02/2008, à 08:27
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
le "vrai" md5 commence par $1$
OK merci, mais :
Serait-il possible de convertir (simplement) le e54cfb3714f76cedd4b27889e1f6a174 en $1$0p1dyH39$OoiR4E6OFQ/Y7iJQCFb5K0 ???
Dernière modification par jak0lantash (Le 13/02/2008, à 10:19)
Hors ligne
#17 Le 18/02/2008, à 12:06
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
J'en conclu qu'il ne dois pas y avoir de solutions...
Hors ligne
#18 Le 19/02/2008, à 16:12
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
J'ai finalement réussi à obtenir un élément de réponse.
En fait, c'est plus un salt crypt de md5 que du md5...
Si tu prend la chaà®ne : $1$6NjG3t8G$rl8LR9kxqsuOnkTRCV8wh0
Les $ sont en faite des balises permettant de séparer les paramètres.
Le premier paramètre, ici 1, indique que la fonction de hash utilisée est MD5 (1->md5, 2a->blowfish)
Le second paramètre, ici 6NjG3t8G, indique la chaà®ne de salt.
Le dernier paramèter, ici rl8LR9kxqsuOnkTRCV8wh0, est résultat du cryptage.
J'ai réussit à obtenir ce même résultat en utilisant la fonction PHP :
crypt($str, $salt)
Un exemple :
chaine = string
sel = $1$salt
cryptage = crypt("string", "$1$salt") = $1$salt$zQ85DZwaOPzoVL57BgVNP0
Donc, c'est un crypt de MD5 ou un truc du genre...
Par contre, ça ne résoud toujours pas mon problème de reconnaissance des mots de passes encrypté en MD5 par Courier-MTA !
Dernière modification par jak0lantash (Le 19/02/2008, à 16:13)
Hors ligne
#19 Le 19/02/2008, à 20:52
- toniotonio
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
de memoire courier ne prend que le md5 avec le salt (les 2 c'est du md5)
la conversion est a ma connaissance impossible
Tutoriaux Postfix sur www.starbridge.org/spip
Messagerie Dédiée, Relais Mail Antispam/Antivirus, Infogérance 24/7: http://www.eole-its.com
Hors ligne
#20 Le 20/02/2008, à 17:13
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
OK merci pour l'info !
C'est une bien mauvaise nouvelle ... :/
Hors ligne
#21 Le 21/02/2008, à 01:17
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Si ça interesse des gens :
http://www.starbridge.org/support/viewtopic.php?f=2&t=223&start=0&st=0&sk=t&sd=a
Hors ligne
#22 Le 21/02/2008, à 01:50
- Fozzy
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Jak0, tu resteras toujours un geek ,mais un geek compétent !
#23 Le 21/02/2008, à 17:38
- jak0lantash
Re : [RESOLU][Courier][MySQL]Echec de connexion à imap
Lol, Fozzyyyy !!!
En tout cas, c'est résolu.
Pour convertir du MD5 Hexadecimal en MD5 Base64 :
<?php
function hexToString($hex) {
$hex = str_replace(array("\n","\r"," "), "", $hex);
for ($ix=0; $ix < strlen($hex); $ix=$ix+2) {
$ord = hexdec(substr($hex, $ix, 2));
$string .= chr($ord);
}
return $string;
}
$string = "testing";
$hexa_md5 = md5($string);
$base64_md5 = base64_encode(hexToString(md5($string));
?>
Ca n'a pas le mérite d'être direct (la fonction n'est pas appelée au moment de l'exécution de la requête SQL utilisée pour reconnaître les utilisateurs virtuels), mais ça me permettra au moins, de rajouter une donnée calculée dans la BDD. Il m'est donc possible de re-générer les mots de passes pour qu'ils soient compatibles avec Courier en partant des MD5 Hexa dont je disposais...
Me restera donc plus qu'à faire une routine pour m'assurer de la complétude des valeurs.
Hors ligne
Pages : 1