Управляемый LDAP почтовый сервер с Postfix и Dovecot для нескольких доменов

  1. обзор
  2. LDAP
  3. постфикс
  4. Имя хоста
  5. Отображение LDAP
  6. Почтовые ящики
  7. TLS и сервис представления
  8. голубятня
  9. конфигурация
  10. IMAPS
  11. Бэкэнд LDAP
  12. TLS

В этой статье будет описано, как настроить и настроить защищенную почтовую систему с Postfix и Dovecot в качестве SMTP и IMAP-сервера и OpenLDAP в качестве бэкэнда для аутентификации пользователей и маршрутизации почты.

Все службы будут настроены на использование TLS по умолчанию для обеспечения безопасности транспортного уровня везде, где это возможно. Предполагается, что у вас уже есть работающая установка OpenLDAP, работающая с доступной поддержкой TLS как описано в моей статье OpenLDAP ,

Используемая ОС - Debian, но концептуальный дизайн должен работать независимо от этого.

Если вы обнаружите какие-либо проблемы с настройкой, описанной здесь, или у вас есть предложения по улучшению, пожалуйста, свяжитесь со мной ,

обзор

обзор

Установка состоит из трех различных программных компонентов. Postfix будет передавать сообщения, отправленные клиентами другим MTA, и получать сообщения от других MTA для хранения в maildir пользователя. Dovecot будет обслуживать maildir пользователя через IMAPS, чтобы его можно было читать и управлять клиентским программным обеспечением, таким как Thunderbird. Dovecot также выступает в качестве поставщика аутентификации SASL для Postfix. Информация об учетных записях пользователей и псевдонимах почты хранится в каталоге LDAP и запрашивается Postfix и Dovecot.

Вся установка не будет включать никаких «реальных» учетных записей в ОС. Для Postfix мы можем использовать виртуальные почтовые ящики создавать почтовые ящики с любым UID и GID, который мы хотим, и Dovecot поддерживает виртуальные пользователи которые не должны существовать в контексте ОС.

LDAP

Каталог LDAP должен содержать несколько сведений, необходимых для работы Postfix и Dovecot.

  • Имя пользователя и пароль для аутентификации

  • UID и GID для управления разрешениями пользователя maildir

  • Расположение maildir

  • Список почтовых псевдонимов для данного пользователя, позволяющий одному пользователю иметь несколько почтовых адресов.

Информация об учетной записи может храниться в объектном классе posixAccount. Для хранения псевдонимов необходимо установить новую схему LDAP. Он будет содержать объектный класс postfixUser с двумя атрибутами

Чтобы установить схему postfixUser, загрузите LDIF на хост LDAP и добавьте его в cn = schema, cn = config.

root @ ldaphost: ~ # wget -O postfix.ldif https://raw.githubusercontent.com/68b32/postfix-ldap-schema/master/postfix.ldif root @ ldaphost: ~ # ldapadd -ZZ -x -W -D -D cn = admin, cn = config -H ldap: //ldap.example.com -f postfix.ldif

Чтобы пользователи почты были отделены от других и позволяли разделять привилегии в вашем каталоге, вы можете хранить их в организационном блоке, например ou = Mail, dc = example, dc = com.

dn: ou = Mail, dc = example, dc = com объектный класс: organizUnit объектный класс: top ou: Mail

Создайте почтовую учетную запись, которую можно использовать для тестирования при настройке postfix и dovecot. Чтобы создать хешированный пароль, используйте slappasswd. Убедитесь, что вы не используете какой-либо UID или GID, используемый другим пользователем или процессом.

dn: uid = mail000, ou = Mail, dc = пример, dc = com cn: mail000 gidnumber: 20000 homedirectory: / home / mail / mail000 mailacceptinggeneralid: [email protected] mailacceptinggeneralid: [email protected] maildrop : [email protected] объектный класс: учетная запись объектный класс: posixAccount объектный класс: postfixUser объектный класс: top uid: mail000 uidnumber: 20000 userpassword: {SSHA} ncdXGXXD6zaG76dSCVKVAQLH4vPcHaTa

Псевдонимы, перечисленные в mailacceptinggeneralid, могут содержать любой домен, на который запись MX указывает ваш почтовый сервер. Если вы не уверены, какой домен использовать для maildrop, не беспокойтесь, это будет объяснено при настройке postfix.

Чтобы ускорить поиск в директории, необходимо создать индексы для атрибутов mailacceptinggeneralid и maildrop. Добавьте следующий LDIF к определению вашей базы данных в cn = config, чтобы активировать индексы.

dn: olcDatabase = {1} mdb, cn = config объектный класс: olcDatabaseConfig объектный класс: olcMdbConfig olcdbindex: mailacceptinggeneralid eq, sub olcdbindex: maildrop eq

Поскольку postfix и dovecot будут запрашивать каталог, необходимо создать отдельного пользователя с достаточными правами для чтения поддерева ou = Mail, dc = example, dc = com.

