LDAP_TABLE(5)

НАЗВАНИЕ

ldap_table - конфигурация LDAP-клиента Postfix.

КРАТКИЙ ОБЗОР

postmap -q "string" ldap:/etc/postfix/filename

postmap -q - ldap:/etc/postfix/filename <inputfile

ОПИСАНИЕ

Почтовая система Postfix использует опциональные таблицы для переназначения адресов или маршрутизации почты. Обычно эти таблицы представлены в формате dbm или db.

В качестве альтернативы таблицы поиска можно задать как базы данных LDAP.

Чтобы воспользоваться поиском в каталоге LDAP, определите источник LDAP как таблицу поиска в main.cf, например:

    alias_maps = ldap:/etc/postfix/ldap-aliases.cf

Формат файла /etc/postfix/ldap-aliases.cf аналогичен формату основного конфигурационного файла Postfix main.cf. В нём можно задавать описанные ниже параметры. Пример приведён в конце данного руководства.

Данный метод конфигурации доступен, начиная с Postfix версии 2.1. Конфигурацию более ранних версий можно найти в разделе "УСТАРЕВШИЕ ПАРАМЕТРЫ MAIN.CF" ниже.

Детали настройки LDAP SSL и STARTTLS можно найти в разделе "ПАРАМЕТРЫ LDAP SSL и STARTTLS" ниже.

ЧЛЕНСТВО В СПИСКАХ

Если LDAP используется для хранения списков, таких как $mynetworks, $mydestination, $relay_domains, $local_recipient_maps и т.п., важно понимать, что такая таблица должна содержать определение каждого члена списка в виде отдельного ключа. Поиск по таблице проверяет *существование* ключа. Смотрите обсуждение этого функционала в разделе "Сравнение списков и таблиц Postfix" документа DATABASE_README.

НЕ СОЗДАВАЙТЕ таблицы, которые возвращают полный список доменов в $mydestination или $relay_domains и т.п., или IP-адресов в $mynetworks.

СОЗДАВАЙТЕ таблицы с отдельными элементами, по которым производится сравнение, в качестве ключа, и с произвольным значением. Для баз данных LDAP обычная практика возвращать в качестве значений сами ключи.

Например, НИКОГДА не делайте так в определении карты для $mydestination:

    query_filter = domain=*
    result_attribute = domain

Вместо этого сделайте так:

    query_filter = domain=%s
    result_attribute = domain

ОСНОВНЫЕ ПАРАМЕТРЫ LDAP

В описаниях параметров значения по умолчанию приводятся в скобках. Примечание: не используйте кавычки в этих переменных; по крайней мере, пока конфигурационные процедуры Postfix не будут разбирать, как работать со строками в кавычках.

server_host (по умолчанию: localhost)

Имя хоста, на котором работает LDAP-сервер, например:

    server_host = ldap.example.com

В зависимости от используемой клиентской библиотеки LDAP, в этом параметре есть возможность указать несколько серверов, и библиотека будет пробовать их по порядку, если предыдущий не отвечает. Также есть возможность задать каждому серверу в списке номер порта (переопределяя указанный в параметре server_port) следующим образом:

    server_host = ldap.example.com:1444

Если применяется библиотека OpenLDAP, LDAP URL (или их список) может быть использован для задания как имени (имён) хоста, так и порта (портов):

    server_host = ldap://ldap.example.com:1444
                ldap://ldap2.example.com:1444

Поддерживаются все формы LDAP URL, принимаемые библиотекой OpenLDAP, включая соединения через доменные сокеты UNIX и LDAP SSL (последняя при условии, что OpenLDAP был скомпилирован с поддержкой SSL):

    server_host = ldapi://%2Fsome%2Fpath
                ldaps://ldap.example.com:636
server_port (по умолчанию: 389)

Порт, на котором LDAP-сервер ожидает подключения, например:

    server_port = 778
timeout (по умолчанию: 10 секунд)

