Настройка общей адресной книги в различных почтовых клиентах


В данной инструкции мы просто разберем настройку почтовых клиентов, а именно, подключение глобальной адресной книги LDAP-пользователей. Другие варианты централизованного хранения пользовательских email-адресов не является универсальным.
Настройка LDAP
1. Учетная запись для привязки.
Для связки с LDAP нам понадобится учетная запись с минимальными правами. Поэтому настройка сводится к простому созданию пользователя.
В моем примере будет создана учетная запись gab (Global Address Book).
2. Фильры.
В зависимости от настроек клиента, могут использоваться фильтры, в которых можно отсечь ненужные записи. В разных реализациях LDAP мы можем иметь дело с различными атрибутами и значениями. Например, в Active Directory класс пользователя будет person, а в OpenLDAP — user. Такие нюансы необходимо учитывать, поэтому стоит заранее изучить все поля, которые мы хотим использовать в адресной книге.
3. Сетевая доступность.
Сервер LDAP должен быть доступен по сети с компьютера, на котором работает почтовый клиент. Если данный сервер находится за NAT или он закрыт брандмауэром, необходимо обеспечить доступность по портам:
- 389 tcp или udp. Незащищенный доступ к активному каталогу.
- 636 tcp или udp. Доступ с защитой SSL.
Достаточно открыть и использовать один из данных портов, желательно 636.
Mozilla Thunderbird
Запускаем почтовый клиент и переходим к настройкам адресной книги:
* также к настройке адресной книги можно перейти в меню Инструменты - Адресная книга. Или сочетанием клавиш Ctrl + Shift + B.
В открывшемся окне кликаем по Файл - Создать - Каталог LDAP:
На вкладке Основное вводим данные для подключения к LDAP:
* где:
- Название — произвольное название для адресной книги.
- Имя сервера — сервер ldap (имя или IP-адрес).
- Корневой элемент (Base DN) — корень, в котором нужно искать нужные учетные данные. Можно задать конкретный контейнер.
- Порт — порт для подключения к глобальному каталогу.
- Имя пользователя (Bind DN) — учетная запись для привязки к LDAP, которую мы создали в самом начале. Обратите внимание, что формат данной учетной записи может отличаться в зависимости от реализации службы каталогов, например, во FreeIPA в качестве bind dn нужно будет прописать uid=gab,cn=users,cn=accounts,dc=dmosk,dc=local (при условии, что именно по данному пути расположена учетная запись).
На вкладке Дополнительно добавляем фильтр (mail=*):
* данный фильтр позволяет отбросить все записи без email.
Попробуем поискать что-либо в адресной книге:
... мы увидим запрос на ввод пароля для учетной записи связывания с LDAP:
Вводим пароль — поиск должен показать результаты найденных учетных записей. Можно закрывать адресную книгу.
Переходим на настройкам почтового клиента Mozilla Thunderbird. Для этого кликаем по значку настройки и выбираем Настройки:
В разделе Составление находим подраздел Адресация. Ставим галочку для Сервере каталогов и выбираем нашу созданную книгу:
Настройка завершена. При составлении письма в разделе «Кому» пишем имя получателя для его поиска по общей книге.
MS Outlook
В случае использования почтового сервера Exchange, нет необходимости вручную создавать адресную книгу, так как она создается автоматически. Без Exchange (например, при использовании Postfix / hMailServer / exim) необходимо ее подключить вручную.
Запускаем почтовый клиент. Кликаем по Файл:
Переходим в Настройка учетных записей - еще раз Настройка учетных записей:
На вкладке Адресные книги кликаем по Создать:
На странице выбора типа каталога выбираем Служба каталогов Интернета (LDAP):
В следующем окне вводим адрес сервера LDAP и логин с паролем для подключения:
* Обратите внимание, что формат записи для имени пользователя может отличаться в зависимости от реализации службы каталогов, например
- Во FreeIPA в качестве bind dn нужно будет прописать uid=gab,cn=users,cn=accounts,dc=dmosk,dc=local (при условии, что именно по данному пути расположена учетная запись).
- В некоторых версиях MS Active Directory мы должны указать учетную запись с доменом, например, dmosk\gab.
Кликаем по кнопке Другие настройки и вводим имя для адресной книги:
... а на вкладке Поиск, при необходимости, задаем базу для поиска и ставим галочку Включить предпросмотр (для отображения всех контактов в адресной книге при ее открытии):
Готово. Чтобы Outlook увидел новую адресную книгу, перезапускаем его.
Roundcube
Для подключения адресной книги в Roundcube открываем конфигурационный файл на сервере:
vi /var/www/webmail/config/config.inc.php
* в моем примере roundcube установлен в каталог /var/www/webmail.
Добавляем следующие строки:
$config['autocomplete_addressbooks'] = array('sql','ldap');
$config['ldap_public'] = array(
'ldap' =>array (
'name' => 'Общая адресная книга',
'hosts' => array('dmosk.local'),
'sizelimit' => 600,
'port' => 389,
'use_tls' => false,
'user_specific' => false,
'base_dn' => 'DC=dmosk,DC=local',
'bind_dn' => 'gab@dmosk.local',
'bind_pass' => 'gab_password',
'writable' => false,
'ldap_version' => 3,
'search_fields' => array(
'mail',
'cn',
),
'name_field' => 'cn',
'email_field' => 'mail',
'surname_field' => 'sn',
'firstname_field' => 'givenName',
'organization_field' => 'company',
'jobtitle_field' => 'title',
'department_field' => 'department',
'sort' => 'sn',
'scope' => 'sub',
//'filter' => '(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))',
'filter' => '(&(mail=*)(|(&(objectcategory=person)(!(objectClass=computer)))(objectClass=group)))',
'global_search' => true,
'fuzzy_search' => true
),
);
$config['ldap_cache'] = 'db';
$config['ldap_cache_ttl'] = '10m';
* где:
- autocomplete_addressbooks — перечень источников адресных книг. В нашем примере не первом месте идет база данных, на втором — LDAP.
- ldap_public — список подключений к LDAP. В нашем примере будет одно со следующими параметрами:
- name — имя адресной книги.
- hosts — перечень ldap-сервером.
- port — порт для подключения к LDAP.
- use_tls — нужно ли использовать шифрованное соединение. В данном примере, нет, но если требуется, необходимо также изменить порт подключения.
- base_dn — в каком базовом контейнере искать учетные данные.
- bind_dn — учетная запись, от которой будет идти обращение к LDAP. Формат данной записи может отличаться в зависимости от реализации службы каталогов, например, во FreeIPA в качестве bind dn нужно будет прописать uid=gab,cn=users,cn=accounts,dc=dmosk,dc=local (при условии, что именно по данному пути расположена учетная запись).
- bind_pass — пароль для учетной записи, от которой будет идти обращение к LDAP.
- search_fields — поля, по которым будет осуществляться поиск учетной записи.
- name_field — поле для имени учетной записи.
- email_field — поле с email.
- filter — фильтр поиска учетных записей. В данном примере раскомметированный фильтр больше подходит для Microsoft Active Directory.
- * стоит иметь ввиду, что у разных реализаций LDAP поля могут иметь разные имена.
- ldap_cache — место хранения кэша. Возможны варианты db, apc и memcache.
- ldap_cache_ttl — время хранения кэша.
Открываем Roundcube и переходим в контакты. Мы должны увидеть новую адресную книгу с название, описанным в поле name.