Настройка ssl exim+dovecot (ISPmanager)

baltun

Администратор
Сообщения
10.731
Реакции
2.542
Баллы
2.003
Настраиваем ssl на exim и dovecot для панели ISP Manager. Сертификаты заказываются как правило на одно доменное имя, через которое будет идти эл.почта. Можно так же попробовать заказать сертификат на несколько доменных имен, если их не много, например 3-5.

Exim
Правим конфигурационный файл:
Код:
nano /etc/exim/exim.conf

Находим секцию и прописываем пути к сертификатам:
Код:
# TLS/SSL
tls_advertise_hosts = *
tls_certificate = /etc/exim/ssl/domain.ru.crt
tls_privatekey = /etc/exim/ssl/domain.ru.key
daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465

Можно прописать и таким образом:
Код:
# TLS/SSL
tls_advertise_hosts = *
tls_certificate = /etc/exim/ssl/domain.ru.crt
tls_privatekey = /etc/exim/ssl/domain.ru.pem
daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465

Права на сертификаты должны быть следующие:
Код:
chmod 444 /etc/exim/ssl/domain.ru.crt
chmod 400 /etc/exim/ssl/domain.ru.key
или так
chmod 444 /etc/exim/ssl/domain.ru.crt
chmod 400 /etc/exim/ssl/domain.ru.pem

Перезапускаем exim:
Код:
service exim restart

Dovecot
Файлы из папки conf.d уже подключены, поэтому переходим сразу к файлу /etc/dovecot/conf.d/10-ssl.conf и правим его:
Код:
nano  /etc/dovecot/conf.d/10-ssl.conf
Раскомментируем секцию
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/domain.ru.crt
ssl_key = </etc/pki/dovecot/private/domain.ru.key

Так же прописать сертификаты можно так:
Код:
ssl_cert = </etc/pki/dovecot/certs/domain.ru.pem
ssl_key = </etc/pki/dovecot/private/domain.ru.pem

Права на сертификат:
Код:
chmod 600 /etc/pki/dovecot/certs/domain.ru.crt
chmod 600 /etc/pki/dovecot/private/domain.ru.key

Перезапускаем dovecot:
Код:
service dovecot restart

Теперь проверяем работу через терминал или SSH командой:
Код:
в нашем случае
openssl s_client -connect news36.org:465
openssl s_client -connect news36.org:993
или так
openssl s_client -connect ваш домен:465
openssl s_client -connect ваш домен:993


Теперь настраиваем Dovecot более детальние.
Файл аутентификации /usr/local/etc/dovecot/conf.d/10-auth.conf
Код:
# Пока настраивал оставил включенным PLAIN тип аутентификации
disable_plaintext_auth = no
# Отключаем кэш аутентифкации
auth_cache_size = 0
# Список разрешенных символов в имени пользователя
auth_username_chars = abcdefghijklmnopqrstuvwxyzAB \
CDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
# Преобразование формат имени пользователя в нижний регистр
auth_username_format = %Lu
# Максимальное количество работающих процессов аутентификации
auth_worker_max_count = 30
# Количество секунд перед повторной аутентификацией
auth_failure_delay = 2 secs
# Отказать в аутентификации, если у клиента неверный SSL сертификат
auth_ssl_require_client_cert = no
# Не брать имя пользователя из SSL сертификата
auth_ssl_username_from_cert = no
# Список разрешенных методов аутентификации
auth_mechanisms = plain login cram-md5

Файл настройки логирования /usr/local/etc/dovecot/conf.d/10-logging.conf
Код:
# Путь к основному лог файлу
log_path = /var/log/dovecot/mainlog
# Логировать неудачные попытки входа
auth_verbose = yes
# Не выводить при этом в лог пароли
auth_verbose_passwords = no
# На момент настройки лучше включить более подробное логирование
auth_debug = yes
mail_debug = yes
# Возможность добавлять плагины mail_log
plugin {
}

Файл сервисов и сокетов /usr/local/etc/dovecot/conf.d/10-master.conf
Код:
# Ограничение числа процессов
default_process_limit = 100
default_client_limit = 1000
# Внутренний пользователь для процесса логона
default_login_user = dovenull
# Внутренний пользователь для непривилегированных процессов
default_internal_user = dovecot
# Количество активный соединений
  service_count = 1
# Количество процессов, ждущих соединений
  process_min_avail = 3