Количество секунд, которое может выполняться поиск до наступления тайм-аута, например:

timeout = 5

search_base (нет значения по умолчанию; должно быть задано явно)

Базовое DN (сформированное согласно RFC 2253), по которому будет проводиться поиск, например:

    search_base = dc=your, dc=com

Начиная с Postfix 2.2, в данном параметре поддерживаются следующие расширения '%':

%%

Заменяется на символ '%'.

%s

Заменяется на входной ключ. При этом используется определённое в RFC 2253 экранирование символов, чтобы убедиться в том, что входной ключ не добавляет непредвиденных метасимволов.

%u

Если входной ключ представляет собой адрес в формате user@domain, то %u заменяется на экранированную (согласно RFC 2253) локальную часть этого адреса. В противном случае %u заменяется целой строкой поиска. Если локальная часть пуста, поиск не выполняется и результаты не возвращаются.

%d

Если входной ключ представляет собой адрес в формате user@domain, то %d заменяется на экранированную (согласно RFC 2253) доменную часть этого адреса. В противном случае поиск не выполняется и результаты не возвращаются.

%[SUD]

Для параметра search_base указываемые в верхнем регистре эквиваленты рассмотренных выше расширений ведут себя идентично своим аналогам в нижнем регистре. С параметром result_format (ранее называвшемся result_filter, смотрите раздел "СОВМЕСТИМОСТЬ" ниже), они расширяются до соответствующих компонентов входного ключа, а не результирующего значения.

%[1-9]

Шаблоны %1, %2 ... %9 заменяются соответствующими наиболее значимыми компонентами домена входного ключа. Если входной ключ представляет собой user@mail.example.com, то %1 будет com, %2 будет example и %3 будет mail. Если входной ключ не квалифицирован (не является валидным почтовым адресом) или в его доменном имени недостаточно компонентов для подстановки во все указанные шаблоны, поиск не выполняется и результаты не возвращаются.

query_filter (по умолчанию: mailacceptinggeneralid=%s)

Фильтр (сформированный согласно RFC 2254), используемый для поиска в каталоге, в котором %s заменяется на адрес, который Postfix пытается разрешить, например:

    query_filter = (&(mail=%s)(paid_up=true))

В данном параметре поддерживаются следующие расширения '%':

%%

Заменяется на символ '%'. (Postfix 2.2 и более новые версии).

%s

Заменяется на входной ключ. При этом используется определённое в RFC 2254 экранирование символов, чтобы убедиться в том, что входной ключ не добавляет непредвиденных метасимволов.

%u

Если входной ключ представляет собой адрес в формате user@domain, то %u заменяется на экранированную (согласно RFC 2254) локальную часть этого адреса. В противном случае %u заменяется целой строкой поиска. Если локальная часть пуста, поиск не выполняется и результаты не возвращаются.

%d

Если входной ключ представляет собой адрес в формате user@domain, то %d заменяется на экранированную (согласно RFC 2254) доменную часть этого адреса. В противном случае поиск не выполняется и результаты не возвращаются.

%[SUD]

Для параметра query_filter указываемые в верхнем регистре эквиваленты рассмотренных выше расширений ведут себя идентично своим аналогам в нижнем регистре. С параметром result_format (ранее называвшемся result_filter, смотрите раздел "СОВМЕСТИМОСТЬ" ниже), они расширяются до соответствующих компонентов входного ключа, а не результирующего значения.

Расширения %S, %U и %D доступны в Postfix 2.2 и более новых версиях.

%[1-9]

Шаблоны %1, %2 ... %9 заменяются соответствующими наиболее значимыми компонентами домена входного ключа. Если входной ключ представляет собой user@mail.example.com, то %1 будет com, %2 будет example и %3 будет mail. Если входной ключ не квалифицирован (не является валидным почтовым адресом) или в его доменном имени недостаточно компонентов для подстановки во все указанные шаблоны, поиск не выполняется и результаты не возвращаются.