dn: cn = mailAccountReader, ou = Manager, dc = пример, dc = com cn: mailAccountReader объектный класс: objectRole объектный класс: simpleSecurityObject объектный класс: верхний пароль пользователя: {SSHA} GY6RPlSGKI7SPKnnT7i / ktb / 3JGm = авторский xx) от * none до dn.subtree = "ou = Mail, dc = example, dc = com" от dn.base = "cn = mailAccountReader, ou = Manager, dc = example, dc = com", прочитанных * none

Убедитесь, что анонимным учетным записям LDAP разрешено проходить аутентификацию по своему userPassword, поскольку этот механизм будет использоваться Dovecot для аутентификации клиентов.

постфикс

Postfix можно установить из репозитория Debian.

root @ mailhost: ~ # apt-get установить postfix postfix-ldap

Выберите Интернет-сайт в качестве начального типа конфигурации. Затем введите полное доменное имя вашего почтового хоста. Вероятно, это то же самое, что настроено для myhostname в /etc/postfix/main.cf (см. Следующий раздел). Это оставит вам базовый файл /etc/postfix/main.cf для начала работы с постфиксной конфигурацией.

Имя хоста

Самый первый параметр для настройки - это директива myhostname. Это имя хоста почтового сервера, и оно должно совпадать с MX-записью доменов, для которых этот сервер будет получать почту. Это также должно быть установлено как PTR запись для IP-адреса, к которому относится это имя хоста, поскольку обычно блокируется почта с хостов, где это не так. Чтобы проверить это, выполните обратный поиск с помощью dig -x <IP-адрес>.

main.cf

myhostname = mail.example.com

Отображение LDAP

Перед настройкой postfix для доставки и получения почты мы создаем несколько Таблицы поиска LDAP postfix будет использовать для запроса директории. Следующая таблица дает обзор того, как запрашивается информация.

Значение ключа virtual_alias_domains Доменная часть адреса [email protected] Что угодно, если это размещенный домен, в противном случае - virtual_alias_maps Адрес в форме [email protected] Адрес в форме [email protected] virtual_mailbox_maps Адрес в форме [email protected] Путь к почтовому каталогу virtual_uid_maps Адрес от [email protected] Числовой UID, который будет использоваться для почтового каталога smtpd_sender_login_maps Адрес в форме [email protected] Имя пользователя, которому разрешено использовать этот адрес отправителя

Создайте каталог / etc / postfix / ldap, чтобы хранить все определения карт в одном месте. Поскольку файлы в этом каталоге будут содержать ваши учетные данные LDAP, установите для его владельца значение postfix: postfix и его режим на 0100.

Информация о соединении для вашего каталога LDAP является общей для всех карт и может быть скопирована в начало всех них.

server_host = ldap: //ldap.example.com start_tls = yes version = 3 tls_ca_cert_file = /etc/ldap/tls/CA.pem tls_require_cert = yes bind = yes bind_dn = cn = mailAccountReader, ou = Manager, dc = пример, dc = com bind_pw = <пароль для bind_dn> search_base = ou = Mail, dc = пример, dc = com scope = sub

Это соединится с каталогом LDAP с использованием TLS и проверит действительность сертификата, предоставленного узлом. Это должно быть включено во все файлы в / etc / postfix / ldap, перечисленные далее.

virtual_alias_domains

query_filter = mailacceptinggeneralid = * @ @% s result_attribute = mailacceptinggeneralid result_format =% d virtual_alias_maps query_filter = mailacceptinggeneralid =% s result_attribute = maildrop virtual_mailbox_maps query_filter = maildrop =% s result_attribute = homeDirectory result_format =% s / mailbox / virtual_uid_maps query_filter = maildrop =% s result_attribute = uidNumber smtpd_sender_login_maps query_filter = (| (mailacceptinggeneralid =% s) (maildrop =% s)) result_attribute = uid

Вы можете проверить отображение с помощью команды postmap. Вот пример вывода для пользователя, созданного для тестирования.

root @ mailhost: ~ # postmap -q hosted-domain.com ldap: / etc / postfix / ldap / virtual_alias_domains hosted-domain.com, hosted-domain.com root @ mailhost: ~ # postmap -q [email protected]. com ldap: / etc / postfix / ldap / virtual_mailbox_maps / home / mail / mail000 / mailbox / root @ mailhost: ~ # postmap -q [email protected] ldap: / etc / postfix / ldap / virtual_uid_maps 20000 root @ mailhost : ~ # postmap -q [email protected] ldap: / etc / postfix / ldap / smtpd_sender_login mail000

Если поиск не работает должным образом, установите debuglevel = -1 в определении карты и просмотрите выходные данные при запуске postmap.

Поскольку файлы содержат учетные данные для привязки к каталогу, убедитесь, что установлены правильные разрешения для файлов.

