LINUX.ORG.RU

Roundcube Managesieve

 


0

3

Добрый день. Есть проблема с настройкой плагина Managesieve для Roundcube. Есть Ubuntu 16.04.1, Dovecot 2.2.22, Exim4 4.86, Roundcube 1.2, Managesieve 8.3. Почта отправляется и принимается и через почтовые клиенты и через веб-интерфейс. С этим проблем нет. Не работает только сортировка managesieve. Как ставил:

/etc/dovecot/dovecot.conf:

 protocols = imap sieve pop3 
/etc/dovecot/conf.d/15-lda.conf:
	protocol lda {
  	mail_plugins = $mail_plugins sieve
	}
/etc/dovecot/conf.d/20-managesieve.conf:
 service managesieve-login {
  	inet_listener sieve {
   	 port = 4190
  	}
	}
	protocol sieve {
  	} 
/etc/roundcube/config.inc.php:
$config['plugins'] = array(
	'archive',
	'zipdownload',
	'managesieve',
	); 
/etc/roundcube/plugins/managesieve/config.inc.php:
$config['managesieve_port'] = 4190;
$config['managesieve_host'] = '%n';
$config['managesieve_auth_type'] = null;
$config['managesieve_auth_cid'] = null;
$config['managesieve_auth_pw'] = null;
$config['managesieve_usetls'] = false;
$config['managesieve_conn_options'] = null;
$config['managesieve_default'] = '/var/lib/dovecot/sieve/default.sieve';
$config['managesieve_script_name'] = 'managesieve';
$config['managesieve_mbox_encoding'] = 'UTF-8';
$config['managesieve_replace_delimiter'] = '';
$config['managesieve_disabled_extensions'] = array();
$config['managesieve_debug'] = true;
$config['managesieve_kolab_master'] = false;
$config['managesieve_filename_extension'] = '.sieve';
$config['managesieve_filename_exceptions'] = array();
$config['managesieve_vacation'] = 0;
$config['managesieve_vacation_interval'] = 0;
$config['managesieve_vacation_addresses_init'] = false;
$config['managesieve_notify_methods'] = array('mailto');
После этого в кубе в настройках появляется пункт Фильтры, но при нажатии на него вываливается ошибка: Невозможно подключиться к серверу.

В логах: /var/log/dovecot.log:

2016-12-08 22:14:14 managesieve(admin@mydomain.com): Error: sieve: file storage: Sieve storage path `~/sieve' is relative to home directory, but home directory is not available.
2016-12-08 22:14:14 managesieve(admin@mydomain.com): Fatal: Failed to open Sieve storage.
/var/log/dovecot-info.log:
2016-12-08 22:14:14 managesieve-login: Info: Login: user=<admin@mydomain.com>, method=PLAIN, rip=192.168.6.3, lip=192.168.6.151, mpid=13472, session=<hdDkRyytDrNrAqAYD>
/var/log/roundcube/errors:
[08-Dec-2016 22:14:14 +0200]: <aod12sm6> PHP Error: Unable to connect to managesieve on mydomain.com:4190 in /usr/share/roundcube/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php on line 216 (GET /roundcube/?_task=settings&_action=plugin.managesieve)
[08-Dec-2016 22:14:14 Europe/Helsinki] ERROR: Not currently in AUTHORISATION state (1)
[08-Dec-2016 22:14:14 Europe/Helsinki] ERROR: Failed to write to socket: connection lost ()
/var/log/roundcube/sieve:
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "IMPLEMENTATION" "Dovecot Pigeonhole"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational l regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "NOTIFY" "mailto"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "SASL" "PLAIN LOGIN"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "STARTTLS"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "VERSION" "1.0"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: OK "Dovecot ready."
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> C: CAPABILITY
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "IMPLEMENTATION" "Dovecot Pigeonhole"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational l regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "NOTIFY" "mailto"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "SASL" "PLAIN LOGIN"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "STARTTLS"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: "VERSION" "1.0"
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> S: OK "Capability completed."
[08-Dec-2016 22:14:12 +0200]: <aod12sm6> C: AUTHENTICATE "PLAIN" "AHNldmVuAHBpcmFtaWRhNTE="
[08-Dec-2016 22:14:14 +0200]: <aod12sm6> S:
netstat -tlpne | grep dovecot
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      0          779247      13261/dovecot
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      0          779273      13261/dovecot
tcp        0      0 0.0.0.0:4190            0.0.0.0:*               LISTEN      0          779231      13261/dovecot
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      0          779274      13261/dovecot
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      0          779248      13261/dovecot
При этом telnet 127.0.0.1 4190:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
"IMPLEMENTATION" "Dovecot Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext"
"NOTIFY" "mailto"
"SASL" "PLAIN LOGIN"
"STARTTLS"
"VERSION" "1.0"
OK "Dovecot ready."
sieve-connect --debug --server localhost:
setup: Need to find SSL_ca_path, trying to ask openssl
setup: Have set SSL_ca_path to /usr/lib/ssl/certs
connection: trying <localhost:sieve(4190)> (try 'sieve' in /etc/services, fallback 4190)
connection: remote host address is [127.0.0.1] port [4190]
<<< "IMPLEMENTATION" "Dovecot Pigeonhole"\r\n
<<< "SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext"\r\n
<<< "NOTIFY" "mailto"\r\n
<<< "SASL" "PLAIN LOGIN"\r\n
<<< "STARTTLS"\r\n
<<< "VERSION" "1.0"\r\n
<<< OK "Dovecot ready."
-T- will use TLS certs from directory "/usr/lib/ssl/certs"
-T- using hostname 'localhost', verification verify-peer cert-required
>>> STARTTLS\r\n
<<< OK "Begin TLS negotiation now."\r\n
STARTTLS promotion failed: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Подозреваю, что проблема где то здесь, но куда дальше копать? 2 дня гуглю, без толку. Буду благодарен за любую помощь. Спасибо заранее.


Sieve storage path `~/sieve' is relative to home directory, but home directory is not available.