Расширения %1 ... %9 доступны в Postfix 2.2 и более новых версиях.

Описанный ниже параметр "domain" ограничивает входные ключи до адресов из предложенного списка доменов. Когда значение параметра "domain" не пусто, LDAP-запросы для неквалифицированных адресов или адресов с доменами, не входящими в предложенный список, не выполняются и результаты не возвращаются.

ПРИМЕЧАНИЕ: НЕ БЕРИТЕ значение параметра query_filter в кавычки.

result_format (по умолчанию: %s)

В Postfix до версии 2.2 назывался result_filter. Шаблон форматирования, применяемый к значениям результирующих атрибутов. Чаще всего используется для добавления текста в конец (или начало) результата. В данном параметре поддерживаются следующие расширения '%':

%%

Заменяется на символ '%'. (Postfix 2.2 и более новые версии).

%s

Заменяется на значение результирующего атрибута. Если результат пуст, он пропускается.

%u

Если значение результирующего атрибута представляет собой адрес в формате user@domain, то %u заменяется на локальную часть этого адреса. Если локальная часть результата пуста, он пропускается.

%d

Если значение результирующего атрибута представляет собой адрес в формате user@domain, то %d заменяется на доменную часть этого значения атрибута. Если результат не квалифицирован, он пропускается.

%[SUD1-9]

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

Расширения %S, %U, %D и %1 ... %9 доступны в Postfix 2.2 и более новых версиях.

Например, настройка "result_format = smtp:[%s]" позволяет использовать атрибут mailHost в качестве основы для таблицы transport(5). После применения данного результирующего формата, несколько значений будут объединяться как строки, разделенные запятыми. Описанные ниже параметры expansion_limit и size_limit позволяют ограничить количество значений в результате, что особенно полезно для карт, которые должны возвращать только одно значение.

Значение по умолчанию %s указывает на то, что каждое значение атрибута будет возвращаться без изменений.

В Postfix до версии 2.2 данный параметр назывался result_filter. Если параметр "result_format" не задан, то сначала производится попытка применить значение параметра "result_filter", и лишь затем значения по умолчанию для "result_format". Это сделано для совместимости со старыми конфигурационными файлами.

ПРИМЕЧАНИЕ: НЕ БЕРИТЕ значение параметра result_format в кавычки!

domain (по умолчанию: нет списка доменов)

В данном параметре можно указать список доменных имён, пути к файлам или словари. Если он задан, то только полностью квалифицированные ключи поиска с *непустой* локальной частью и доменом, совпадающим с доменным именем из списка, будут рассматриваться как кандидаты на поиск: поиск только по имени пользователя, только по домену или с ключом "@domain" не выполняются. Это может значительно снизить запросную нагрузку на LDAP-сервер.

    domain = postfix.org, hash:/etc/postfix/searchdomains

Лучше не использовать LDAP для хранения доменов, используемых для отбора кандидатов на поиск в LDAP.

ПРИМЕЧАНИЕ: НЕ ОПРЕДЕЛЯЙТЕ этот параметр для локальных псевдонимов (local(8)).

Данный функционал доступен в Postfix 1.0 и более новых версиях.

result_attribute (по умолчанию: maildrop)

Атрибут (атрибуты), которые Postfix будет считывать из любых записей каталога, возвращаемых в результате выполнения поиска, для преобразования в адрес электронной почты.

    result_attribute = mailbox, maildrop

Не полагайтесь на значение по умолчанию ("maildrop"). Явно задавайте атрибут result_attribute во всех конфигурационных файлах LDAP-таблиц. Это особенно актуально, когда атрибут result_attribute применять не следует, например случаи, когда вместо этого используются атрибуты из списков leaf_result_attribute и/или terminal_result_attribute. Значение по умолчанию не сыграет роли, если "maildrop" также указан в качестве конечного или терминального результирующего атрибута, но лучше не оставлять это без контроля.

