【问题标题】:dovecot Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 passworddovecot passdb 中的密码无效:不是有效的 MD5-CRYPT 或 PLAIN-MD5 密码
【发布时间】:2015-04-12 09:09:48
【问题描述】:

我正在将 imap-courier 迁移到 dovecot,我使用 openbsd+postfix+imap-courier,现在我正在尝试运行 openbsd+opensmtpd+dovecot。

一开始有点痛苦,但它可以正常工作 OpenSMTPD。

现在我已经配置好了dovecot,希望你的后端授权是和imap-courier一样的数据库。

In /var/log/maillog receipt the following error
auth-worker(2915): Error: sql(user@domain.tld,199.254.238.134): `Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 password`

我的 /etc/dovecot/dovecot-sql.conf.ext

password_query = \
  SELECT login, password \
  FROM users WHERE login = '%u'

我的数据库 MySQL 也要启动

mysql> CREATE DATABASE mail;
Query OK, 1 row affected (0.01 sec)

mysql> use mail
Database changed
mysql> CREATE TABLE domains (
    ->        id       INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    ->        domain   VARCHAR(255) NOT NULL UNIQUE);
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE users (
    ->        id       INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    ->        login    VARCHAR(255) NOT NULL UNIQUE,
    ->        name     VARCHAR(255) NOT NULL,
    ->        password CHAR(13) NOT NULL,
    ->        uid      SMALLINT NOT NULL DEFAULT 2000,
    ->        gid      SMALLINT NOT NULL DEFAULT 2000,
    ->        home     VARCHAR(255) NOT NULL DEFAULT '/var/vmail',
    ->        maildir  VARCHAR(255) NOT NULL,
    ->        quota    VARCHAR(10)  NOT NULL DEFAULT '10000000S');
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE alias_maps (
    ->        id       INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    ->        account  VARCHAR(255) NOT NULL UNIQUE,
    ->        alias    VARCHAR(255) NOT NULL);
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON mail.* to 'vmail'@'localhost' IDENTIFIED BY 'vmail';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

过去这个错误不是为了我在数据库中插入数据,我这样做:

mysql> INSERT INTO users (login, name, password, maildir)
    -> VALUES ('name@domain.tld', 'name lastname', ENCRYPT('pass'),
    ->         'domain.tld/name/');

这对我很有帮助

谢谢大家

【问题讨论】:

  • 这里有问题吗?这似乎更多的是关于服务器配置而不是编程。

标签: mysql unix imap mail-server dovecot


【解决方案1】:

使用CRYPT加密密码时,必须在dovecot-sql.conf.ext中加入以下内容

default_pass_scheme = CRYPT

我希望这可以帮助更多的人,除了像我做我的查询一样离开你:

password_query = \
  SELECT password \
  FROM users WHERE login = '%u'

【讨论】:

    【解决方案2】:

    应该是:

    mysql> INSERT INTO users (login, name, password, maildir)
        -> VALUES ('name@domain.tld', 'name lastname', **MD5**('pass'),
        ->         'domain.tld/name/');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 2014-07-13
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多