Всем привет. Поднял локальный почтовый сервер dovecot+postfix+postfixadmin почта между клиентами ходит. Через почтовые клиенты типа Outlook и Thunderbird все ок и через IMAP и через POP3. Вот с roundcube засада полная, не хочет авторизировать клиента хоть тресни. Может кто подскажет как победить проблему.
П.С. Отключил использование ssl сертификатов roundcube загрузился без проблем, вопрос в том как заставить его с ним подключаться к dovecot'у.dovecot.conf
# Мы не используем специализированные файлы из поставки Dovecot из папки /etc/dovecot/conf.d/.
# Основная причина: отсутствие ясного руководства по их использованию. А также сравнительно небольшой
# размер всего конфига (все перед глазами, нет необходимости раскидывать по отдельным файлам).
#!include conf.d/*.conf# Нет необходимости явно указывать imaps и pop3s - Dovecot 2.* по-умолчанию их включает.
protocols = imap pop3
listen = *# Завершать все дочерние процессы, если завершен мастер-процесс
shutdown_clients = yes# Владелец почтовых папок (также см. конфиг Postfix):
mail_uid = vmail
mail_gid = vmail# Только наш пользователь с uid и gid 5000 (vmail) может быть использован.
first_valid_uid = 5000
last_valid_uid = 5000# Лог-файлы. Подробнее: http://wiki2.dovecot.org/Logging
log_path = /var/log/dovecot.log
# Отладка. Если все настроено, отключаем (no)
# http://maint.unona.ru/doc/dovecot2.shtml
mail_debug = yes
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes# SSL
# http://wiki2.dovecot.org/SSL/DovecotConfiguration
ssl = required
#ssl_cert = </etc/pki/dovecot/certs/server.crt
#ssl_key = </etc/pki/dovecot/private/server.key
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pemssl_protocols = TLSv1 TLSv1.1 TLSv1.2 !SSLv2 !SSLv3
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL# Запрет аутентификации открытым текстом. yes - запретить, no - разрешить.
disable_plaintext_auth = no# Список разрешенных символов в имене пользователя.
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@# Расположение и формат файлов почты (%d - домен, %n - имя пользователя).
mail_location = maildir:/var/vmail/%d/%n# Если при аутентификации не указан домен, то добавить этот (в данном примере - пустой)
auth_default_realm =# Доступные варианты аутентификации (PLAIN, DIGEST-MD5, CRAM-MD5...).
# Для того, чтобы иметь меньше головной боли ставьте PLAIN
auth_mechanisms = PLAIN# Приветственное сообщение
login_greeting = POP3/IMAP server ready.# Одно из самых важных мест - предоставление сокетов для аутентификации пользователей.
# Если настроено неверно - ничего работать не будет!
service auth {
# http://maint.unona.ru/doc/dovecot2.shtml
# Указывает, что данный сокет будет использовать SMTP сервер для аутентификации.
# Указывается пользователь, группа и права доступа к сокету. В данном случае это postfix
# ("mail_owner = postfix" в файле /etc/postfix/main.cf).
unix_listener /var/spool/postfix/private/auth {
user = postfix
group = postfix
mode = 0660
}
unix_listener auth-master {
user = vmail
group = vmail
mode = 0660
}
unix_listener auth-userdb {
user = vmail
group = vmail
mode = 0660
}
}# Запрос параметров виртуальных почтовых пользователей
# (логин, пароль, домен, активный/неактивный и др.)
userdb {
args = /etc/dovecot/dovecot-mysql.conf
driver = sql
}
passdb {
args = /etc/dovecot/dovecot-mysql.conf
driver = sql
}# Plugins
protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep
mail_plugins = autocreate
}
protocol pop3 {
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = XuXv
}
protocol lda {
# Куда будут перенаправлены недоставленные письма
postmaster_address = postmaster@localhost
auth_socket_path = /var/run/dovecot/auth-master
}
plugin {
auth_socket_path = /var/run/dovecot/auth-master# Plugin: autocreate. Создаем и подписываемся на папки IMAP.
autocreate = INBOX
autocreate2 = Sent
autocreate3 = Trash
autocreate4 = Drafts
autocreate5 = Junk
autosubscribe = INBOX
autosubscribe2 = Sent
autosubscribe3 = Trash
autosubscribe4 = Drafts
autosubscribe5 = Junk# Plugin: квоты. Пока отключим.
# http://wiki2.dovecot.org/Quota/Configuration
#quota = maildir:User quota
#quota_rule = *:storage=1GB
#quota_rule2 = Trash:storage=+10%% # 10% of 1GB = 100MB
#quota_rule3 = Junk:storage=+10%% # 10% of 1GB = 100MB
#quota_rule4 = Drafts:storage=+10%% # 10% of 1GB = 100MB
}postfix maib.cf
### Config### Common config
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
myhostname = centos6.virtual.local
mydomain = virtual.local
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, localhost.localdomain
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8, 10.10.0.0/24
#in_flow_delay = 1s
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliaseslocal_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
# The mail_owner parameter specifies the owner of the Postfix queue
# and of most Postfix daemon processes. Specify the name of a user
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
# USER.
#
mail_owner = postfix
# setgid_group: The group for mail submission and queue management
# commands. This must be a group name with a numerical group ID that
# is not shared with other accounts, not even with the Postfix account.
#
setgid_group = postdrophtml_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILESvirtual_transport = dovecot
dovecot_destination_recipient_limit=1### Auth
smtpd_sasl_auth_enable=yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth # см. конфиг Dovecot### Relay Domains:
#relay_domains = mysql:/etc/postfix/sql/mysql_relay_domains.cf### Virtual Domains:
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains =
mysql:/etc/postfix/sql/virtual_mailbox_domains.cf
virtual_alias_maps =
mysql:/etc/postfix/sql/virtual_alias_maps.cf
virtual_mailbox_maps =
mysql:/etc/postfix/sql/virtual_mailbox_maps.cfvirtual_minimum_uid = 5000
#virtual_minimum_gid = 5000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000### Quotas
# Квоты пока не проверял
#virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
#virtual_mailbox_limit_override = yes
#virtual_maildir_limit_message = "Sorry, the user's maildir has overdrawn his diskspace quota."
#virtual_overquota_bounce = yes### Restrictions
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_reverse_client_hostname,
permitsmtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
permitsmtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
rejectsmtpd_recipient_restrictions =
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_sasl_authenticated,
reject_unlisted_recipient,
permit_mynetworks,
reject_unauth_destination,
rejectsmtpd_data_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permitsmtpd_etrn_restrictions = reject
smtpd_helo_required = yes#strict_rfc821_envelopes = yes
smtpd_discard_ehlo_keywords = etrn, silent-discard
smtpd_forbidden_commands = CONNECT GET POST
disable_vrfy_command = yes### TLS
smtpd_use_tls = yes
#smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
#smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pemsmtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.pemsmtp_tls_security_level=may
smtpd_tls_mandatory_protocols=TLSv1, TLSv1.1, TLSv1.2, !SSLv2, !SSLv3
smtpd_tls_auth_only = yessmtp_tls_loglevel = 1
smtpd_tls_loglevel = 1roundcube config.inc.php
<?php/* Local configuration for Roundcube Webmail */
// ----------------------------------
// SQL DATABASE
// ----------------------------------
// Database connection string (DSN) for read+write operations
// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
// Currently supported db_providers: mysql, pgsql, sqlite, mssql or sqlsrv
// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-ds...
// NOTE: for SQLite use absolute path: 'sqlite:////full/path/to/sqlite.db?mode=0646'
$config['db_dsnw'] = 'mysql://roundcube:password1@localhost/roundcube';
// ----------------------------------
// IMAP
// ----------------------------------
// The mail host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %s - domain name after the '@' from e-mail address provided at login screen
// For example %n = mail.domain.tld, %t = domain.tld
// WARNING: After hostname change update of mail_host column in users table is
// required to match old user data records with the new host.
$config['default_host'] = 'ssl://localhost';
$config['default_port'] = 993;
$config['imap_auth_type'] = PLAIN;
// TCP port used for IMAP connections// ----------------------------------
// SMTP
// ----------------------------------
// SMTP server host (for sending mails).
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// If left blank, the PHP mail() function is used
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['smtp_server'] = 'localhost';// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';// this key is used to encrypt the users imap password which is stored
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
$config['des_key'] = '301c742212dab133ed1eafdd';// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = array();$config['auto_create_user'] = TRUE;
dovecot-mysql.conf
driver = mysql
connect = host=localhost dbname=mail user=postfix password=postfixPassword
default_pass_scheme = CRAM-MD5password_query = SELECT username AS user,domain,password FROM mailbox WHERE username = '%u' AND active='1'
user_query = SELECT username AS user, '5000' AS uid, '5000' AS gid FROM mailbox WHERE username = '%u' AND domain = '%d' AND active='1'
Вот что в логах при авторизации:
dovecot.log
Jul 05 23:02:05 auth: Debug: auth client connected (pid=7063)
Jul 05 23:02:05 imap-login: Info: Disconnected (no auth attempts in 0 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, TLS handshaking, session=<Ca1qQyYafgB/AAAB>roundcube errors
[05-Jul-2015 23:02:05 +0300]: <6l43jts4> IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Could not connect to ssl://localhost:993: Unknown reason in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
dovecot
>ssl_protocols = TLSv1 TLSv1.1 TLSv1.2 !SSLv2 !SSLv3postfix
>smtpd_tls_mandatory_protocols=TLSv1, TLSv1.1, TLSv1.2, !SSLv2, !SSLv3!SSLv* , NOT, Carl !!!
Тады почему в roundcube пишем:
>$config['default_host'] = 'ssl://localhost';
????
сделай
$config['default_host'] = 'tls://localhost';
$config['smtp_server'] = 'tls://localhost';
и будет Щастье
Внимательней надо быть и понимать что пишем в конфиг, а не копипастить с бложиков 1917 года ...
>[оверквотинг удален]
> !SSLv* , NOT, Carl !!!
> Тады почему в roundcube пишем:
>>$config['default_host'] = 'ssl://localhost';
> ????
> сделай
> $config['default_host'] = 'tls://localhost';
> $config['smtp_server'] = 'tls://localhost';
> и будет Щастье
> Внимательней надо быть и понимать что пишем в конфиг, а не копипастить
> с бложиков 1917 года ...Ну что нашел тем и пользовался, тем более все завелось кроме этой авторизации.
Поправил щастье не пришло. (теперь ругается так
DovecotJul 06 11:10:30 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Jul 06 11:10:30 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
Jul 06 11:10:30 auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
Jul 06 11:10:30 auth: Debug: auth client connected (pid=8203)
Jul 06 11:11:30 imap-login: Info: Disconnected (no auth attempts in 60 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, TLS handshaking: Disconnected, session=</OL/czAaqAB/AAAB>roundcube
[06-Jul-2015 11:11:30 +0300]: <6l43jts4> IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Empty startup greeting (localhost:993) in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
auth_mechanisms = PLAIN LOGIN
> auth_mechanisms = PLAIN LOGINЭто я так понял в dovecot.conf поправить.
Увы все тоже самое. Логи те же.
>Info: Disconnected (no auth attempts in 60 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, TLS handshaking: Disconnected, session=</OL/czAaqAB/AAAB>imap-login отвaлился по таймауту
>IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Empty startup greeting (localhost:993) in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
перепроверьте(в том чмисле по докам) - что дожен roundcube отдавать/принимать(и отдает/принимает) на пользователськом и служебном каналам
>> POST /roundcube/?_task=login?_task=login&_action=login
уже даже это подозреваю ошибка,
и можете глянуть скрипт /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php,
и функцию имеющей 198 строку - чо-там не так, если в пыхе сильны сможете разобраться...
>>Info: Disconnected (no auth attempts in 60 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, TLS handshaking: Disconnected, session=</OL/czAaqAB/AAAB>
> imap-login отвaлился по таймауту
>>IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Empty startup greeting (localhost:993) in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
> перепроверьте(в том чмисле по докам) - что дожен roundcube отдавать/принимать(и отдает/принимает)
> на пользователськом и служебном каналам
>>> POST /roundcube/?_task=login?_task=login&_action=login
> уже даже это подозреваю ошибка,
> и можете глянуть скрипт /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php,
> и функцию имеющей 198 строку - чо-там не так, если в пыхе
> сильны сможете разобраться...Увы, залез конечно туда первым делом при ошибке но в пыхе не силен.
В почтовых клиентах сразу о сертификате выскакивала инфа и дальше все проходило. Явно что надо передать в правильном виде. Но roundcube о сертификатах инфы не нашел чето.
>[оверквотинг удален]
>>>> POST /roundcube/?_task=login?_task=login&_action=login
>> уже даже это подозреваю ошибка,
>> и можете глянуть скрипт /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php,
>> и функцию имеющей 198 строку - чо-там не так, если в пыхе
>> сильны сможете разобраться...
> Увы, залез конечно туда первым делом при ошибке но в пыхе не
> силен.
> В почтовых клиентах сразу о сертификате выскакивала инфа и дальше все проходило.
> Явно что надо передать в правильном виде. Но roundcube о сертификатах
> инфы не нашел чето.содеpжимое этого файла: 198 -/+25 строк(со 173 и по 223)
> содеpжимое этого файла: 198 -/+25 строк(со 173 и по 223)Конечно, вот держи:
if ($this->conn->connected()) {
// check for session identifier
$session = null;
if (preg_match('/\s+SESSIONID=([^=\s]+)/', $this->conn->result, $m)) {
$session = $m[1];
}// get namespace and delimiter
$this->set_env();// trigger post-connect hook
$this->plugins->exec_hook('storage_connected', array(
'host' => $host, 'user' => $user, 'session' => $session
));return true;
}
// write error log
else if ($this->conn->error) {
if ($pass && $user) {
$message = sprintf("Login failed for %s from %s. %s",
$user, rcube_utils::remote_ip(), $this->conn->error);rcube::raise_error(array('code' => 403, 'type' => 'imap',
198 ==>>> 'file' => __FILE__, 'line' => __LINE__,
'message' => $message), true, false);
}
}return false;
}
/**
* Close IMAP connection.
* Usually done on script shutdown
*/
public function close()
{
$this->conn->closeConnection();
if ($this->mcache) {
$this->mcache->close();
}
}
/**
* Check connection state, connect if not connected.
*
* @return bool Connection state.
*/
>> содеpжимое этого файла: 198 -/+25 строк(со 173 и по 223)
> // write error logот начала ф-ции и до сюда
>>> содеpжимое этого файла: 198 -/+25 строк(со 173 и по 223)
>> // write error log
> от начала ф-ции и до сюдаВот лови
/**
* Connect to an IMAP server
*
* @param string $host Host to connect
* @param string $user Username for IMAP account
* @param string $pass Password for IMAP account
* @param integer $port Port to connect to
* @param string $use_ssl SSL schema (either ssl or tls) or null if plain connection
*
* @return boolean True on success, False on failure
*/
public function connect($host, $user, $pass, $port=143, $use_ssl=null)
{
// check for OpenSSL support in PHP build
if ($use_ssl && extension_loaded('openssl')) {
$this->options['ssl_mode'] = $use_ssl == 'imaps' ? 'ssl' : $use_ssl;
}
else if ($use_ssl) {
rcube::raise_error(array('code' => 403, 'type' => 'imap',
'file' => __FILE__, 'line' => __LINE__,
'message' => "OpenSSL not available"), true, false);
$port = 143;
}$this->options['port'] = $port;
if ($this->options['debug']) {
$this->set_debug(true);$this->options['ident'] = array(
'name' => 'Roundcube',
'version' => RCUBE_VERSION,
'php' => PHP_VERSION,
'os' => PHP_OS,
'command' => $_SERVER['REQUEST_URI'],
);
}$attempt = 0;
do {
$data = $this->plugins->exec_hook('storage_connect',
array_merge($this->options, array('host' => $host, 'user' => $user,
'attempt' => ++$attempt)));if (!empty($data['pass'])) {
$pass = $data['pass'];
}$this->conn->connect($data['host'], $data['user'], $pass, $data);
} while(!$this->conn->connected() && $data['retry']);$config = array(
'host' => $data['host'],
'user' => $data['user'],
'password' => $pass,
'port' => $port,
'ssl' => $use_ssl,
);$this->options = array_merge($this->options, $config);
$this->connect_done = true;if ($this->conn->connected()) {
// check for session identifier
$session = null;
if (preg_match('/\s+SESSIONID=([^=\s]+)/', $this->conn->result, $m)) {
$session = $m[1];
}// get namespace and delimiter
$this->set_env();// trigger post-connect hook
$this->plugins->exec_hook('storage_connected', array(
'host' => $host, 'user' => $user, 'session' => $session
));return true;
}
// write error log
>>>> содеpжимое этого файла: 198 -/+25 строк(со 173 и по 223)
>>> // write error log
>> от начала ф-ции и до сюда
> Вот лови
> /**
> * Connect to an IMAP server
> *м-да, вроде нормульно...
надо копать по поиcковикам: Empty startup greeting + roundcubeиз беглого поиска, что нарылось(правда 6 лет давности) можно перепроверить - http://trac.roundcube.net/changeset/587444f6/github
...P.S.:
snifer (wireshark), поиcковик, доки и копать этот частный случай
Да уже гуглил по этой связке большинство решений это пляски вокруг трех строчек конфига там где порт сервер и тип пароля. И в итоге тоже глухо без толковых вариантов. Попробую еще поискать. Без tls нормально же конектится.
> Да уже гуглил по этой связке большинство решений это пляски вокруг трех
> строчек конфига там где порт сервер и тип пароля. И в
> итоге тоже глухо без толковых вариантов. Попробую еще поискать. Без tls
> нормально же конектится.Дык, если требований нэма - может наффик этот secure layer в рамках 127.0.0.0 ?
>> Да уже гуглил по этой связке большинство решений это пляски вокруг трех
>> строчек конфига там где порт сервер и тип пароля. И в
>> итоге тоже глухо без толковых вариантов. Попробую еще поискать. Без tls
>> нормально же конектится.
> Дык, если требований нэма - может наффик этот secure layer в рамках
> 127.0.0.0 ?Почему только на 127.0 это же на всю сеть будет идти.
> Почему только на 127.0 это же на всю сеть будет идти.roundcube не на почтовом хосте, что-ли ?
>> Почему только на 127.0 это же на всю сеть будет идти.
> roundcube не на почтовом хосте, что-ли ?Да сорри туплю уже ) он там же крутится. Может тогда для него можно как-то отдельную авторизацию сделать без шифрования? чтоб для обычных почтовых клиентов его оставить.
>>> Почему только на 127.0 это же на всю сеть будет идти.
>> roundcube не на почтовом хосте, что-ли ?
> Да сорри туплю уже ) он там же крутится. Может тогда для
> него можно как-то отдельную авторизацию сделать без шифрования? чтоб для обычных
> почтовых клиентов его оставить.варс:
- 110 порт заюзать
- кастомные поры в dovecot`e
...
?
P.S
а потом,
если морально-спортивные соображения чесаться будут - докрутить roundcube ?
>[оверквотинг удален]
>> него можно как-то отдельную авторизацию сделать без шифрования? чтоб для обычных
>> почтовых клиентов его оставить.
> варс:
> - 110 порт заюзать
> - кастомные поры в dovecot`e
> ...
> ?
> P.S
> а потом,
> если морально-спортивные соображения чесаться будут - докрутить roundcube ?Да как то так. Пока затраты времени на это превышают результат. Как поднять почтовик на linux уже понятно и это радует. Еще впереди надо как-то прикрутить fetchmail для забора почты у провайдера и раскидку по пользователям согласно получателю (аналог DomainPOP в Mdaemon) + фильтрацию спама, вот тут вижу основную проблему (еще на пару тем обсуждений). За советы большое спасибо.
>> а потом,
>> если морально-спортивные соображения чесаться будут - докрутить roundcube ?
> Да как то так. Пока затраты времени на это превышают результат. Как
> поднять почтовик на linux уже понятно и это радует. Еще
> впереди надо как-то прикрутить fetchmail для забора почты у провайдера и
> раскидку по пользователям согласно получателю (аналог DomainPOP в Mdaemon) + фильтрацию
> спама, вот тут вижу основную проблему (еще на пару тем обсуждений).
> За советы большое спасибо.глянете cat /etc/services | grep imap ...там уже сами imap(без secure layer) докрутите в dovecot`e и roundcube,
fetchmail - просто по докам и прочему,
а касаемo спама придется повозиться с доками и поисковиками... там много вариантов решения
$rcmail_config['debug_level'] = 8; в roundcube чтобы подробности ошибки узнать
> $rcmail_config['debug_level'] = 8; в roundcube чтобы подробности ошибки узнатьСделал в файл roundcube/log/errors вообще перестало что-то писаться. Или в каком-то другом месте смотреть уже надо?
пробовал еще в таком виде $config['debug_level'] = 8; тоже в логе пусто.
Errors are written to the log if the debug level has set the bit for 1. If you want bugs to bew shown on the screen, set it to 4. If you want both logging and displaying then you have to set your debug level to 5.// Log IMAP conversation to <log_dir>/imap or to syslog
$config['imap_debug'] = true;
> Errors are written to the log if the debug level has set
> the bit for 1. If you want bugs to bew shown
> on the screen, set it to 4. If you want both
> logging and displaying then you have to set your debug level
> to 5.
> // Log IMAP conversation to <log_dir>/imap or to syslog
> $config['imap_debug'] = true;Прописал
$config['imap_debug'] = true;
$config['debug_level'] = 5;
Сообщение ошибки из лога стало еще на самом сайте roundcube выводить. В syslog ничего не попадает.
вообще roundcube без ssl/tls у вас работает? пускает пользователей?а если прописать явно из этих и попробовать по одному:
$config['default_host'] = 'ssl://127.0.0.1:143' (да да 143, ты не ошибся)$config['default_host'] = 'tls://127.0.0.1:143' (да да 143, ты не ошибся)
$config['default_host'] = 'ssl://127.0.0.1:993'
$config['default_host'] = 'tls://127.0.0.1:993'
так же возможно идет проверка сертификата и FQDN, на которое выдан SSL сертификат, тогда придется бекэнд указывать в виде ssl://mail.test.ru:993 или tls://mail.test.ru:993
> так же возможно идет проверка сертификата и FQDN, на которое выдан SSL
> сертификат, тогда придется бекэнд указывать в виде ssl://mail.test.ru:993 или tls://mail.test.ru:993Тоже проверю, точно помню сертификат создавал отличный от имени сервака. Переименую если что.
Вот как раз нашел по моей теме, виноват походу PHP 5.6 который из сертификата стал имя FQDN брать и сравнивать. Ну насколько я понял. http://www.roundcubeforum.net/index.php?topic=22035.0
>> так же возможно идет проверка сертификата и FQDN, на которое выдан SSL
>> сертификат, тогда придется бекэнд указывать в виде ssl://mail.test.ru:993 или tls://mail.test.ru:993
> Тоже проверю, точно помню сертификат создавал отличный от имени сервака. Переименую если
> что.
> Вот как раз нашел по моей теме, виноват походу PHP 5.6 который
> из сертификата стал имя FQDN брать и сравнивать. Ну насколько я
> понял. http://www.roundcubeforum.net/index.php?topic=22035.0В общем переименовал сервак днс настроил на имя из сертификата, ошибка таже. Из прошлой ссылки пробовал конфиг менять тоже глухо все тоже самое.
> вообще roundcube без ssl/tls у вас работает? пускает пользователей?
> а если прописать явно из этих и попробовать по одному:
> $config['default_host'] = 'ssl://127.0.0.1:143' (да да 143, ты не ошибся)
> $config['default_host'] = 'tls://127.0.0.1:143' (да да 143, ты не ошибся)
> $config['default_host'] = 'ssl://127.0.0.1:993'
> $config['default_host'] = 'tls://127.0.0.1:993'Сейчас проверю, вчера вроде так делал эффекта не было.
Да я там в заголовке писал, отрубаю всю эту бабуйню с tls и сертификатами и сразу roundcube пускает без проблем по 110 порту.
>> вообще roundcube без ssl/tls у вас работает? пускает пользователей?
>> а если прописать явно из этих и попробовать по одному:
>> $config['default_host'] = 'ssl://127.0.0.1:143' (да да 143, ты не ошибся)
>> $config['default_host'] = 'tls://127.0.0.1:143' (да да 143, ты не ошибся)
>> $config['default_host'] = 'ssl://127.0.0.1:993'
>> $config['default_host'] = 'tls://127.0.0.1:993'
> Сейчас проверю, вчера вроде так делал эффекта не было.
> Да я там в заголовке писал, отрубаю всю эту бабуйню с tls
> и сертификатами и сразу roundcube пускает без проблем по 110 порту.Вот на 143 порт ругается
[06-Jul-2015 23:28:48 Europe/Moscow] PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap_generic.php on line 913
[06-Jul-2015 23:28:48 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from 10.10.0.90. Unable to negotiate TLS in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)А это остальное. C ssl сразу отлуп дает даже не задумывается.
[06-Jul-2015 23:32:27 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from 10.10.0.90. Empty startup greeting (127.0.0.1:993) in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
[06-Jul-2015 23:33:37 +0300]: <u95mgrt5> IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Could not connect to ssl://127.0.0.1:993: Unknown reason in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
[06-Jul-2015 23:33:41 +0300]: <u95mgrt5> IMAP Error: Login failed for ivanov@test.ru from 10.10.0.90. Could not connect to ssl://127.0.0.1:993: Unknown reason in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
[06-Jul-2015 23:34:21 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from 10.10.0.90. Could not connect to ssl://127.0.0.1:143: Unknown reason in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
[06-Jul-2015 23:35:15 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from 10.10.0.90. Could not connect to ssl://mail.test.ru:993: Unknown reason in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
[06-Jul-2015 23:36:54 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from 10.10.0.90. Empty startup greeting (mail.test.ru:993) in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)
а ну попробуй https://bbs.archlinux.org/viewtopic.php?id=193012у меня 5.5.9 и честные сертификаты на серваках, посему наверно и не столкнулся с такой хнёй
> а ну попробуй https://bbs.archlinux.org/viewtopic.php?id=193012
> у меня 5.5.9 и честные сертификаты на серваках, посему наверно и не
> столкнулся с такой хнёйУже пробовал это, только отсюда http://www.roundcubeforum.net/index.php?topic=22035.0
Глухо. Ошибка та же. Имя хоста менял как в сертификате прописан был.
> Вот на 143 порт ругается
> [06-Jul-2015 23:28:48 Europe/Moscow] PHP Warning: stream_socket_enable_crypto(): SSL
> operation failed with code 1. OpenSSL Error messages:
> error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
> in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap_generic.php on line
> 913
> [06-Jul-2015 23:28:48 +0300]: <u95mgrt5> IMAP Error: Login failed for petrov@test.ru from
> 10.10.0.90. Unable to negotiate TLS in /var/www/html/roundcube/program/lib/Roundcube/rcube_imap.php
> on line 198 (POST /roundcube/?_task=login?_task=login&_action=login)попробуйте ради эксперимента закомментировать все ваши херомантии c отлючением всякий версий TLS и шифров:
#ssl_protocols = TLSv1 TLSv1.1 TLSv1.2 !SSLv2 !SSLv3
#ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULLих уже потом после того как получится хоть как-то по SSL или TLS успешно подключится к IMAP'у настроить, по уму (а не как было взято копи пастом откуда-то)
> Да я там в заголовке писал, отрубаю всю эту бабуйню с tls
> и сертификатами и сразу roundcube пускает без проблем по 110 порту.по 110 порту вы подключались по POP3 протоколу, а не протоколу IMAP
>> Да я там в заголовке писал, отрубаю всю эту бабуйню с tls
>> и сертификатами и сразу roundcube пускает без проблем по 110 порту.
> по 110 порту вы подключались по POP3 протоколу, а не протоколу IMAPУгу ошибся конечно не 110, голова уже пухла просто.
Самое главное, что я все-таки решил проблему. Все подключается.
Конфиги те же. Только удалил уже созданные сертификаты postfix и dovecot.
Создал их по новой но уже с самоподписанным центром сертификации по этому мануалу http://help.ubuntu.ru/wiki/postfix_dovecot_ldap_ubuntu_10_04
От туда взял секцию авторизации SSL в конфиге dovetcot, ну и пути к сертификатам поменял + CA сертификат добавил.disable_plaintext_auth = yes
ssl = yes
ssl_cert_file = /etc/ssl/certs/mydovecot.pem
ssl_key_file = /etc/ssl/private/server.key
ssl_ca_file = /etc/ssl/certs/cacert.pem
ssl_protocols = TLSv1 TLSv1.1 TLSv1.2 !SSLv2 !SSLv3
ssl_cipher_list = ALL:!LOW:!SSLv2:ALL:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUMИмя сервера как в сертификате. DNS поправил.
В итоге завелось с таким параметром roundcube
$config['default_host'] = 'localhost'
Порты и тип авторизации закоментил.Но начало работать странно, после того как сначала выставил (dovecot) ssl = no все заработало, потом вернул ssl = yes. B все осталось работать.
Работу с сертификатами The Bat проверил он сейчас капризный зараза самоподписанные не жрет только с доверенного центра подавай.
В общем вот так. Завтра попробую с нуля еще раз поднять для проверки, благо усе ходы записаны )).
Всем откликнувшимся спасибо.