special_result_attribute (по умолчанию: пустое значение)

Атрибут (атрибуты) записей каталога, содержащие DN или LDAP URL (согласно RFC 2255). Если таковые найдены, будет выполнен рекурсивный поиск для получения записи, на которую указывает DN, либо записей, соответствующих запросу из URL.

    special_result_attribute = memberdn

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

При обработке URL будут извлекаться только те атрибуты, которые включены сразу и в определение URL, и в качестве результирующих атрибутов (обыкновенных, специальных, конечных или терминальных) в определении таблицы Postfix. Если в URL перечислены какие-либо из специальных результирующих атрибутов из таблицы, они будут извлекаться и использоваться рекурсивно. URL, в котором не задан какой-либо набор атрибутов, эквивалентен (согласно RFC 2255) URL, в котором отбираются все атрибуты, и в этом случае будут отбираться все заданные в Postfix-таблице результирующие атрибуты.

Если какое-либо описание атрибута в LDAP URL или соответствующий результирующий атрибут в LDAP-таблице Postfix (но не оба сразу) используют определённые в RFC 2255 опции подтипов ("attr;option"), запрашиваемый у LDAP-сервера атрибут будет включать опцию подтипа. Во всех остальных случаях атрибут из URL и из таблицы должны полностью совпадать. Если и в URL, и в таблице заданы атрибуты с опциями, они будут запрошены только в случае идентичности этих опций. Опции описания атрибута LDAP используются очень редко, большинству пользователей LDAP не нужно беспокоиться о таком уровне детализации.

terminal_result_attribute (по умолчанию: пустое значение)

Если в записи LDAP найден один или несколько терминальных результирующих атрибутов, все остальные результирующие атрибуты игнорируются и возвращаются только терминальные результирующие атрибуты. Это может понадобиться для делегирования обслуживания разрешения членов группы некоторому хосту путём использования опционального атрибута "maildrop" в выбранных группах для маршрутизации групповой почты на определённый хост, где выбранная группа будет раскрыта (возможно, с помощью менеджера почтовых списков или другого специализированного обработчика).

    result_attribute =
    terminal_result_attribute = maildrop

При использовании терминального и/или конечного результирующих атрибутов, в параметре result_attribute лучше задать пустое значение (если он не используется), или же явно установить нужное значение, даже если оно совпадает со значением по умолчанию "maildrop".

Данный функционал доступен в Postfix 2.4 и более новых версиях.

leaf_result_attribute (по умолчанию: пустое значение)

Если в нетерминальной записи LDAP (смотрите выше) найден один или несколько специальных результирующих атрибутов, конечные результирующие атрибуты исключаются из раскрытия этой записи. Это может понадобиться при раскрытии групп, когда желаемый атрибут (атрибуты) с адресами электронной почты, которые ищутся в объектах-членах группы с помощью рекурсивного поиска по DN или URI, также присутствуют в самом объекте группы. Для того, чтобы вернуть значения такого атрибута только из конечных объектов, а не из исходной записи группы, добавьте этот атрибут в список leaf_result_attribute, и не добавляйте в список result_attribute, значения атрибутов из которого возвращаются всегда. Обратите внимание, что значение по умолчанию для параметра result_attribute не пустое, поэтому при использовании leaf_result_attribute для раскрытия групп в список DN их членов, возможно, лучшим решением будет явное задание пустого значения в result_attribute. Если же в группах содержатся как ссылки на DN членов, так и атрибуты, в которых в строковом представлении хранятся почтовые адреса формата RFC 822, то имена этих строковых атрибутов должны попасть в значение параметра result_attribute. Имена же атрибутов с почтовыми адресами тех объектов, на которые в исходной записи имеется ссылка посредством DN или URI, должны попасть в значение параметра leaf_result_attribute.

    result_attribute = memberaddr
    special_result_attribute = memberdn
    terminal_result_attribute = maildrop
    leaf_result_attribute = mail