root @ mailhost: ~ # chown postfix: postfix / etc / postfix / ldap / * root @ mailhost: ~ # chmod 400 / etc / postfix / ldap / *

Еще одна проблема, которую нужно решить, это то, что postfix будет работать в окружающая среда (/ var / spool / postfix) и не будет обращать внимания на сертификат CA /etc/ldap/tls/CA.pem, необходимый для проверки сертификата сервера. Чтобы противостоять этой проблеме, создайте / var / spool / postfix / etc / ldap / tls / и либо скопируйте /etc/ldap/tls/CA.pem в этот каталог, либо создайте привязку, чтобы сделать сертификат CA доступным в обоих местах ,

root @ mailhost: ~ # mkdir -p / var / spool / postfix / etc / ldap / tls root @ mailhost: ~ # touch /var/spool/postfix/etc/ldap/tls/CA.pem root @ mailhost: ~ # mount --bind /etc/ldap/tls/CA.pem /var/spool/postfix/etc/ldap/tls/CA.pem

Имейте в виду, что это не будет сохраняться при перезагрузке, поэтому обязательно связывайте каталог до запуска postfix. Это может быть достигнуто с помощью системного модуля монтирования. Создайте /etc/systemd/system/var-spool-postfix-etc-ldap-tls-CA.pem.mount со следующим содержимым.

вар-золотниковый Постфиксный-и т.д.-LDAP-TLS-CA.pem.mount

[Unit] Описание = Привязать /etc/ldap/tls/CA.pem к /var/spool/postfix/etc/ldap/tls/CA.pem Before = postfix.service [Монтировать] Что = / etc / ldap / tls / CA.pem Где = / var / spool / postfix / etc / ldap / tls / CA.pem Тип = нет Параметры = bind [Установить] WantedBy = postfix.service

Перезагрузите systemd и запустите модуль.

root @ mailhost: ~ # systemctl daemon-reload root @ mailhost: ~ # systemctl start var-spool-postfix-etc-ldap-tls-CA.pem.mount root @ mailhost: ~ # mount | grep CA

Проверьте выходные данные mount, чтобы увидеть, было ли связывание успешным, и разрешите настройку bind mount перед постфиксом при загрузке.

root @ mailhost: ~ # systemctl enable var-spool-postfix-etc-ldap-tls-CA.pem.mount Создана символическая ссылка из /etc/systemd/system/postfix.service.wants/var-spool-postfix-etc-ldap -tls-CA.pem.mount в /etc/systemd/system/var-spool-postfix-etc-ldap-tls-CA.pem.mount.

Перезагрузите хост, чтобы увидеть, создается ли привязка во время загрузки.

Почтовые ящики

Postfix реализует разные методы доставить почту получателю. В этой настройке мы будем использовать класс домена виртуального псевдонима и класс домена виртуального почтового ящика . Каждый конечный почтовый ящик связан с определенным адресом <username> @ $ myhostname. $ myhostname содержит имя хоста, установленное в /etc/postfix/main.cf, и будет указано в virtual_mailbox_domains. Все размещенные домены рассматриваются как виртуальные домены-псевдонимы и будут перечислены в virtual_alias_domains с картой LDAP, определенной ранее и сопоставленной с адресом конечного почтового ящика.

Testuser mail000, созданный в разделе LDAP, содержит адреса [email protected] и [email protected] в качестве mailacceptinggeneralid. Когда письмо получено для одного из этих адресов, postfix будет искать соответствующий атрибут maildrop, который может быть либо удаленным адресом (например, просто переслать адрес Gmail), либо адресом с доменом, указанным в virtual_mailbox_domains, например mail000 @ mail.example.com. Письма на домены, перечисленные в virtual_mailbox_domains, будут храниться в почтовом ящике пользователя. Информация о том, где и как создать почтовый ящик, также извлекается из LDAP с использованием адреса почтового ящика.

/etc/postfix/main.cf

myhostname = mail.example.com virtual_alias_domains = ldap: / etc / postfix / ldap / virtual_alias_domains virtual_mailbox_domains = $ myhostname virtual_alias_maps = ldap: / etc / postfix / ldap / virtual_alias_maps virtual_mailbox_base = / virtual_ap_setup_mags_mags_mags_mags_mags_mags_plus_mags_plus_mags_plus_mags_ps virtual_uid_maps = ldap: / etc / postfix / ldap / virtual_uid_maps virtual_gid_maps = ldap: / etc / postfix / ldap / virtual_uid_maps smtpd_sender_login_maps = ldap: / etc / postfix / ldap / smtlod_mader

Очень важно перечислить каждый домен только один раз. Например, не указывайте $ myhostname в mydestination или virtual_alias_domains, если они уже перечислены в virtual_mailbox_domains.

virtual_alias_domains распространяется на все домены, используемые в адресах, указанных в любом атрибуте mailacceptinggeneralid в поддереве ou = Mail, dc = example, dc = com.