Чего здесь непонятного?

И еще - используется MTA какой?

У этого MTA указан MDA какой?

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

Чего здесь непонятного?

Ну эту папку я создал вручную еще вчера, но ошибка все равно появляется. ls -la /home/vmail/mydomain/admin/

drwx------ 12 vmail vmail  4096 Дек  8 23:47 .
drwx------  5 vmail vmail  4096 Дек  6 21:19 ..
drwx------  5 vmail vmail  4096 Дек  6 17:01 .&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-
drwx------  5 vmail vmail  4096 Дек  9 09:20 .&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-
drwx------  5 vmail vmail  4096 Дек  9 09:20 .&BCMENAQwBDsENQQ9BD0ESwQ1-
drwx------  5 vmail vmail  4096 Дек  7 19:09 .&BCMENAQwBDsENQQ9BD0ESwQ1-.Infected Items
drwx------  2 vmail vmail  4096 Дек  8 23:35 cur
-rw-------  1 vmail vmail   848 Дек  8 11:56 dovecot.index
-rw-------  1 vmail vmail 23060 Дек  8 23:35 dovecot.index.cache
-rw-------  1 vmail vmail 19840 Дек  8 23:35 dovecot.index.log
-rw-------  1 vmail vmail   720 Дек  7 19:16 dovecot.mailbox.log
-rw-------  1 vmail vmail  1530 Дек  8 23:35 dovecot-uidlist
-rw-------  1 vmail vmail     8 Дек  7 19:09 dovecot-uidvalidity
-r--r--r--  1 vmail vmail     0 Дек  6 15:27 dovecot-uidvalidity.5846bcce
drwx------  5 vmail vmail  4096 Дек  6 17:01 .Infected Items
drwx------  2 vmail vmail  4096 Дек  8 23:35 new
drwx------  5 vmail vmail  4096 Дек  8 23:47 .Sent
drwxr-xr-x  2 vmail vmail  4096 Дек  8 13:59 sieve
-rw-------  1 vmail vmail   170 Дек  7 19:16 subscriptions
drwx------  2 vmail vmail  4096 Дек  8 23:35 tmp

И еще - используется MTA какой?

Exim4 4.86

У этого MTA указан MDA какой?

lda

seven
() автор топика
Ответ на: комментарий от seven

Еще одна интересная проблема нарисовалась. Новые пользователи не могут залогинится в Куб. Старые заходят без проблем. Через почтовый клиент проблем нет вообще ни у кого, все отправляют и получают почту. В логах dovecot'а: Старый пользователь заходит, все ок:

2016-12-09 12:30:15 imap-login: Info: Login: user=<admin@mydomain.com>, method=PLAIN, rip=192.168.6.3, lip=192.168.6.151, mpid=4290, session=<cGxhPTdDxJjAqAYD>
2016-12-09 12:30:15 imap(admin@mydomain.com): Info: Logged out in=346 out=1271
Старый пользователь вводит неверный пароль, все ок:
2016-12-09 12:30:42 auth: Info: passwd-file(admin@mydomain.com,192.168.6.3,<9Kf2PjdDyJjAqAYD>): Password mismatch (given password: admin)
2016-12-09 12:30:44 imap-login: Info: Disconnected (auth failed, 1 attempts in 2 secs): user=<admin@mydomain.com>, method=PLAIN, rip=192.168.6.3, lip=192.168.6.151, session=<9Kf2PjdDyJjAqAYD>
Новый пользователь вводит неправильный пароль, все ок:
2016-12-09 12:40:42 auth: Info: passwd-file(test1@mydomain.com,192.168.6.3,<SCa7YjdD0JjAqAYD>): Password mismatch (given password: test)
2016-12-09 12:40:44 imap-login: Info: Disconnected (auth failed, 1 attempts in 2 secs): user=<test1@mydomain.com>, method=PLAIN, rip=192.168.6.3, lip=192.168.6.151, session=<SCa7YjdD0JjAqAYD>
Новый пользователь вводит правильный пароль:
2016-12-09 12:30:55 imap-login: Info: Login: user=<test1@mydomain.com>, method=PLAIN, rip=192.168.6.3, lip=192.168.6.151, mpid=4301, session=<1veLPzdDypjAqAYD>
2016-12-09 12:30:56 imap(test1@mydomain.com): Info: Logged out in=29 out=466
В кубе появляется ошибка: Неудачная попытка входа. Хотя судя по логам, он смог залогинится. Авторизация через файл. /etc/dovecot/conf.d/auth-passwdfile.conf.ext
passdb {
  driver = passwd-file
  args = scheme=SHA256-CRYPT username_format=%u /etc/dovecot/passwd
}

userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/passwd

  # Default fields that can be overridden by passwd-file
  default_fields = uid=vmail gid=vmail userdb_home=/home/vmail/%Ld/%Ln userdb_location=maildir:/home/vmail/%Ld/%Ln userdb_quota_rule=*:storage=1G

}
Я так понимаю куб в этом случаи выступает обычным почтовым клиентом. Почему тогда Outlook подключается без проблем, а тут такая беда?

seven
() автор топика
Ответ на: комментарий от seven

/var/log/roundcube/errors:

[09-Dec-2016 13:23:30 +0200]: <5qi9bdak> PHP Error: Failed to create new user in /usr/share/roundcube/program/lib/Roundcube/rcube_user.php on line 684 (POST /roundcube/?_task=login?_task=login&_action=login)
[09-Dec-2016 13:23:30 +0200]: <5qi9bdak> PHP Error: Failed to create a user record. Maybe aborted by a plugin? in /usr/share/roundcube/program/include/rcmail.php on lline 641 (POST /roundcube/?_task=login?_task=login&_action=login)

seven
() автор топика
Ответ на: комментарий от seven

В общем переустановил все с нуля. Не знаю в чем была проблема, что не мог зайти в куб под новыми пользователями. Сейчас проблемы нет. С ошибкой «Невозможно подключиться к серверу» при попытке зайти в правила в кубе тоже разобрался. Нужно было в /etc/dovecot/conf.d/90-sieve.conf

sieve = file:~/sieve;active=~/.dovecot.sieve
изменить на:
sieve = file:/home/vmail/%Ld/%n/sieve;active=/home/vmail/%Ld/%n/active.sieve
При этом ошибок нет, точнее есть одна
Dec 21 00:17:13 mail dovecot: lda(admin@mydomain.com): Error: User admin@mydomain.com doesn't have home dir set, disabling duplicate database
но она ни на что не влияет и все правила отрабатывают, как общее для сервера, так и отдельные для каждого пользователя. Та и как побороть ее не знаю, так что все оставляю так как есть.

seven
() автор топика
Ответ на: комментарий от ArcFi

У меня там было userdb_home, изменил на home ошибка пропала. Спасибо большое!

seven
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.