При использовании терминального и/или конечного результирующих атрибутов, в параметре result_attribute лучше задать пустое значение (если он не используется), или же явно установить нужное значение, даже если оно совпадает со значением по умолчанию "maildrop".

Данный функционал доступен в Postfix 2.4 и более новых версиях.

scope (по умолчанию: sub)

Поисковый диапазон LDAP: sub, base или one. Эти значения транслируются в LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE и LDAP_SCOPE_ONELEVEL.

bind (по умолчанию: yes)

Определяет, выполнять ли подсоединение (операцию bind) к LDAP-серверу, и если да, то каким образом. Более новые реализации LDAP не требуют выполнения подсоединения клиентом, что экономит время. Пример настройки:

    # Не выполнять подсоединение
    bind = no
    # Использовать простое (SIMPLE) подсоединение
    bind = yes
    # Использовать SASL-подсоединение
    bind = sasl

Postfix до версии 2.8 поддерживает только варианты "bind = no", что означает не выполнять подсоединение, и "bind = yes", что означает выполнять простое подсоединение. Postfix 2.8 и более новые версии также поддерживают вариант "bind = SASL" если были скомпилированы с поддержкой LDAP SASL как описано в LDAP_README. Также в них добавлены синонимы: "bind = none" для варианта "bind = no" и "bind = simple" для "bind = yes". Дополнительные параметры, доступные для варианта "bind = sasl", смотрите в разделе "SASL" ниже.

Если вам требуется выполнять подсоединение, можно рассмотреть вариант настройки, когда Postfix подключается к порту локальной машины, на котором обслуживается SSL-туннель к целевому LDAP-серверу. Если на самом LDAP-сервере нет поддержки SSL, поднимите туннель (обёртку, прокси, называйте как хотите) и на этой системе. Это предотвратит передачу паролей в открытом виде по сети.

bind_dn (по умолчанию: пустое значение)

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

    bind_dn = uid=postfix, dc=your, dc=com

Для некоторых механизмов SASL в варианте "bind = sasl" DN может быть необязательным. Не задавайте DN, если оно не требуется.

bind_pw (по умолчанию: пустое значение)

Пароль для описанного выше уникального имени. Если он используется, есть смысл сделать конфигурационный файл для данной карты доступным на чтение только пользователю Postfix. При использовании устаревшего синтаксиса ldap:ldapsource, когда параметры карты указываются непосредственно в main.cf, невозможно обеспечить безопасное хранение пароля для выполнения подсоединения, поскольку файл main.cf должет быть доступен для чтения всем, чтобы позволить локальным учётным записям отправлять почту с помощью команды sendmail. Пример:

    bind_pw = postfixpw

Для некоторых механизмов SASL в варианте "bind = sasl" пароль может быть необязательным. Не задавайте пароль, если он не требуется.

cache (ИГНОРИРУЕТСЯ с выдачей предупреждения)
cache_expiry (ИГНОРИРУЕТСЯ с выдачей предупреждения)
cache_size (ИГНОРИРУЕТСЯ с выдачей предупреждения)

Эти параметры БОЛЬШЕ НЕ ПОДДЕРЖИВАЮТСЯ Postfix. Поддержка кеширования в OpenLDAP была удалена в версии 2.1.13.

recursion_limit (по умолчанию: 1000)

Ограничение на глубину вложенности рекурсии по DN и URL при разрешении специального результирующего атрибута. Ограничение должно быть ненулевым положительным числом.

expansion_limit (по умолчанию: 0)

Ограничение на общее число результирующих элементов, возвращаемых (в виде разделённого запятыми списка) в результате поиска по карте. При значении 0 ограничений не накладывается. При превышении ограничения поиск завершается с временной ошибкой. Установка ограничения в 1 гарантирует, что в результате поиска не вернётся несколько значений.

size_limit (по умолчанию: $expansion_limit)