Почтовые ящики будут храниться в формат maildir если значение, возвращаемое картой virtual_mailbox_maps, заканчивается на /. Возвращенное значение будет добавлено к virtual_mailbox_base. Карта, используемая в этой настройке, будет возвращать путь, сохраненный в атрибуте homedirectory пользователя, с / mailbox / appended. Таким образом, для созданного ранее testuser, почта на [email protected] и [email protected] сначала будет перенаправлена ​​на [email protected], а затем сохранена в / home / mail / mail000 / mailbox / in формат maildir .

Каталог / home / mail, содержащий домашние страницы пользователей, должен быть создан заранее и должен быть доступен для записи всем потенциальным пользователям почты. Чтобы достичь этого, либо используйте один и тот же GID для всех пользователей почты и задайте для группы владение этим GID, либо сделайте мир каталогов доступным для записи.

root @ mailhost: ~ # mkdir -p / home / mail root @ mailhost: ~ # chmod o + w / home / mail # Сделать мир доступным для записи или root @ mailhost: ~ # chown: <common GID> / home / mail && chmod g + w / home / mail # использовать общую группу

Пользовательские каталоги будут создаваться с UID и GID пользователя и минимальными разрешениями для postix при получении почты.

Перезагрузите postfix и попробуйте отправить тестовое письмо на ваш новый сервер.

root @ mailhost: ~ # systemctl перезагрузка postfix root @ mailhost: ~ # tail -f /var/log/mail.info

Когда почта получена, журналы должны содержать что-то вроде

... / smtpd [6693]: подключиться из неизвестного [xxxx: ...] ... / smtpd [6693]: A7D1665808DE: клиент = неизвестно [xxxx: ...] ... / cleanup [6697]: A7D1665808DE : message-id = <[email protected]> ... / qmgr [5561]: A7D1665808DE: from = <[email protected]>, размер = 892, nrcpt = 1 (очередь активна) ... / smtpd [6693]: отключиться от неизвестного [xxx: ...] ... / virtual [6698]: A7D1665808DE: to = <[email protected]>, orig_to = <test0 @ hosted-domain .com>, реле = виртуальный, задержка = 0,42, задержки = 0,31 / 0,01 / 0 / 0,1, DSN = 2,0,0, статус = отправлено (доставлено в maildir) ... / qmgr [5561]: A7D1665808DE: удалено

затем проверьте, был ли создан maildir

root @ mailhost: ~ # tree -pug / home / mail / mail000 / / home / mail / mail000 / └── [drwx ------ 20000 20000] почтовый ящик ├── [drwx ------ 20000 20000] cur ├── [drwx ------ 20000 20000] новый │ └── [-rw ------- 20000 20000] 1458124575.V902I1b800feM892045.mx0 └── [drwx ----- - 20000 20000] т / т

TLS и сервис представления

Чтобы избежать перехвата данных, которыми обмениваются с постфиксом, TLS должен быть включен и настроен правильно. Рекомендуется по крайней мере использовать длину ключа 2048 бит для ключа RSA и предоставить действительный сертификат с правильным общим именем (CN), подписанный известным центром сертификации. Если вы не хотите платить деньги, подумайте Давайте зашифруем как бесплатная альтернатива. Также рекомендуется генерировать свои собственные группы Диффи-Хеллмана, по крайней мере, с 2048 битами из-за некоторых недостатки, обнаруженные в широко и широко используемых группах Диффи-Хеллмана ,

Чтобы создать группу с 4096 бит, запустите

root @ mailhost: ~ # openssl dhparam 4096> /etc/postfix/dhparam/dh4096.pem

Создание новой группы время от времени повысит безопасность.

Поддержка TLS должна быть настроена для серверной части (smtpd_tls_ *) postfix, чтобы шифровать и аутентифицировать соединение при получении почты, а также на стороне клиента (smtp_tls_ *) для обеспечения доставки внешним MTA.

main.cf

smtpd_tls_cert_file = /etc/postfix/tls/server.crt smtpd_tls_key_file = /etc/postfix/tls/server.key smtpd_tls_loglevel = 1 smtpd_tls_received_header = да smtpd_tls_security_level = может smtpd_tls_auth_only = да smtpd_tls_mandatory_protocols =! SSLv2,! SSLv3 #tls_preempt_cipherlist = да tls_disable_workarounds = 0xFFFFFFFFFFFFFFFF smtpd_tls_mandatory_ciphers = высокий smtpd_tls_exclude_ciphers = aNULL, eNULL, экспорт, DES, RC4, MD5, ФМн, aECDH, ЭДГ-DSS-DES-CBC3-ША, ЭДГ-RSA-DES-CDB3-ША, krb5-DES, CBC3-ША smtpd_tls_dh1024_param_file = /etc/postfix/dhparam/dh4096.pem smtpd_tls_eecdh_grade = ultra

Эта конфигурация для стороны smtpd довольно безопасна, но ограничена и может работать не со всеми MTA.

