Я в процессе настройки своего почтового сервера.
Эта заметка касается авторизации, которая допускает не шифрованный пароль и шифрованный.

Используется Exim4 + Dovecot2 + PostfixAdmin

1. Файл /etc/exim4/exim4.conf - ставишь такую секцию которую я привел:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
begin authenticators

auth_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

auth_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth2

auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth3

2. В файле /var/www/html/postfixadmin/config.inc.php меняешь настройки алгоритмов на:

1
2
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

3. Файл /var/www/html/roundcube/config/main.inc.php - меняешь алгоритм на cram-md5:

1
$rcmail_config['imap_auth_type'] = cram-md5;

4. Файл /etc/dovecot/dovecot.conf - меняешь алгоритмы авторизации на plain,login и cram-md5:

1
auth_mechanisms = plain login cram-md5

5. Файл /etc/dovecot/dovecot-mysql.conf - ставишь:

1
default_pass_scheme = CRAM-MD5

 Так же можно авторизоваться Exim’ом непосредственно в Mysql базе данных (но у меня этот способ не особо заработал):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
plain_login:
        driver = plaintext
        public_name = PLAIN
        server_condition = ${lookup mysql{SELECT '1' FROM users \
                               WHERE username = '${quote_mysql:$2}' \
                               AND clear = '${quote_mysql:$3}'} {yes}{no}}
        server_set_id = $2

fixed_login:
        driver = plaintext
        public_name = LOGIN
        server_prompts = "Username:: : Password::"
        server_condition = ${lookup mysql{SELECT '1' FROM users \
                               WHERE username = '${quote_mysql:$1}' \
                               AND clear = '${quote_mysql:$2}'} {yes}{no}}
        server_set_id = $1

fixed_cram:
        driver = cram_md5
        public_name = CRAM-MD5
        server_secret = ${lookup mysql{SELECT clear FROM users \
                               WHERE username = '${quote_mysql:$1}'}{$value}fail}
        server_set_id = $1