Инструменты пользователя

Инструменты сайта


postfix_dovecot_active_directory

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

postfix_dovecot_active_directory [2013/05/07 19:01]
metallic [Dovecot]
postfix_dovecot_active_directory [2022/03/25 17:00]
Строка 1: Строка 1:
-====== Почта Postfix + Dovecot с интеграцией в MS Active Directory ====== 
-===== Введение ===== 
-В данной статье я хочу структурировать клочки информации по теме, которые мне удалось найти в интернете. Данная тема не новая, но внятного-понятно howto, с пояснениями и т.д. найти не удалось, поэтому решил написать заметку себе на память, вдруг еще доведется подобное где-то разворачивать. 
-Итак, в данном мануале будет рассмотрен вопрос разворачивания внутренней корпоративной почты, т.е. почта которая работает только в пределах локальной сети, для внутренних нужд организации, хотя ничего вам не мешает подобным образом организовать и глобальную почтовую систему. 
- 
-Для чего все это нужно? Ну, во-первых, удобство использования виртуальных акантов, вместо реальных, на почтовом сервер, вполне очевидно. Во-вторых, интеграция почтовой системы с AD(LDAP) дает нам возможность централизованно управлять всеми акаунтами из одного места(акаутны, почтовые псевдонимы, списки рассылки и т.д.). В данном конкретном случае предполагается, что AD уже развернуто и акаунты уже есть, но имена их не соответствуют желаемому стандарту, например "первая буква имени, фамилия", т.е. для Иванова Ивана акаунт должен был быть iivanov, а на самом деле есть vasya. Т.е. хотелось, чтобы почтовый адрес был iivanov@domain.local, выходом из положения стало использование алиасов, т.е. у каждого пользователя прописано поле E-mail в его профиле, где и указано iivanov@domain.local, но обо всем по порядку. 
- 
-Итак, имеем домен под управлением Windows Server 2012, режим леса и режим домена - 2012. Почтовый сервер - GNU/Debian 7.0 (Postfix 2.9, Dovecot 2.1). 
- 
-===== Dovecot ===== 
-Начнем с Dovecot. Конфиг у него достаточно объемный, буду указывать только то, что правил. 
- 
-/etc/dovecot/conf.d/10-auth.conf 
-  # Включаем plaintext аунтификацию, т.к. по-другому с AD работать не будет(вроде?). 
-  # А если нужна безопасность, то можно использовать SSL-соединение. 
-  disable_plaintext_auth = no 
-   
-/etc/dovecot/conf.d/10-logging.conf 
-  # Указываем куда класть дополнительные логи 
-   
-  debug_log_path = /var/log/dovecot_debug.log 
-   
-  # Ну и включаем всевозможные логи, помогут нам при отладке, главное не забыть потом выключить, 
-  # особенно логирование паролей 
-   
-  auth_verbose = yes 
-  auth_debug = yes 
-  auth_debug_passwords = yes 
-  mail_debug = yes 
-   
-/etc/dovecot/conf.d/10-mail.conf 
-  # Указываем путь, по которому будет хранится пользовательская почта, также указываем формат(maildir) 
-  # %u - полное имя пользователя(с доменной частью: user@domail.local) 
-  # %n - короткое имя пользователя(без доменной части: user) 
-  # %d - доменная часть(domail.local), может быть пустой 
-  # %h - домашний каталог, тоже может быть пустым 
-     
-  mail_location = maildir:/srv/vmail/%u 
-   
-  # Два нижних параметра очень важны, они указывают дефолтные uid и gid пользователя, если эти данные 
-  # не удалось извлечь из AD. Эти данные используются для установки прав доступа к maildir пользователя. 
-  # Почтовику нужно знать хотя бы uid, иначе, если не указать эти данные, в логах будут ошибки такого типа: 
-  # "Couldn't drop privileges: User is missing UID (see mail_uid setting)". У пользователей в AD есть такие 
-  # поля: uidNumber и gidNumber, но они пусты по-умолчанию, их можно задать через ADSI Edit, но это не иммет 
-  # никакого смысла, ведь наши акаунты виртуальные. Соответственно создаем пользователя vmail(думаю, не надо  
-  # показывать как это делать) и смотрим идентификатор этого пользователя и идентификатор его группы 
-  # (id vmail), затем вписываем их в параметры ниже. Теперь вся почта будет принадлежать пользователю vmail.   
-   
-  mail_uid = 1001 
-  mail_gid = 1001 
-  
-/etc/dovecot/conf.d/15-lda.conf 
-  # Local Delivery Agent - через этот механизм postfix будет контактировать с dovecot. 
-  protocol lda { 
-    hostname = mail.domain.local 
-    mail_plugin_dir = /usr/lib/dovecot/modules 
-    postmaster_address = admin@domail.local 
-    sendmail_path = /usr/sbin/sendmail 
-  } 
-   
-/etc/dovecot/conf.d/auth-ldap.conf.ext 
-  passdb { 
-    driver = ldap 
-    args = /etc/dovecot/dovecot-ldap.conf.ext 
-  } 
-   
-  userdb { 
-    driver = ldap 
-    args = /etc/dovecot/dovecot-ldap.conf.ext 
-     
-    # Тут мы снова задаем дефолтные значения для некоторых важных параметров 
-    default_fields = home=/srv/vmail/%u uid=1001 gid=1001 
-  } 
-   
-/etc/dovecot/dovecot-ldap.conf.ext 
-  # Задаем адрес нашего DC, либо его имя. А еще лучше указать имя домена domain.local, тогда 
-  # соединение будет устанавливаться с любым доступным DC в домене(при условии корректно 
-  # функционирующего DNS). Но на этапе отладки лучше прописать IP-адрес. 
-  uris = ldap://1.1.1.1 
-   
-  # Здесь прописываем путь к пользователю, с помощью которого будем подключаться к AD для получения 
-  # необходимой информации. В целях безопасности этот пользователь должен иметь права только на чтение. 
-  # Пользователя в AD нужно создать заранее. Вроде, здесь можно использовать формат reader@domail.local 
-  dn = cn=reader,ou=ServiceUsers,ou=AllUsers,dc=domail,dc=local 
-   
-  # Пароль этого пользователя. 
-  dnpass = passw0rd 
-   
-  # Использовать ли защищенное соединение? Мне в локальной сети это не очень нужно. 
-  tls = no 
-   
-  # Подключаться к AD 
-  auth_bind = yes 
-   
-  # Формат имени пользователя 
-  auth_bind_userdn = %n@domain.local 
-   
-  # Версия протокола 
-  ldap_version = 3 
-   
-  # Где искать пользователей, можно указать самый корень домена, тогда поиск будет выполняться во 
-  # всех подразделениях 
-  base = ou=AllUsers,dc=domain,dc=local 
-   
-  deref = searching 
-   
-  scope = subtree 
-   
-  # Фильтрация пользователей. Также указываем по чему будем идентифицировать их. Если домен AD и 
-  # почтовый домен совпадают - проще всего по userPrincipalName, оно точно уникальное. 
-  user_filter = (&(objectClass=person)(userPrincipalName=%u)) 
-  pass_filter = (&(ObjectClass=person)(userPrincipalName=%u)) 
-   
-На этом все, теперь можно попробовать почтовым клиентом забрать почту. В качестве логина нужно указывать имя пользователя с доменной частью: user@domain.org. Если все прошло успешно, должен появиться maildir /srv/vmail/user@domain.org 
-<note important> 
-Не забудьте назначить владельцем каталога /srv/vmail пользователя vmail. 
-</note> 
  
postfix_dovecot_active_directory.txt · Последнее изменение: 2022/03/25 17:00 (внешнее изменение)