Ограничение на количество записей LDAP, возвращаемых любой отдельной LDAP-операцией search, выполняемой в рамках поиска по карте. При значении 0 ограничений не накладывается. Разрешение ссылок по DN и URL влечёт за собой последующие LDAP-запросы, каждый из которых в отдельности попадает под это ограничение.

Примечание: даже одна LDAP-запись может сгенерировать множественные результаты поиска, когда определено несколько результирующих атрибутов и/или у результирующих атрибутов несколько значений. Это ограничение влияет на выполнение операции поиска на сервере LDAP, а не на итоговую множественность результата поиска. Оно аналогично применению опции "-z" в утилите ldapsearch.

dereference (по умолчанию: 0)

Определяет порядок разрешения псевдонимов LDAP (обратите внимание, что этот параметр не влияет на псевдонимы Postfix). Разрешены значения, допустимые для LDAP-реализаций OpenLDAP/UM:

  1. никогда

  2. при поиске

  3. при нахождении базового объекта для поиска

  4. всегда

Более подробную информацию можно найти в ldap.h, а также в man-страницах ldap_open(3) или ldapsearch(1). Если же вы используете реализацию LDAP с другими допустимыми значениями, пожалуйста, сообщите об этом в список рассылки postfix-users@postfix.org.

chase_referrals (по умолчанию: 0)

Устанавливает (или очищает) LDAP_OPT_REFERRALS (требуется поддержка LDAP версии 3).

version (по умолчанию: 2)

Задаёт, какую версию протокола LDAP следует использовать.

debuglevel (по умолчанию: 0)

Определяет, какой уровень отладки следует задать для библиотек OpenLDAP.

ПАРАМЕТРЫ LDAP SASL

Если вы используете библиотеки OpenLDAP, скомпилированные с поддержкой SASL, Postfix 2.8 и более новые версии, собранные с поддержкой LDAP SASL как описано в LDAP_README, могут проходить аутентификацию на LDAP-серверах с использованием SASL.

Это позволяет выполнять аутентификацию на сервере LDAP с помощью механизмов, отличных от простой парольной аутентификации. За дополнительную гибкость приходится платить: больше нецелесообразно задавать явный тайм-аут на продолжительность выполнения операции подсоединения LDAP. В случае возникновения проблем, вне зависимости от того, истекает ли время ожидания подсоединения SASL или оно уже истекло, длительность тайм-аута определяется библиотеками LDAP и SASL.

Лучше использовать таблицы, выполняющие SASL-подсоединения через proxymap(8), в этом случае запрашивающий процесс может инициировать тайм-аут запроса proxymap. Кроме того, это позволит вам изменять окружение процесса, переопределяя параметр proxymap(8) import_environment в master.cf(5). Специальные параметры окружения могут понадобиться для настройки кэшей учётных данных GSSAPI или специфичных опций других механизмов SASL. Учётные данные GSSAPI, используемые для поиска в LDAP-таблицах, могут отличаться от тех, которые использует, к примеру, SMTP-клиент Postfix для аутентификации на удалённых серверах.

Для использования механизмов SASL требуется протокол LDAP версии 3, по умолчанию же для обеспечения обратной совместимости установлена версия протокола 2. В дополнение к "bind = sasl" необходимо установить "version = 3".

К применению LDAP с SASL относятся следующие параметры:

sasl_mechs (по умолчанию: пустое значение)

Разделённый пробелами список механизмов SASL, которые нужно попробовать применить.

sasl_realm (по умолчанию: пустое значение)

Используемая SASL Realm, если это применимо.

sasl_authz_id (по умолчанию: пустое значение)

Заявляемая авторизационная идентификационная сущность SASL, если это применимо.

sasl_minssf (по умолчанию: 0)

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

ПАРАМЕТРЫ LDAP SSL И STARTTLS

Если вы используете библиотеки OpenLDAP, скомпилированные с поддержкой SSL, Postfix имеет возможность соединяться с LDAP SSL серверами и выполнять команду STARTTLS.

