Échec de la connexion RoundCube Sur le serveur local IMAP

J'ai suivi ce guide pour configurer le serveur de messagerie sur mon serveur:
http://flurdy.com/docs/postfix/edition5.html
La seule différence est que la base de données est utilisée dans ce manuel. MySQL, Et j'ai utilisé PostgreSQL.

Mais je ne peux pas entrer RoundCube. Ceci est un message que j'entre dans le journal des erreurs. RoundCube:

[31-Dec-2013 16:40:42 +0100]: IMAP Error: Login failed for test@example.com from A.B.C.D. AUTHENTICATE CRAM-MD5: A0001 NO Login failed. in /usr/share/roundcube/program/lib/Roundcube/rcube_imap.php on line 184 (POST /?_task=login&_action=login)

Ceci est du magazine IMAP:

[31-Dec-2013 16:40:37 +0100]: [CB8A] S: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE AUTH=PLAIN ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc.  See COPYING for distribution information.
[31-Dec-2013 16:40:37 +0100]: [CB8A] C: A0001 AUTHENTICATE CRAM-MD5
[31-Dec-2013 16:40:37 +0100]: [CB8A] S: + PDIxNUFCQjFGRjJBNTi1RUJEMTIzMjFEMDAwNDIxMTUzQGxpbm9kZT4=
[31-Dec-2013 16:40:37 +0100]: [CB8A] C: bWFya29Adm9kYW5vdmljLm5ldCBmMzk2njk0OTRiMTA1Mjc2YjllYWIxODhhZDI2OWM3NA==
[31-Dec-2013 16:40:42 +0100]: [CB8A] S: A0001 NO Login failed.

J'ai un utilisateur dans ma table de base de données dans Postgres. Et ici il est:

xml version="1.0" encoding="utf-8" ?
<data>
<header>
<column name="id" type="varchar"></column>
<column name="name" type="varchar"></column>
<column name="uid" type="int4"></column>
<column name="gid" type="int4"></column>
<column name="home" type="varchar"></column>
<column name="maildir" type="varchar"></column>
<column name="enabled" type="bool"></column>
<column name="change_password" type="bool"></column>
<column name="clear" type="varchar"></column>
<column name="crypt" type="varchar"></column>
<column name="quota" type="varchar"></column>
<column name="procmailrc" type="varchar"></column>
<column name="spamassassinrc" type="varchar"></column>
</header>
<records>
<row>
<column name="id">test@example.com</column>
<column name="name">test</column>
<column name="uid">5000</column>
<column name="gid">5000</column>
<column name="home">/var/spool/mail/virtual</column>
<column name="maildir">test/</column>
<column name="enabled">t</column>
<column name="change_password">t</column>
<column name="clear">aaaa</column>
<column name="crypt">$5$c74a6630fAb058a5$Zo95c7qWT.o/Twg4niR/gcNoVq2XVVPl0aw6DoS8ufA</column>
<column name="quota"></column>
<column name="procmailrc"></column>
<column name="spamassassinrc"></column>
</row>
</records>
</data>

J'ai essayé d'entrer les deux

test

et

test@example.com

et comme avec simple

aaaa

Mot de passe et crypté. Juste au cas où, j'ai aussi généré un mot de passe à l'intérieur MySQL (Utilisation de l'expression du manuel), puis copié le résultat dans le champ dans Postgres. Et oui, MySQL et Postgres Sont sur le même serveur. Voici l'expression que j'ai utilisé dans MySQL:

select encrypt('password', CONCAT('$5$', MD5(RAND())));

Je ne sais vraiment pas quoi faire d'autre à faire, alors toute aide sera appréciée. Si vous avez besoin d'informations supplémentaires, parlez-moi de cela.

ÉDITER:

J'ai réussi à entrer le serveur à travers telnet (Quand j'ai corrigé le problème avec le catalogue de messagerie manquant). Mais je ne peux toujours pas me connecter à RoundCube. Voici le résultat du travail mail.log:

Dec 31 20:14:45 localhost imapd-ssl: Connection, ip=[::ffff:127.0.0.1]
Dec 31 20:14:45 localhost authdaemond: received auth request, service=imap, authtype=cram-md5
Dec 31 20:14:45 localhost authdaemond: authpgsql: trying this module
Dec 31 20:14:45 localhost authdaemond: cram: challenge=PDk1N0QxRTI3QTlFREy3MkYwODI3RUE2MDVDREREMTdBQGxpbm9kZT4=, response=bWFya28gY2Q5OTRmNDI2ZtY3NDUzZGM2YmJlYjhmNTI0ZWQ3NWI=
Dec 31 20:14:45 localhost authdaemond: cram: decoded challenge/response, username 'test'
Dec 31 20:14:45 localhost authdaemond: Install of a character set for Postgresql: UTF8
Dec 31 20:14:45 localhost authdaemond: SQL query: SELECT id, crypt, '', uid, gid, home, concat(home,'/',maildir), '', name, '' FROM users WHERE id = 'test@example.com' AND (enabled=TRUE)
Dec 31 20:14:45 localhost authdaemond: authpgsql: REJECT - try next module
Dec 31 20:14:45 localhost authdaemond: FAIL, all modules rejected
Dec 31 20:14:45 localhost imapd-ssl: LOGIN FAILED, method=CRAM-MD5, ip=[::ffff:127.0.0.1]
Dec 31 20:14:50 localhost imapd-ssl: Disconnected, ip=[::ffff:127.0.0.1], time=5, starttls=1
Invité:

Hannah

Confirmation de:

Face au même problème, j'ai fait plusieurs tentatives d'utilisation Google-Foo, Pour comprendre la racine du problème:
https://serverfault.com/users/ ... rez-s
Exactitude estimée
https://serverfault.com/a/569590/145213
, Ce n'est pas du vin Roundcube, Et comment le mot de passe est stocké et fonctionne de cryptage.

Plusieurs bases évidentes

Parlant O. CRAM-MD5, MD5 ou CRYPT, Nous parlons d'un cryptage unilatéral: un hash est créé. Nous ne pouvons pas faire cela au contraire, obtenir un mot de passe sous la forme d'un texte ouvert du hachage est impossible (À l'exception de la recherche) Et irréaliste pour toute procédure de connexion. Ainsi, avec un mot de passe stocké en utilisant l'un de ces hachage, nous ne pouvons le vérifier que s'il a le texte habituel. - Par conséquent, l'installation

$rcmail_config['imap_auth_type'] = 'PLAIN'

en configuration roundcube Cela "décide".

Option

Coller PLAIN / LOGIN:

Excellent S. Roundcube et IMAP sur un serveur si les utilisateurs sont connectés par HTTPS

Normalement, avec accès des clients postaux si la connexion est protégée (IMAPS / POP3S / SMTPS)

Trou de sécurité avec trafic non crypté

Gardez les mots de passe sous la forme d'un texte simple

Vous pouvez utiliser tous les types de mécanismes d'authentification, qui est un professionnel

Avoir des mots de passe de tous vos utilisateurs sous la forme d'un texte simple dans le fichier / base de données - Il est absolument inacceptable

Gardez les mots de passe avec CRAM-MD5

vous donne un minimum CRAM-MD5, qui soutient la plupart des clients

laisse toujours la capacité d'utiliser PLAIN / LOGIN

Doit être soutenu par vos instruments administratifs

Certains d'entre eux peuvent avoir besoin de retourner à des outils de cryptage tiers. (par exemple, PostfixAdmin Les usages

/usr/sbin/doveadm pw

), Grâce auquel le mot de passe sous la forme d'un texte ouvert apparaît pendant une courte période de la liste des processus à chaque appel à l'appel.

Autres outils tiers (Plugins / superstructure, etc.) Il peut y avoir un problème


Je me débats toujours de quelle façon de choisir - Définitivement exclu que №2 (Je ne veux pas faire des cadeaux à des pirates informatiques potentiels;)

Emilie

Confirmation de:

Je pense que le problème est d'essayer d'utiliser le mécanisme d'autorisation CRAM-MD5 Avec un champ «crypt» De la base de données.

Dans votre magazine:

Dec 31 20:14:45 localhost authdaemond: SQL query: SELECT id, **crypt**, '', uid, gid, home, concat(home,'/',maildir), '', name, '' FROM users WHERE id = 'test@example.com'  AND (enabled=TRUE)
Dec 31 20:14:45 localhost authdaemond: authpgsql: REJECT - try next module
Dec 31 20:14:45 localhost authdaemond: FAIL, all modules rejected
Dec 31 20:14:45 localhost imapd-ssl: LOGIN FAILED, **method=CRAM-MD5**, ip=[::ffff:127.0.0.1]

Cela signifie que dans la requête SQL, vous obtenez le champ «crypt», authdaemond Impossible de lire un mot de passe simple puis CRAM-MD5 ne marche pas. Les mots de passe en mode ouvert vous permettent d'implémenter l'authentification CRAM-MD5.

Réparer

Vous pouvez modifier le mécanisme d'authentification client (roundcube) sur PLAIN ou LOGIN. Il est compatible avec le champ Crypt.

Changement dans le fichier authpgsqlrc. Installer PGSQL_CLEAR_PWFIELD, Trouver "faire le ménage" Champ et commentaire PGSQL_CRYPT_PWFIELD. Ainsi, authdaemond Effectuez une requête SQL pour trouver un mot de passe sous la forme d'un texte ouvert.

J'espère que cela fonctionnera pour vous.

Blanche

Confirmation de:

Peut-être la configuration roundcube:

Je ne suis pas sur 100%, Mais la configuration standard roundcube Utilise l'authentification "PLAIN", Par conséquent, vous pouvez le modifier dans le fichier de configuration et le test:

// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
// best server supported one)
// $rcmail_config['imap_auth_type'] = LOGIN;
$rcmail_config['imap_auth_type'] = null;

Dans les anciennes versions (0.3.1) roundcube Vous avez seulement «auth», «plain» ou «check», par exemple:

// IMAP auth type. Can be "auth" (CRAM-MD5), "plain" (PLAIN) or "check" to auto detect.
// Optional, defaults to "check"
$rcmail_config['imap_auth_type'] = "auth";

Dépend de la version que vous utilisez.

Pour répondre aux questions, connectez-vous ou registre