smtpd_tls_mandatory_ciphers устанавливает разрешенный к использованию набор шифров и имеет высокий уровень. Чтобы увидеть, какие шифры принадлежат этой группе, запустите postconf tls_high_cipherlist.

smtpd_tls_exclude_ciphers содержит список небезопасных шифров и является рекомендуемые исследовательской группой, упомянутой выше.

tls_preempt_cipherlist включает настройки шифрования сервера, если установлено значение yes. Это означает, что вместо клиента postfix выберет шифр, используемый для связи. Это может вызвать некоторые проблемы совместимости, смотрите документацию postfix для дополнительной информации.

tls_disable_workarounds значение 0xFFFFFFFFFFFFFFFF отключает все способы устранения ошибок OpenSSL в 64-битной системе, поскольку они могут создавать неожиданные проблемы безопасности.

smtpd_tls_security_level имеет значение may, что означает, что шифрование не является обязательным. Изменение этого параметра на шифрование приведет к принудительному использованию TLS, но имеет побочный эффект, заключающийся в том, что MTA без возможности TLS не смогут доставлять почту на ваш сервер.

smtpd_tls_auth_only обеспечивает шифрование во время аутентификации независимо от smtpd_tls_security_level.

smtpd_tls_dh1024_param_file устанавливает путь к группе Диффи-Хеллмана и, несмотря на то, что имя может (и должно!) быть больше 1024 бит.

smtpd_tls_eecdh_grade выбирает кривые, используемые постфиксом для обмена эфемерными ключами ECDH. ultra выбирает кривую, заданную в tls_eecdh_ultra_curve (см. postconf tls_eecdh_ultra_curve), и является самой сильной из доступных настроек, но требует примерно вдвое больше вычислительных затрат для сильной настройки.

Для отладки соединений TLS smtpd_tls_loglevel должен быть установлен как минимум в 1.

Значение smtpd_tls_received_header, установленное в yes, добавит информацию о шифрах, используемых при передаче, в заголовки сообщений.

main.cf

smtp_tls_security_level = проверить smtp_tls_CApath = / и т.д. / SSL / сертификаты smtp_tls_loglevel = $ smtpd_tls_loglevel smtp_tls_mandatory_protocols = $ smtpd_tls_mandatory_protocols smtp_tls_mandatory_ciphers = $ smtpd_tls_mandatory_ciphers smtp_tls_exclude_ciphers = $ smtpd_tls_exclude_ciphers

Для стороны smtp для smtp_tls_loglevel, smtp_tls_mandatory_protocols, smtp_tls_mandatory_ciphers и smtp_tls_exclude_ciphers установлены те же значения, что и для их аналогов smtpd. smtp_tls_security_level установите для проверки принудительное шифрование при доставке почты. Соединение с внешним MTA не будет установлено, если TLS не поддерживается или сертификат удаленного сайта не может быть проверен. Для проверки сертификата используются сертификаты CA в smtp_tls_CApath. Это может привести к тому, что почта будет отложена, если сертификат партнера был самоподписан или срок его действия истек. Чтобы решить эту проблему, используйте параметр менее безопасного шифрования или установите delay_warning_time до подходящего значения, чтобы получить уведомление, если ваша почта была отложена.

Если для smtpd_tls_security_level задано значение may или для tls_preempt_cipherlist значение no, рекомендуется предоставить второй экземпляр прослушивания smtpd через порт 587, для которого smtpd_tls_security_level имеет значение encrypt, а для tls_preempt_cipherlist установлено значение yes. Этот экземпляр затем должен использоваться пользователями для отправки почты для доставки (исходящий SMTP-сервер).

Чтобы включить службу отправки, отредактируйте /etc/postfix/master.cf и раскомментируйте соответствующие строки.

master.cf

... отправка inet n - - - - smtpd -o syslog_name = postfix / submission -o smtpd_tls_security_level = шифровать -o tls_preempt_cipherlist = да

Перезагрузите postfix и проверьте /var/log/mail.* на наличие ошибок. Также проверьте, прослушивает ли служба представления порт 587.

root @ mailhost: ~ # systemctl перезагрузка postfix root @ mailhost: ~ # netstat -pltn | мастер grep

голубятня

В то время как Postfix служит SMTP-сервером и ретранслятором, Dovecot будет служить IMAP сервер для извлечения сообщений, хранящихся на почтовом узле. Dovecot также включает в себя SASL реализация, которая может использоваться postfix для аутентификации пользователей.

Пакеты Dovecot можно установить из репозитория Debian.

root @ mailhost: ~ # apt-get установить dovecot-core dovecot-imapd dovecot-ldap

конфигурация

Конфигурация распределена по нескольким файлам в / etc / dovecot / и /etc/dovecot/conf.d и содержит некоторые базовые блоки конфигурации, которые можно включить, раскомментировав их. doveconf -n распечатает окончательную сборку конфигурации из всех фрагментов.

Расположение Maildir указывается в /etc/dovecot/conf.d/10-mail.conf. Домашний каталог пользователя будет считан из LDAP, а к / mailbox добавится следующая конфигурация.

Maildir: ~ / почтовый ящик

IMAPS

Чтобы активировать только поддержку IMAPS на порту 993 и деактивировать потенциально небезопасные попытки входа в систему на обычный порт IMAP 143, порт прослушивателя imap должен быть установлен на 0, а строки для IMAPS необходимо раскомментировать в /etc/dovecot/conf.d/ 10-master.conf.

10-master.conf

service imap-login {inet_listener imap {port = 0} inet_listener imaps {port = 993 ssl = yes} service_count = 1 process_min_avail = 1}

Бэкэнд LDAP

Dovecot может использовать LDAP в качестве база паролей для аутентификации, а также база данных пользователей для получения информации, такой как местоположение maildir, а также UID и GID пользователя. Обзор дается в Dovecot Wiki ,

Чтобы активировать LDAP в качестве базы данных паролей и пользователей, включите ее в /etc/dovecot/conf.d/10-auth.conf и отключите auth-system.conf.ext.

10-auth.conf

#! include auth-system.conf.ext! include auth-ldap.conf.ext

/etc/dovecot/conf.d/auth-ldap.conf.ext должен содержать объявление для passdb и userdb.

Auth-ldap.conf.ext

passdb {driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext} userdb {driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext}

Файл /etc/dovecot/dovecot-ldap.conf.ext используется и passdb, и userdb для настройки параметров соединения с каталогом LDAP.

голубятня-ldap.conf.ext

uris = ldap: //ldap.example.com dn = cn = mailAccountReader, ou = Manager, dc = пример, dc = com dnpass = <dn bind password> tls = yes tls_ca_cert_file = /etc/ldap/tls/CA.pem tls_require_cert = hard debug_level = 0 auth_bind = да auth_bind_userdn = uid =% u, ou = Mail, dc = пример, dc = com ldap_version = 3 base = ou = Mail, dc = пример, dc = com scope = поддерево user_attrs = homeDirectory = home, uidNumber = uid, gidNumber = gid user_filter = (& (objectClass = posixAccount) (uid =% u))

Эта конфигурация auth_bind = yes пытается привязать к OpenLDAP с DN аутентифицирующего пользователя IMAP вместо прямой проверки пароля. Преимущество этой конфигурации заключается в том, что пароль, хранящийся в каталоге, не должен быть доступен для чтения Dovecot. Когда шаблон auth_bind_userdn определен, pass_attr может быть опущен. user_filter устанавливает фильтр для поиска записи LDAP, используя имя пользователя для входа. user_attrs сопоставляет атрибуты LDAP с внутренними атрибутами Dovecot. При получении информации о пользователе Dovecot подключается к каталогу с учетными данными, установленными с помощью директив dn и dnpass. Другие параметры используются для подключения к OpenLDAP с TLS и такие же, как в конфигурации postfix.

TLS

Протокол TLS можно настроить в /etc/dovecot/conf.d/10-ssl.conf. Либо повторно используйте ключ и сертификат, используемые для postfix, если имя хоста для сервера IMAP будет одинаковым, либо сгенерируйте новый ключ и сертификат для Dovecot. Группа Диффи-Хеллмана генерируется и управляется автоматически Dovecot, размер может быть установлен с помощью ssl_dh_parameters_length и должен быть по крайней мере установлен на 2048 бит. Ciphersuite был взят из weakdh.org

10-ssl.conf

ssl = обязательный ssl_cert = </etc/dovecot/tls/server.crt ssl_key = </etc/dovecot/tls/server.key ssl_dh_parameters_length = 4096 ssl_protocols =! SSLv2! SSLv3-ssl_cipher_list = ECD: ECD: ECD: ESC: ESC: = ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: ДНЕ-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256- SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: ДНЕ-DSS-AES128-SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: AES: КАМЕЛИЯ: DES- CBC3-ША! aNULL: eNULL: ЭКСПОРТ: DES: RC4: MD5: PSK: aECDH: EDH-DSS-DES-CBC3-ША! EDH-RSA-DES-CBC3-ША: ! KRB5-DES-CBC3-SHA ssl_prefer_server_ciphers = yes verbose_ssl = yes

Dovecot может быть настроен для предоставления интерфейса SASL для postfix, чтобы аутентификация для postfix могла выполняться через Dovecot, который затем использует LDAP в качестве бэкэнда.

Чтобы активировать интерфейс SASL, включите службу авторизации в /etc/dovecot/conf.d/10-master.conf.

10-master.conf

аутентификация службы {... unix_listener / var / spool / postfix / private / auth {mode = 0660 user = postfix group = postfix}}

Это создаст сокет unix в / var / spool / postfix / private / auth, принадлежащий и доступный только пользователю postfix.