Сервис LDAP SSL можно запросить, указав LDAP SSL URL в параметре server_host:

    server_host = ldaps://ldap.example.com:636

Включить STARTTLS можно с помощью параметра start_tls:

    start_tls = yes

В обеих формах требуется использовать 3-ю версию протокола LDAP, которую нужно указать явно:

    version = 3

Если какая-либо из программ Postfix, запрашивающих карту, настроена в master.cf для запуска в изолированной среде (chroot), все задействованные сертификаты и ключи должны быть скопированы в окружение chroot. Конечно же, доступ к закрытым ключам должен быть только на чтение от имени пользователя "postfix".

К LDAP SSL и STARTTLS относятся следующие параметры:

start_tls (по умолчанию: no)

Выполнять или нет операцию STARTTLS при подключении к серверу. Не задавайте этот параметр с LDAP SSL (SSL-сессия будет установлена автоматически при открытии TCP-соединения).

tls_ca_cert_dir (нет значения по умолчанию; задайте либо этот параметр, либо tls_ca_cert_file)

Директория, содержащая сертификаты X509 в формате PEM тех удостоверяющих центров, которым должен доверять клиент в соединениях SSL/TLS. В каждом файле должен содержаться один сертификат. Поиск нужного файла осуществляется по хэш-значению имени субъекта УЦ, которое, следовательно, должно быть доступно. Если одинаковые хэш-значения имени присутствуют в нескольких сертификатах УЦ, должно отличаться расширение (например, 9d66eef0.0, 9d66eef0.1 и т.д.). Поиск будет выполняться в порядке номера расширения, независимо от остальных свойств этих сертификатов. Для создания требуемых ссылок используйте утилиту c_rehash из дистрибутива OpenSSL.

tls_ca_cert_file (Нет значения по умолчанию; задайте либо этот параметр, либо tls_ca_cert_dir)

Файл, содержащий сертификаты X509 в формате PEM тех удостоверяющих центров, которым должен доверять клиент в соединениях SSL/TLS. Этот параметр имеет приоритет над параметром tls_ca_cert_dir.

tls_cert (нет значения по умолчанию; при необходимости нужно задавать явно)

Файл, содержащий сертификат X509 клиента, используемый им в соединениях SSL/TLS.

tls_key (нет значения по умолчанию; при необходимости нужно задавать явно)

Файл, содержащий закрытый ключ, соответствующий сертификату из параметра tls_cert.

tls_require_cert (по умолчанию: no)

Требуется или нет запрашивать сертификат X509 сервера и проверять его валидность при установке соединений SSL/TLS. Поддерживаемые значения: no и yes.

При значении no цепочка доверия сертификата сервера не проверяется, но для OpenLDAP до версии 2.1.13 имя в сертификате сервера всё же должно совпадать с именем LDAP-сервера. Для OpenLDAP версий с 2.0.0 по 2.0.11 имя сервера не обязательно совпадает с указанным вами, скорее, оно определяется (путём обратного разрешения) по IP-адресу соединения с сервером LDAP. Для OpenLDAP до версии 2.0.13 расширение subjectAlternativeName сертификата сервера LDAP игнорируется: имя сервера должно совпадать с именем из поля CommonName субъекта сертификата. Значение no соответствует значению never параметра TLS_REQCERT в конфигурационном файле клиента LDAP.

Не используйте TLS с OpenLDAP 2.0.x (Особенно с версиями, где x <= 11), если вы можете избежать этого.

При значении yes сертификат сервера должен быть выпущен доверенным УЦ и не быть просроченным. Имя LDAP-сервера должно совпадать с одним из имён, найденных в сертификате (описание порядка работы библиотеки OpenLDAP в зависимости от версии смотрите выше). Значение yes соответствует значению demand параметра TLS_REQCERT в конфигурационном файле клиента LDAP.

