Re: exim + courier + ldap
Hi Andrey Chernomyrdin!
On Thu, Feb 12, 2004 you wrote:
> Осталось дело за малым - правильно настроить exim, но из всех HOWTO которые
> я нашел в internet-е ни одно с другим практически не пересекаются, то есть
> все они по разному используют поле mail в ldap базе.
>
> Хотелось-бы узнать как идеалогически правильно все это совместно использовать.
> Так-же интерестно кто что использует для администрирования пользователей в
> LDAP базе.
использую самописный фронтенд на php, используемый в основном для того,
чтоб пользователи сами пароли меняли, но до сих пор не дошли руки
сделать нормальную поддержку multi-valued атрибутов (несколько значений
mail для одного аккаунта). Посему часто использую gq.
> Изученные URL:
> - http://www.bastard.net/~kos/mailrouter/
> - http://lists.netisland.net/archives/plug/plug-2003-09/msg00049.html
> - http://www.wlug.org.nz/EximNotes
>
> /usr/share/doc/exim4-base/spec.txt.gz - читал, но там принципы как что
> прописывать (это как раз понятно), а вот что и как правильно - не понял.
>
> Более конкретные вопросы (и возможные ответы)
>
> - Если есть пользователь в ldap базе и не имеет mail и mailbox аттрибутов
> (доставляем почту в ${home}/Maildir)
> - то-же что и выше, но есть mailbox
> (доставляем почту туда куда указывает аттрибут mailbox, причем если
> начинается с '/' то это абсолютный путь если нет - то вычисляем его
> положение относительно ${home})
> - если есть аттрибут mail и то что у него после @ является локальным доменом.
> (см два предидущих правила)
> - то-же что и выше, но домен не локальный
> (отпавляем на указанный в аттрибуте mail адрес)
Честно говоря не понял, в чем все-таки вопросы.
Если нет атрибута mail, то как может происходить поиск соответствия
между аккаунтом пользователя и полем To: пришедшего письма? По rdn что
ли?
Я использую вот такие директоры в указанном порядке
# Для роутинга почты на другие сервера (у меня почтовые ящики для одного
# домена разнесены на несколько почтовых серверов)
ext_aliases:
driver = accept
condition = ${if eq {}{${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com??sub?(&(&(mail=$local_part@$domain)(mailhost=*))(!(mailhost=portal.pcinternetpatrol.com)))}}}{no}{yes}}
retry_use_local_part
transport = ldap_smtp
# This director routes mail to external addresses using
# mailRoutingAddress (look at /etc/aliases)
ldap_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com?mailRoutingAddress?sub?(&(mail=$local_part@$domain)(mailRoutingAddress=*))}}
retry_use_local_part
# This director matches mailboxes of IMAP-server
courieruser:
driver = accept
condition = ${if eq {}{${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com??sub?(mail=$local_part@$domain)}}}{no}{yes}}
retry_use_local_part
transport = address_directory
user = mail
Транспорты такие:
# Этот транспорт используется для почтовых ящиков в формате Maildir.
# Вместо uid можно использовать и атрибут mailbox, если хочется
address_directory:
driver = appendfile
check_string =
directory = /var/spool/maildirs/${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com?uid?sub?(mail=$local_part@$domain)}{$value}fail}/
group = mail
maildir_format
message_prefix = ""
message_suffix = ""
quota = ${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com?mailquota?sub?(mail=$local_part@$domain)}{$value}fail}
user = mail
ldap_smtp:
driver = smtp
hosts = ${lookup ldap {ldap://localhost/ou=People,dc=pcinternetpatrol,dc=com?mailhost?sub?(mail=$local_part@$domain)}{$value}fail}
Для моих задач этого в принципе достаточно. Проблем пока не выявил, но,
думаю, можно и лучше сделать.
Еще использую аутентификаторы, тоже настроенные на работу с ldap, чтобы
можно было почту не только из локальной сети посылать. Принцип
составления lookup'ов тот же самый, только надо добавить биндинг на
аккаунт, который имеет доступ на чтение поля userpassword.
> Потом если в качестве средства для редактирования пользователей использовать
> administrator, то там можно зажать более сложные правила доставки почты -
> как поддержать их.
Reply to: