Я пытаюсь настроить sendmail для использования поиска LDAP в качестве таблицы псевдонимов.
У меня в конфиге есть такая строка:
Kldapfullname ldap -k"uid=%s" -v"mail" -h"my-ldap-server"
Пользуюсь этим уже давно. Это работает, псевдонимы просматриваются, а электронная почта попадает в соответствующий почтовый ящик.
Однако это работает, потому что LDAP в настоящее время разрешает анонимные привязки. Из-за некоторых изменений в политике это больше невозможно.
У меня это работает:
Kldapfullname ldap -k"uid=%s" -v"mail" -H"ldaps://my-ldap-server/" -Msimple -d"CN=LDAP_USER" -P /path/to/ldap.secret
Что соответствует требованию «больше никаких анонимных привязок».
Однако все еще есть небольшая проблема с безопасностью: привязка LDAP не выполняется через безопасный канал. Имя пользователя и пароль отправляются в виде открытого текста. Что в конечном итоге так же полезно, как оставить привязку анонимно.
В нескольких примерах, которые я видел во время поиска, я видел, что -H
flag позволяет указать протокол, например ldap://
, или в моем случае ldaps://
.
Но когда я пошел проверять, я увидел, что данные все еще проходят через незащищенный порт LDAP (порт 389) вместо порта LDAPS (порт 636). (Я использовал snoop
чтобы увидеть трафик между моим хостом и сервером LDAP.)
Итак, мои вопросы: * Почему ldaps://
игнорируется и используется, как если бы это было просто ldap://
? * Что мне нужно изменить, чтобы это работало?
Согласно 4-му изданию «летучей книги» (раздел 3.4.56), когда sendmail скомпилирован с поддержкой LDAP, но без SM_CONF_LDAP_INITIALIZE, часть scheme: // URL LDAP опускается.