У значений "try" и "allow" параметра TLS_REQCERT нет эквивалентов в данной настройке. Они не доступны с OpenLDAP 2.0 и, в любом случае, сомнительны с точки зрения безопасности. Либо вы хотите, чтобы валидность TLS-соединения с LDAP-сервером была подтверждена, либо нет.

Корректная обработка значения yes доступна либо в Postfix 2.5 и более новых версиях, либо при использовании OpenLDAP 2.0. Более ранние версии Postfix несовместимы с более новыми версиями OpenLDAP, поскольку в них поддержка LDAP поверх TLS реализована на основе API OpenLDAP 2.0.

tls_random_file (нет значения по умолчанию)

Путь к файлу, из которого получаются случайные биты для использования клиентом в SSL/TLS, если /dev/[u]random не доступен.

tls_cipher_suite (нет значения по умолчанию)

Набор шифров для использования в согласованиях SSL/TLS.

ПРИМЕР

Базовый пример использования LDAP для нахождения локальных псевдонимов (local(8)). Подразумевается, что в main.cf у вас такая настройка:

    alias_maps = hash:/etc/aliases,
            ldap:/etc/postfix/ldap-aliases.cf

а в ldap:/etc/postfix/ldap-aliases.cf у вас:

    server_host = ldap.example.com
    search_base = dc=example, dc=com

При получении письма для локального адреса "ldapuser", который не удалось найти в базе данных /etc/aliases, Postfix будет осуществлять поиск на LDAP-сервере, ожидающем соединения на порту 389 хоста ldap.example.com. Он выполнит анонимное подсоединение, поиск любых записей, атрибут mailacceptinggeneralid которых имеет значение "ldapuser", прочитает значения атрибутов "maildrop" найденных записей (будут интерпретироваться как адреса в формате RFC 822), и на их основе создаст список почтовых ящиков, на которые будет доставлено сообщение.

УСТАРЕВШИЕ ПАРАМЕТРЫ MAIN.CF

Для обратной совместимости с Postfix 2.0 и более ранними версиями, параметры LDAP могут быть также определены в main.cf. Задайте в качестве источника LDAP имя, которое начинается не с символов слеша или точки. Тогда параметры LDAP будут доступны в форме: имя источника (которое вы задали), символ нижнего подчёркивания и имя параметра. Например, если карта определена как "ldap:ldapsource", то параметр "server_host" в main.cf будет определён как "ldapsource_server_host".

Примечание: при такой форме определения пароли для источников LDAP записываются непосредственно в файле main.cf, который доступен для чтения всем. Поддержка данной формы будет прекращена в будущих версиях Postfix.

ДРУГИЕ УСТАРЕВШИЕ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ

Для обратной совместимости с LDAP-клиентами до версии 2.2, параметр result_filter пока может использоваться вместо result_format, если последний не был также задан. Новое имя лучше отражает функционал данного параметра. Этот интерфейс совместимости может быть удалён в будущих версиях.

СМОТРИТЕ ТАКЖЕ

postmap(1), менеджер поисковых таблиц Postfix.
postconf(5), параметры конфигурации.
mysql_table(5), поисковые таблицы MySQL.
pgsql_table(5), поисковые таблицы PostgreSQL.

ФАЙЛЫ README

Для определения местонахождения данной информации используйте "postconf readme_directory" или "postconf html_directory".

DATABASE_README, обзор поисковых таблиц Postfix.
LDAP_README, руководство по LDAP-клиенту Postfix.

ЛИЦЕНЗИЯ

С данным программным обеспечением должна распространяться лицензия Secure Mailer license.

АВТОРЫ

Carsten Hoeger, Hery Rakotoarisoa, John Hensley, Keith Stevenson, LaMont Jones, Liviu Daia, Manuel Guesdon, Mike Mattice, Prabhat K Singh, Sami Haahtinen, Samuel Tardieu, Victor Duchovni и многие другие.

Postfix 3.5.10 LDAP_TABLE(5)