Differences
This shows you the differences between two versions of the page.
| Previous revision | |||
| — | linux_faq:postfix-dovecot-и-active-directory [2019/02/11 09:13] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== postfix, dovecot и Active Directory ====== | ||
| + | Реализовать почтовик на Linux с пользователями из **Active Directory** можно по-разному. Рассмотрим случай, | ||
| + | ====== Postfix ====== | ||
| + | **Postfix** фильтрует входящую почту как своими средствами (проверка на различные аспекты соответствия письма и сервера отправителя rfc), а так же прогоняет ее через **amavisd**, | ||
| + | |||
| + | В этом пункте стоит обратить внимание на то, как **postfix** связан c **Active Directory**, | ||
| + | |||
| + | В нашей системе есть обычные пользователи, | ||
| + | |||
| + | Заглянем в наш **/ | ||
| + | < | ||
| + | virtual_alias_maps = ldap:/ | ||
| + | \\ | ||
| + | В файле **/ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | debuglevel = 0 | ||
| + | version = 3 | ||
| + | server_host = ldap:// | ||
| + | search_base = ou=Users, | ||
| + | query_filter = (userPrincipalName=%s) | ||
| + | result_attribute = sAMAccountName | ||
| + | result_format = %u/ | ||
| + | bind_dn = ldap-bind@domain.local | ||
| + | bind_pw = p@$$word | ||
| + | cache = no | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | version = 3 | ||
| + | server_host = ldap:// | ||
| + | search_base = ou=Users, | ||
| + | timeout = 3 | ||
| + | query_filter = (otherMailbox=%s) | ||
| + | result_filter = %s | ||
| + | result_attribute = userPrincipalName | ||
| + | special_result_attribute = member | ||
| + | scope = sub | ||
| + | bind = yes | ||
| + | bind_dn = ldap-bind@domain.local | ||
| + | bind_pw = p@$$word | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | mail:/ | ||
| + | debuglevel = 0 | ||
| + | version = 3 | ||
| + | server_host = ldap:// | ||
| + | search_base = ou=Users, | ||
| + | timeout = 3 | ||
| + | query_filter = (& | ||
| + | result_filter = %s | ||
| + | result_attribute = mail | ||
| + | special_result_attribute = member | ||
| + | scope = sub | ||
| + | bind = yes | ||
| + | bind_dn = ldap-bind@domain.local | ||
| + | bind_pw = p@$$word | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | version = 3 | ||
| + | server_host = ldap:// | ||
| + | search_base = ou=Users, | ||
| + | timeout = 3 | ||
| + | query_filter = (& | ||
| + | result_filter = %s | ||
| + | result_attribute = userPrincipalName | ||
| + | special_result_attribute = member | ||
| + | scope = sub | ||
| + | bind = yes | ||
| + | bind_dn = ldap-bind@domain.local | ||
| + | bind_pw = p@$$word | ||
| + | </ | ||
| + | Как видно, пользователей **postfix** обнаруживает по заполненному атрибуту **mail**, алиас по списку адресов в атрибуте **otherMailboxes**, | ||
| + | |||
| + | Таким образом, | ||
| + | |||
| + | ======dovecot====== | ||
| + | За доставку почты в ящики | ||
| + | В **main.cf** указан транспорт\\ | ||
| + | < | ||
| + | |||
| + | И описываем этот транспорт в **master.cf**: | ||
| + | < | ||
| + | |||
| + | Так как пользователи у нас виртуальный, | ||
| + | Куда же падают наши письма? | ||
| + | < | ||
| + | |||
| + | где **%Lu** тут - имя пользователя.\\ | ||
| + | |||
| + | Почта в ящике! Осталось ее забрать :-)\\ | ||
| + | Править конфиг по-умолчанию практически не приходится. Существенный момент - позаботимся об авторизации. Будем использовать запросы к **LDAP**. В разделе **auth default** (все в том же **dovecot.conf**) добавим: | ||
| + | < | ||
| + | |||
| + | И сам **dovecot-ldap.conf** (напоминает нам конфиги **postfix**): | ||
| + | < | ||
| + | dn = CN=ldap-user, | ||
| + | dnpass = P@$$word | ||
| + | auth_bind = yes | ||
| + | ldap_version = 3 | ||
| + | base = dc=domain, | ||
| + | deref = searching | ||
| + | scope = subtree | ||
| + | user_filter = (& | ||
| + | pass_filter = (& | ||
| + | |||
| + | Таким образом, | ||
| + | |||
| + | Немного более подробно я описал настроку почтовика на примере **iRedMail**: | ||