Чтобы активировать аутентификацию SASL в postfix, включите ее в /etc/postfix/main.cf.

main.cf

smtpd_sasl_type = dovecot smtpd_sasl_path = private / auth smtpd_sasl_auth_enable = да неработающий_sasl_auth_clients = да

Чтобы разрешить ретрансляцию почты от прошедших проверку пользователей удаленным адресатам, добавьте allow_sasl_authenticated в smtpd_relay_restriction. И чтобы разрешить только адреса FROM, принадлежащие аутентифицированному пользователю, установите reject_sender_login_mismatch в smtpd_recipient_restrictions. Разрешенные адреса ищутся по карте, определенной в smtpd_sender_login_maps.

main.cf

smtpd_relay_restrictions = allow_mynetworks allow_sasl_authenticated defer_unauth_destination smtpd_recipient_restrictions = reject_sender_login_mismatch

Postfix аутентификацию можно легко проверить из командной строки. Сначала подключитесь к серверу через порт 25 или порт 587.

you @ workspace: ~ $ openssl s_client -starttls smtp -connect mail.example.com:25

Вы получите много полезной информации об установленном соединении TLS. Следующий шаг - познакомиться с командой EHLO.

EHLO foo.example.com 250-mail.example.com 250-ТРУБОПРОВОД 250-РАЗМЕР 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN 250-AUTH = PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN

Строка 250-AUTH указывает, что аутентификация включена. Для проверки подлинности создайте строку в кодировке base64, содержащую имя пользователя и пароль с префиксом NULL-байтов.

you @ workstation: ~ $ echo -ne "\ 0username \ 0password" | base64

Затем выполните аутентификацию, отправьте строку на сервер.

AUTH PLAIN AHVzZXJuYW1lAHBhc3N3b3Jk 235 2.7.0 Аутентификация прошла успешно

Вы получите либо 235, либо 535 в зависимости от того, прошла ли аутентификация успешно. Если аутентификация не работает должным образом, см. Ошибки в /var/log/mail.*. Если это не помогает, установите debug_level = -1 в /etc/dovecot/dovecot-ldap.conf.ext и снова проверьте журналы при тестировании аутентификации.

связи

Похожие

Обзор Sony Ericsson Xperia Arc: наше мнение
Из своей коробки Sony Ericsson Xperia Arc довольно длинный, как мобильный. Нормально, он оснащен превосходным емкостным экраном диагональю 4,2 дюйма (почти 11 см!) С разрешением 480х854 пикселей. Тем не менее, он меньше, чем Nokia E7 или, очевидно, iPhone 4 , Он берет свое имя от кривой, которую он формирует, усиленной той из его крышки. Как уже на
Для независимых наблюдателей неба - обзор для себя
Имя Андрея Браницкого, вероятно, не звучит анонимно в ушах польских астрономов-энтузиастов. Сотрудник физического факультета Белостокского университета уже был удостоен чести за его пропагандистскую деятельность, он положил начало строительству обсерватории в столице Подляского и написал две небольшие книги: « Наблюдения и астрономические измерения» и - интересный сегодня - своими собственными глазами. О независимых наблюдениях неба и Земли . Название говорит
Очки Jins Frontswitch объединяют рецепты и оттенки: обзор Medgadget
Jins , японская компания по производству очков, которая делает сильный удар в США, недавно выпустила новую линейку очков, которые они называют Frontswitch. Один из наших редакторов получил шанс опробовать
Предоплаченное головокружение, представляющее собой обзор лучших предложений на карте
... ий и еще больше дополнительных пакетов. В таком лабиринте предложений легко потеряться и совершенно случайно выбрать один из вариантов, который только на первый взгляд может показаться лучшим. Средний покупатель знает имя или в прошлом использовал только несколько операторов, обычно самых крупных. Часто существует мнение, что он может много сэкономить, выбрав вариант, соответствующий его потребностям, не обязательно в широко узнаваемой сети. В то время, когда клиенты мобильных сетей ищут
Google Glass обзор
Обновление: наш обзор Google Glass был обновлен, чтобы отметить, что он прекратил производство в 2015 году. Но новый эксперимент на компьютере, созданный Google, может продолжаться в складная версия для предприятий когда-нибудь. В то же время, потребители могут проверить Snap Очки для похожих
Обзор McAfee Total Protection для Mac
McAfee Total Protection - одна из лучших сделок с антивирусами и программами защиты от вредоносных программ, но только в течение первого года. Его начальная цена 45 долларов включает годовую подписку на 10 компьютеров и систему хранения паролей для настольных и мобильных компьютеров под названием True Key. Но после тех первых двенадцати месяцев, когда цена поднимается до обычного годового уровня в 100 долларов, отсутствие функций Total Protection по сравнению с другими конкурентами затрудняет
Как включить переадресацию портов и разрешить доступ к серверу через SonicWall
Как включить переадресацию портов и разрешить доступ к серверу через SonicWall 05/15/2019 8500
Avira - отличный выбор для людей, которые хотят получить полный пакет антивирусной защиты с очень небольшим ко...
Avira - отличный выбор для людей, которые хотят получить полный пакет антивирусной защиты с очень небольшим количеством дополнений. Компания, безусловно, имеет целый ряд услуг и функций, включая программу обновления программного обеспечения, менеджер паролей, VPN и системный анализатор. Однако Avira в первую очередь фокусируется на своих антивирусных предложениях. Антивирус Про - предмет этого обзора - его основной продукт для
Свяжите служебный адрес на вашем сайте с Google Map
... ите людям найти местоположение вашей компании со своего смартфона, добавив ссылки на Карты Google на ваш сайт. Раскройте веб-сайт своей организации на своем смартфоне. Найдите адрес вашей организации. При нажатии на адрес открывается ли приложение карты? Люди не должны
Motorola Moto X Play обзор
Смартфоны среднего класса становятся все более привлекательными для потребителей по всему миру. Особенно сейчас, когда многие производители смартфонов предпочитают отказываться от партнерских отношений с операторами и продавать свои флагманские устройства вне контракта, пользователи больше не готовы платить + 600 долларов США за новый телефон. Один из самых популярных производителей телефонов, возглавляющий этот процесс, - Motorola
Обзор Sony NEX-F3
аппаратные средства Sony получила немного тепла за размер своего NEX-C3. Эту концепцию может быть немного трудно понять, учитывая, что камера находится на маленькой стороне, даже для беззеркальных ILC. Тем не менее, устройство выглядело довольно миниатюрно в сочетании со стандартным 18-55-мм оптическим комплектом компании, и, возможно, его было трудно захватить некоторым гигантским пользователям. F3 выглядит гораздо более пропорционально с прикрепленным объективом, но это также означает