#  Количество памяти на 1 соединение (service_count)
  vsz_limit = 64M
}
# Сервис имап
service imap {
# память для вложений
  vsz_limit = 256M
# Макс. количество процесов обрабатывающих имап подключения
  process_limit = 128
}
# Сервис поп3
service pop3 {
  process_limit = 256
}
# Сервис аутентификации
service auth {
  unix_listener auth-userdb {
    mode = 0666
    user = mailnull
    group = mail
  }
    unix_listener auth-client {
    mode = 0600
    user = mailnull
    group = mail
  }
  user = $default_internal_user
}
# Сервис воркера
service auth-worker {
  user = $default_internal_user
}
# Сервис обслуживания и оповещения о пользовательской квоте
service quota-warning {
# Скрипт, который отсылает письмо о превышении квоты пользователю
# написан по примеру из оф. вики http://wiki2.dovecot.org/Quota/Configuration
# его содержимое представлено ниже
  executable = script /usr/local/etc/dovecot/overquoted
  unix_listener quota-warning {
    user = mailnull
    group = mail
    mode = 0777
  }
}
# Сокет dict proxy для слежения за квотами
service dict {
  unix_listener dict {
    mode = 0600
    user = mailnull
    group = mail
  }
}

Файл настройки SSL (более детальный) /usr/local/etc/dovecot/conf.d/10-ssl.conf
Код:
# Включаем поддержку
ssl = yes
# SSL сертификаты у меня были готовые
# Для создания сертификатов можно использовать следующий скрипт
# http://dovecot.org/doc/mkcert.sh предварительно изменив пути к файлам
ssl_cert = </usr/local/etc/exim/exim.crt
ssl_key = </usr/local/etc/exim/exim.pem
# Не проверять сертификат пользователя
ssl_verify_client_cert = no
# Используемые типы шифров
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL

Файл протокола IMAP /usr/local/etc/dovecot/conf.d/20-imap.conf
Код:
protocol imap {
# максимальное количество соединений, разрешенных
# с каждого IP адреса
  mail_max_userip_connections = 5
# Подключаем плагин имап квоты и dovecot-antispam плагин
  mail_plugins = $mail_plugins imap_quota antispam
# Формат логов
  imap_logout_format = bytes=%i/%o
# Время ожидания ответа от клиента
  imap_idle_notify_interval = 2 mins
}

Файл протокола POP3 /usr/local/etc/dovecot/conf.d/20-pop3.conf
Код:
protocol pop3 {
# Блокирование ящика на время pop3  сессии
  pop3_lock_session = yes
# максимальное количество соединений, разрешенных
# с каждого IP адреса
  mail_max_userip_connections = 5
}

Если Вы хотите генерировать файл .pem, то все копирует в один каталог например /etc/exim/ssl и пишите команду:
Код:
в нашем случае
cat news36.org.crt > /etc/exim/ssl/news36.org.pem

На этом вроде бы и все.
Структура конфигурационных файлов Dovecot.


  • dovecot.conf — конфигурационный файл Dovecot;
  • dovecot-sql.conf.ext — настройки для sql базы данных пользователей;
  • conf.d/10-auth.conf — параметры процесса авторизации;
  • conf.d/10-director.conf — параметры Dovecot Director;
  • conf.d/10-logging.conf — ведение логов;
  • conf.d/10-mail.conf — расположение почтовых ящиков и параметры пространства имен;
  • conf.d/10-master.conf — сетевые параметры и ограничения для процессов;
  • conf.d/10-ssl.conf — параметры SSL;
  • conf.d/15-lda.conf — параметры LDA;
  • conf.d/20-imap.conf — настройки процесса IMAP;
  • conf.d/20-lmtp.conf — настройки процесса LMTP;
  • conf.d/20-managesieve.conf — настройки процесса ManageSieve;
  • conf.d/20-pop3.conf — настройки процесса POP3;
  • conf.d/90-acl.conf — списки доступа к почтовым ящикам;
  • conf.d/90-plugin.conf — параметры для плагинов;
  • conf.d/90-quota.conf — настройки квот;
  • conf.d/90-sieve.conf — параметры интерпритатора Sieve;
  • conf.d/auth-*.conf.ext — параметры различных баз данных пользователей;
Если требуется настраиваем конфиг Roundcube /usr/local/www/roundcube/config/main.inc.php

Меняем адреса и порты у SMTP и IMAP подключений:

Вместо
Код:
$rcmail_config['default_host'] = 'localhost';
// TCP port used for IMAP connections
$rcmail_config['default_port'] = 143;

рисуем
Код:
$rcmail_config['default_host'] = 'ssl://localhost';
// TCP port used for IMAP connections
$rcmail_config['default_port'] = 993;

и вместо
Код:
$rcmail_config['smtp_server'] = 'localhost';
// SMTP port (default is 25; 465 for SSL)
$rcmail_config['smtp_port'] = 25;

рисуем
Код:
$rcmail_config['smtp_server'] = 'ssl://localhost';
// SMTP port (default is 25; 465 for SSL)
$rcmail_config['smtp_port'] = 465;
 
Последнее редактирование:
Назад
Верх Низ