Комментарии

Как выбирать короткое имя?
Как выбирать короткое имя? Короткое имя для е-мейл адреса должно формироваться по утвержденным корпоративным правилам. Ни в коем случае его не должен выдумывать пользователь. Как имя может использоваться номер пропуска в том случае, если пропускная система предприятия связана с должности. Кроме того, удобно использовать внутренний номер телефона. Общие адреса для отдела или функционала: [email protected] - адрес для приема коммерческих предложений. Ее легко продиктовать,
«На удостоверении личности звонившего я увидел имя моего главного человека», - сказал он, и я подумал: «Ого, чего он хочет?
«На удостоверении личности звонившего я увидел имя моего главного человека», - сказал он, и я подумал: «Ого, чего он хочет?». Он сказал, что они снова набирают обороты, и мне будет интересно вернуться? И я сказал, да, конечно. Убивает больше рабочих мест, чем экономит? Электрики Райан Личти (слева) из Сильвертона и Дэвид Хамманг из
Итак, как мы можем добиться управления цветом, которое сопоставляет цвета на нескольких устройствах?
Итак, как мы можем добиться управления цветом, которое сопоставляет цвета на нескольких устройствах? [Обновлено в феврале / 28/2017] В мире печати управление цветом обычно включает в себя калибровку всего рабочего процесса, от сканера или цифровой камеры до дисплея компьютера, для получения твердых доказательств и окончательного вывода на печать. Это может быть довольно сложным заказом, особенно когда устройства используют разные цветовые пространства - согласование устройств RGB
Каков наилучший способ запуска нескольких операционных систем на вашем компьютере?
Каков наилучший способ запуска нескольких операционных систем на вашем компьютере? Каков наилучший способ запуска нескольких операционных систем на вашем компьютере? Не определились между Windows и Linux? Можно запустить несколько ОС на одной машине либо с помощью двойной загрузки, либо с помощью виртуальной машины. Давайте выясним, какой из них лучше для вас.
Хотите получать новости и советы от TekRevue прямо на Ваш почтовый ящик?
Хотите получать новости и советы от TekRevue прямо на Ваш почтовый ящик? Зарегистрируйтесь на TekRevue Weekly Digest, используя поле ниже. Получайте советы, обзоры, новости и подарки, предназначенные исключительно для подписчиков.

При нажатии на адрес открывается ли приложение карты?
Как выбирать короткое имя?
«На удостоверении личности звонившего я увидел имя моего главного человека», - сказал он, и я подумал: «Ого, чего он хочет?
Он сказал, что они снова набирают обороты, и мне будет интересно вернуться?
Убивает больше рабочих мест, чем экономит?
Итак, как мы можем добиться управления цветом, которое сопоставляет цвета на нескольких устройствах?
Каков наилучший способ запуска нескольких операционных систем на вашем компьютере?
Каков наилучший способ запуска нескольких операционных систем на вашем компьютере?
Не определились между Windows и Linux?
Хотите получать новости и советы от TekRevue прямо на Ваш почтовый ящик?