Debian → Интегрируем iRedmail (Debian/Ubuntu) c Active Directory (Windows Server 2003/2008/2008R2/2012beta) (В разном пространстве имен!)
Изначально, я хотел слегка переделать статью, но оказалось, что изменения весьма существенные и чтобы не возникало путаницы, требуется отдельное описание.
Для чего это все?!
Достаточно удобной альтернативой Exchange серверу, может стать система iRedMail, конечно ее функционал несколько скромнее, но зачастую, его более чем достаточно, для компании небольших или средних размеров. Тем более что мне в руки попала версия Windows Server 2012 RC в редакции Datacenter, вот я и решил все на ней протестировать
Довольно трудно предугадать будущие потребности в инфраструктуре, зачастую, они появляются по мере роста компании, как обычно бывает, сначала было несколько ПК в рабочей группе, затем, по мере роста количества рабочих мест, появился контроллер домена, через какое-то время появилась, доменное имя для сайта компании ну и как следствие-потребность в почтовом сервере. Доменную инфраструктуру могли назвать как угодно (все зависит от фантазии того, кто это разворачивал) например companyname.local и когда ее устанавливали никто даже предположить не мог куда все это придет через 2-3 года. Соответственно доменное имя в пространстве .local-не может быть использовано в интернет, как следствие, почтовая инфраструктура не может использоваться при такой схеме работы.
Валить домен и перестанавливать его, совсем тухлая идея (для совсем «мешком прибитых») которая потребует повторного заведения учетных записей пользователей если их 50 то еще куда не шло, а если 100, а если 1000, также потребует повторного создания групповых политик и прочих давно настроенных вещей, которые отлично работают годами. Также, существует возможность переименования домена предприятия, но это тоже весьма не простой вариант, а вдруг «не взлетит» эта процедура может тащить за собой довольно серьезную перспективу получения «кучи геморроя» на равном месте, а если от работы системы зависит целое предприятие, то за непредвиденный простой, руководство компании «барбарЫсок вам не насыпет».
Для лучшего понимания я буду использовать примеры из документации Microsoft.
У нас есть контроллер домена server10.contoso.com, на момент его установки, компания не имела внешнего доменного имени, в дальнейшем, она приобрела доменное имя для сайта example.org, параллельно возникла необходимость в установке почтового сервера, к которому должны иметь возможность подключаться сотрудники компании, которые могут находиться как в офисе компании, так и за его пределами. Для работы почтового сервера была создана запись MX указывающая на IP адрес почтового сервера в сети internet. Также, сотрудники- которые не могут использовать почтовую программу, должны иметь возможность подключиться через WEB интерфейс, для работы которого, был создан под домен mail.example.org. Сотрудники должны проходить проверку подлинности с использованием учетных данных (Login/Password) в доменной сети предприятия, которые они используют для входа на рабочие станции.
Вот так все просто!
Если у вас контроллер домена и почтовый сервер находится в одном пространстве имен, например: контроллер домена имеет доменное имя dc1.example.org, а почтовый сервер mail.example.org, как видно из примера, они имеют одинаковый DNS суффикс example.org смотрите ранее опубликованное руководство- Интеграция почтового сервера iRedMail с Active Directory (Windows Server 2003/2008/2008R2 )
У нас есть почтовый сервер настроенный по руководству Настройка почтового сервера Ubuntu+iRedMail. Настоятельно рекомендую использовать Debian 6.0.5 иил Ubuntu 12.04 LTS, которые уже доступны, также на нее можно установить стабильный релиз iRedMail, доступный и стабильный релиз на текущий момент, можно посмотреть на странице загрузки Iradmail.org). В остальном процесс установки не изменился ни капли.
Предполагается что оба сервера установлены и готовы к работе. Вся дальнейшая конфигурация представлена ИСКЛЮЧИТЕЛЬНО в тестовых целях, имена серверов, логины пользователей, IP адреса, пароли-необходимо заменить на свои, а пароли желательно вообще генерировать с помощью ПО, добавив им сложности!
Также- Если предполагается доступ пользователей из интернет, то необходимо включить в GPO, требования задающие сложонсть и уникальность паролей, иначе один из пользователей, который «самый умный» будет использовать пароль 123456 (поверьте такие найдутся) и ваш сервер станет легкой добычей для спамеров, которые быстро срубят такой пароль, со всеми вытекающими последствиями...
Единственное ограничение — Dovecot воспринимает символ # как перенос, данный символ НЕЛЬЗЯ использовать в паролях!
Поднимаем права до root:
В Ubuntu
В Debian
нам необходимо добавить имя сервера в hosts
Добавляем туда:
Сохраняем изменения и выходим
Пробуем пинговать server10.contoso.com
Если пинги, проходят все отлично! Если нет, то проверяем правильность написания имени и IP адрес контроллера домена.
Маленький, полезный, но не обязательный момент
Настроим синхронизацию времени почтового сервера с контроллером домена, это нужно для корректного отображения даты и времени получения писем, с другой стороны ничего не мешает использовать поставщиков времени в интернете, но если мы хотим получить полноценную систему, то лучше сделать это.
Находим строку и вписываемым туда DNS адрес контроллера домена:
Перезагружаем почтовый сервер, вуаля, все работает, время синхронизировалось.
У него имя server10.contoso.com и IP 172.16.0.20
В качестве примера я буду использовать скриншоты из Windows Server 2012, но на других версиях Windows Server, названия оснасток аналогичные.
Нам необходимо перейти в оснастку Active Directory Domains and Trusts в русском варианте Active Drectory Домены и доверие, и переходим в свойства, как указано на скриншоте:

Нам необходимо добавить UPN суффикс-example.org как на скриншоте:

Чтобы путь к учетной записи в LDAP каталоге был cn=iredmail,dc=contoso,dc=com
Также, нам необходимо создать подразделение (Organization Unit), назовем подразделение personal путь в LDAP каталоге, будет иметь вид: ou=personal,dc=contoso,dc=com
Внутри подразделения personal, создадим 3 учетные записи, пользователей домена с паролем password@1 с именами:
Федя Мегатронов с логином megatronov и адресом электронной почты megatronov@example.org выбрав ему UPN суффикс example.org, как на скриншоте:

Аналогичным способом заводим двух других пользователей
Кеша Фуфлометов с логином fuflometov и адресом электронной почты fuflometov@example.org
Светлана Кукуева с логином kukueva и адресом электронной почты kukueva@example.org
Пути в каталоге LDAP, к учетным записям пользователей, будут иметь вид:
В этом подразделении, создадим группу распространения, allusers и электронной почтой allusers@example.org.
В эту группу распространения, нам необходимо добавить наших трех пользователей.
Для начала нам необходимо перенастроить базу LDAP для поиска, при установке сервера мы казали example.org нам необходимо это исправить.
Необходимо отредактировать конфигурационный файл LDAP:
Нас интересует строка:
Пробуем подключиться к Active Directory
Получаем тонну информации от контроллера домена, у кого много времени могут попробовать разобраться, что она из себя представляет, на досуге…
Меняем настройки транспорта для сообщений:
Изменим настройки транспорта:
Добавим в него следующее:
Экспортируем все это, в базу данных Postfix:
Подключаться к AD мы будем от имени пользователя iredmail (cn=iredmail,dc=example,dc=org) с паролем password^1, мы будем искать пользователей, которые находятся в подразделении personal (ou=presonal,dc=example,dc=org)
Нам необходимо отредактировать содержимое следующих файлов (то что там находится удаляем и заменяем на приложенное снизу)
Разрешаем подключение к AD с целью поиска групп и их членов.
Активируем поиск логинов отправителей в AD:
Отредактируем main.cf
Там нам необходимо найти и удалить строку:
Проверка логина отправителя:
Должно выдать:
Проверим разрешение членства в группе:
Должно выдать:
Если нет вывода то возможно 4 причины:
1) У группы распространения не указан email.
2) Неправильные данные для подключения к AD.
3) В указанную группу не добавлены пользователи.
4) У пользователей добавленных в группу не заполнено email.
Нам также необходимо перенастроить Dovecot для запросов в Active Directory, все что там написано сотрем и записываем свое:
По умолчанию, iRedMail позволяет задавать квоты на размер почтового ящика, но перейдя с OpenLDAP на работу с AD эта возможность теряется, но мы можем указать дисковую квоту для всех пользователей, одним махом.
nano /etc/dovecot/dovecot.conf
Находим строку:
Это и есть размер почтового ящика для пользователей- 1Гб. Квота задается для всех пользователей разом!
Перезапускаем службы:
У нас была учетная запись Виктора Зелипукина, чтобы предоставить ему почтовый ящик достаточно в свойствах учетной записи выставить UPN суффикс example.org вместо contoso.com как на скриншоте:

При первом подключении пользователя, его почтовый ящик будет создан автоматически и готов к использованию.
Почтовые ящики пользователей находятся в:
Эта информация вам пригодится, когда понадобится настроить резервное копирование почтовых ящиков пользователей!
Продуем подключаться через telnet:
Нам выдаст:
Получаем:
Получаем ответ:
Севера нам выдаст:
Сервер нам ответит
Теперь можно пробовать подключаться через WEB интерфейс, для входа пользователя нам достаточно указать только Login, например megatronov хотя можно указывать данные пользователя полностью megatronov@example.org, Dovecot подставляет UPN суффикс самостоятельно.
Ну и завершающий этап-подключение адресной книжки из Active Dorectory
Находим строку:
Приводим ее к виду:
Далее, нам необходимо найти раздел:
И привести его к виду, указанному ниже:
(Я специально ничего не удалял, а просто за комментировал строки, которые там были изначально и добавил свои, также слегка переделал порядок сортировки, теперь он идет по алфавиту)
Вставляем туда:
Сохраняем изменения, пробуем под пользователем зайти в адресную книгу, у нас там появиться пункт Global AD Address Book нажимаем на него и получаем список пользователей домена, которые имеют почтовые ящики.
Ну а теперь легкий тюнинг вида ящика. Слегка изменим порядок отображения колонок в почтовом ящике, лично мне нравится дефонтный порядок отображения колонок писем в Outlook, на мой взгляд, он удобный, по этому я решил привести отображение писем немного похожим на него.
Открываем файл:
находим строку:
Закоментриуем ее и сразу под ней добавим, готовую строку:
Вот и все.
Если у вас есть интересные доработки, для данной схемы, не стесняйтесь выкладывайте, думаю что они будут полезны многим. Также, если возникли вопросы, то прошу в комментарии.
Ну и напоследок, в статье, в качестве контроллера домена, используется Windows Server 2012 которая находится в состоянии Резиз-кандидата, я использовал данную ОС ИСКЛЮЧИТЕЛЬНО в тестовых целях, не рекомендую ее использовать в продукционной среде, до официального релиза, все это было сделано для того чтобы показать что iRedMail может работать с операционными системами предыдущего поколения Win 2003/2008/2008r2 так и с самыми современными, официальный релиз которых, на момент написания статьи, еще не состоялся. Обратная совместимость с операционными системами предыдущего поколения, полностью сохранена!
Вдогонку к выше сказанному, тем людям кто будет использовать данную наработку, перед внедрением в производственной сети предприятия- ОБЯЗАТЕЛЬНО тестируйте все это в песочнице, тогда у вас появится понимание того как все это работает, без вероятности все завалить!
Для чего это все?!
Достаточно удобной альтернативой Exchange серверу, может стать система iRedMail, конечно ее функционал несколько скромнее, но зачастую, его более чем достаточно, для компании небольших или средних размеров. Тем более что мне в руки попала версия Windows Server 2012 RC в редакции Datacenter, вот я и решил все на ней протестировать
Довольно трудно предугадать будущие потребности в инфраструктуре, зачастую, они появляются по мере роста компании, как обычно бывает, сначала было несколько ПК в рабочей группе, затем, по мере роста количества рабочих мест, появился контроллер домена, через какое-то время появилась, доменное имя для сайта компании ну и как следствие-потребность в почтовом сервере. Доменную инфраструктуру могли назвать как угодно (все зависит от фантазии того, кто это разворачивал) например companyname.local и когда ее устанавливали никто даже предположить не мог куда все это придет через 2-3 года. Соответственно доменное имя в пространстве .local-не может быть использовано в интернет, как следствие, почтовая инфраструктура не может использоваться при такой схеме работы.
Валить домен и перестанавливать его, совсем тухлая идея (для совсем «мешком прибитых») которая потребует повторного заведения учетных записей пользователей если их 50 то еще куда не шло, а если 100, а если 1000, также потребует повторного создания групповых политик и прочих давно настроенных вещей, которые отлично работают годами. Также, существует возможность переименования домена предприятия, но это тоже весьма не простой вариант, а вдруг «не взлетит» эта процедура может тащить за собой довольно серьезную перспективу получения «кучи геморроя» на равном месте, а если от работы системы зависит целое предприятие, то за непредвиденный простой, руководство компании «барбарЫсок вам не насыпет».
Для лучшего понимания я буду использовать примеры из документации Microsoft.
У нас есть контроллер домена server10.contoso.com, на момент его установки, компания не имела внешнего доменного имени, в дальнейшем, она приобрела доменное имя для сайта example.org, параллельно возникла необходимость в установке почтового сервера, к которому должны иметь возможность подключаться сотрудники компании, которые могут находиться как в офисе компании, так и за его пределами. Для работы почтового сервера была создана запись MX указывающая на IP адрес почтового сервера в сети internet. Также, сотрудники- которые не могут использовать почтовую программу, должны иметь возможность подключиться через WEB интерфейс, для работы которого, был создан под домен mail.example.org. Сотрудники должны проходить проверку подлинности с использованием учетных данных (Login/Password) в доменной сети предприятия, которые они используют для входа на рабочие станции.
Вот так все просто!
Чтобы не было путаницы, еще раз напоминаю
Если ваш почтовый сервер и контроллер домена находятся в разных пространствах имен, например: Контроллер домена имеет имя server10.contoso.com, а почтовый сервер имеет доменное имя mail.example.org, то эта статья для вас.Если у вас контроллер домена и почтовый сервер находится в одном пространстве имен, например: контроллер домена имеет доменное имя dc1.example.org, а почтовый сервер mail.example.org, как видно из примера, они имеют одинаковый DNS суффикс example.org смотрите ранее опубликованное руководство- Интеграция почтового сервера iRedMail с Active Directory (Windows Server 2003/2008/2008R2 )
У нас есть почтовый сервер настроенный по руководству Настройка почтового сервера Ubuntu+iRedMail. Настоятельно рекомендую использовать Debian 6.0.5 иил Ubuntu 12.04 LTS, которые уже доступны, также на нее можно установить стабильный релиз iRedMail, доступный и стабильный релиз на текущий момент, можно посмотреть на странице загрузки Iradmail.org). В остальном процесс установки не изменился ни капли.
Предполагается что оба сервера установлены и готовы к работе. Вся дальнейшая конфигурация представлена ИСКЛЮЧИТЕЛЬНО в тестовых целях, имена серверов, логины пользователей, IP адреса, пароли-необходимо заменить на свои, а пароли желательно вообще генерировать с помощью ПО, добавив им сложности!
Также- Если предполагается доступ пользователей из интернет, то необходимо включить в GPO, требования задающие сложонсть и уникальность паролей, иначе один из пользователей, который «самый умный» будет использовать пароль 123456 (поверьте такие найдутся) и ваш сервер станет легкой добычей для спамеров, которые быстро срубят такой пароль, со всеми вытекающими последствиями...
Единственное ограничение — Dovecot воспринимает символ # как перенос, данный символ НЕЛЬЗЯ использовать в паролях!
Подготавливаем инфраструктуру к взаимодействию.
Настраиваем Linux серверПоднимаем права до root:
В Ubuntu
sudo su
В Debian
su
нам необходимо добавить имя сервера в hosts
nano /etc/hosts
Добавляем туда:
172.16.0.20 server10.contoso.com
Сохраняем изменения и выходим
Пробуем пинговать server10.contoso.com
Если пинги, проходят все отлично! Если нет, то проверяем правильность написания имени и IP адрес контроллера домена.
Маленький, полезный, но не обязательный момент
Настроим синхронизацию времени почтового сервера с контроллером домена, это нужно для корректного отображения даты и времени получения писем, с другой стороны ничего не мешает использовать поставщиков времени в интернете, но если мы хотим получить полноценную систему, то лучше сделать это.
nano /etc/default/ntpdate
Находим строку и вписываемым туда DNS адрес контроллера домена:
NTPSERVERS="server10.contoso.com"
Перезагружаем почтовый сервер, вуаля, все работает, время синхронизировалось.
Настраиваем Windows Server
Переходим на наш Windows Server 2003/2008/2008R2/2012RCУ него имя server10.contoso.com и IP 172.16.0.20
В качестве примера я буду использовать скриншоты из Windows Server 2012, но на других версиях Windows Server, названия оснасток аналогичные.
Нам необходимо перейти в оснастку Active Directory Domains and Trusts в русском варианте Active Drectory Домены и доверие, и переходим в свойства, как указано на скриншоте:

Нам необходимо добавить UPN суффикс-example.org как на скриншоте:

Заводим пользователей на контроллере домена
Нам необходимо создать пользователя с именем iredmail, логином iredmail и паролем: password^1 Никаких админских прав, мы ему не даем-это важно! Его мы создаем в самом корне контроллера домена.Чтобы путь к учетной записи в LDAP каталоге был cn=iredmail,dc=contoso,dc=com
Также, нам необходимо создать подразделение (Organization Unit), назовем подразделение personal путь в LDAP каталоге, будет иметь вид: ou=personal,dc=contoso,dc=com
Внутри подразделения personal, создадим 3 учетные записи, пользователей домена с паролем password@1 с именами:
Федя Мегатронов с логином megatronov и адресом электронной почты megatronov@example.org выбрав ему UPN суффикс example.org, как на скриншоте:

Аналогичным способом заводим двух других пользователей
Кеша Фуфлометов с логином fuflometov и адресом электронной почты fuflometov@example.org
Светлана Кукуева с логином kukueva и адресом электронной почты kukueva@example.org
Пути в каталоге LDAP, к учетным записям пользователей, будут иметь вид:
cn=Федя Мегатронов,ou=personal,dc=contoso,dc=com
cn=Кеша Фуфлометов,ou=personal,dc=contoso,dc=com
cn=Светлана Кукуева,ou=personal,dc=contoso,dc=com
В этом подразделении, создадим группу распространения, allusers и электронной почтой allusers@example.org.
В эту группу распространения, нам необходимо добавить наших трех пользователей.
Переходим к серверу Linux
Для начала нам необходимо перенастроить базу LDAP для поиска, при установке сервера мы казали example.org нам необходимо это исправить.
Необходимо отредактировать конфигурационный файл LDAP:
nano /etc/ldap/ldap.conf
Нас интересует строка:
BASE dc=example,dc=orgПеределаем ее, чтобы она выглядела:
BASE dc=contoso,dc=com
Пробуем подключиться к Active Directory
ldapsearch -x -h server10.contoso.com -p 389 -D 'cn=iredmail,dc=contoso,dc=com' -W
Enter password: Вводим пароль password^1
Получаем тонну информации от контроллера домена, у кого много времени могут попробовать разобраться, что она из себя представляет, на досуге…
Меняем настройки транспорта для сообщений:
postconf -e transport_maps='hash:/etc/postfix/transport'
Изменим настройки транспорта:
nano /etc/postfix/transport
Добавим в него следующее:
mail.example.org dovecot
Экспортируем все это, в базу данных Postfix:
postmap hash:/etc/postfix/transport
Подключаться к AD мы будем от имени пользователя iredmail (cn=iredmail,dc=example,dc=org) с паролем password^1, мы будем искать пользователей, которые находятся в подразделении personal (ou=presonal,dc=example,dc=org)
Нам необходимо отредактировать содержимое следующих файлов (то что там находится удаляем и заменяем на приложенное снизу)
nano /etc/postfix/ldap/virtual_mailbox_maps.cf
server_host = server10.contoso.com
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=iredmail,dc=contoso,dc=com
bind_pw = password^1
search_base = ou=personal,dc=contoso,dc=com
scope = sub
query_filter = (&(objectclass=person)(userPrincipalName=%s))
result_attribute = userPrincipalName
debuglevel = 0
Разрешаем подключение к AD с целью поиска групп и их членов.
nano /etc/postfix/ldap/virtual_group_maps.cf
server_host = server10.contoso.com
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=iredmail,dc=contoso,dc=com
bind_pw = password^1
search_base = ou=personal,dc=contoso,dc=com
scope = sub
query_filter = (&(objectClass=group)(mail=%s))
special_result_attribute = member
leaf_result_attribute = mail
#result_attribute= userPrincipalName
debuglevel = 0
Активируем поиск логинов отправителей в AD:
nano /etc/postfix/ldap/sender_login_maps.cf
server_host = server10.contoso.com
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=iredmail,dc=contoso,dc=com
bind_pw = password^1
search_base = ou=personal,dc=contoso,dc=com
scope = sub
query_filter = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= userPrincipalName
debuglevel = 0
Отредактируем main.cf
nano /etc/postfix/main.cf
Там нам необходимо найти и удалить строку:
check_policy_service inet:127.0.0.1:7777
Проверка логина отправителя:
postmap -q megatronov@example.org ldap:/etc/postfix/ldap/sender_login_maps.cf
Должно выдать:
megatronov@example.org
Проверим разрешение членства в группе:
postmap -q allusers@example.org ldap:/etc/postfix/ldap/virtual_group_maps.cf
Должно выдать:
kukueva@example.org,fuflometov@example.org,megatronov@example.org
Если нет вывода то возможно 4 причины:
1) У группы распространения не указан email.
2) Неправильные данные для подключения к AD.
3) В указанную группу не добавлены пользователи.
4) У пользователей добавленных в группу не заполнено email.
Нам также необходимо перенастроить Dovecot для запросов в Active Directory, все что там написано сотрем и записываем свое:
nano /etc/dovecot/dovecot-ldap.conf
hosts = server10.contoso.com:389
ldap_version = 3
auth_bind = yes
dn = iredmail@contoso.com
dnpass = password^1
base = ou=personal,dc=contoso,dc=com
scope = subtree
deref = never
user_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_attrs = userPassword=password
default_pass_scheme = CRYPT
user_attrs = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/
Квота на размер почтового ящика.
По умолчанию, iRedMail позволяет задавать квоты на размер почтового ящика, но перейдя с OpenLDAP на работу с AD эта возможность теряется, но мы можем указать дисковую квоту для всех пользователей, одним махом.
nano /etc/dovecot/dovecot.conf
Находим строку:
quota_rule = *:storage=1G
Это и есть размер почтового ящика для пользователей- 1Гб. Квота задается для всех пользователей разом!
Перезапускаем службы:
/etc/init.d/postfix restart
/etc/init.d/dovecot restart
Создание почтовых ящиков на почтовом сервере:
Создавать ящики, на почтовом сервере не требуется, достаточно на контроллере домена создать учетную запись, но бывают ситуации, когда у пользователя есть учетная запись, но почтовый ящик ему не требовался или не был положен, теперь это легко решить, достаточно в свойствах учетной записи, изменить UPN суффикс, например:У нас была учетная запись Виктора Зелипукина, чтобы предоставить ему почтовый ящик достаточно в свойствах учетной записи выставить UPN суффикс example.org вместо contoso.com как на скриншоте:

При первом подключении пользователя, его почтовый ящик будет создан автоматически и готов к использованию.
Важный момент!
Рекомендуется заполнять поле E-mail, хотя пользователь сможет пользоваться ящиком и без него, но если включить его учетную запись в группу рассылки, то почта, приходить к нему не будет т.к. адрес почты не указан, также пользователь не будет виден в глобальной адресной книге, пока данное поле не будет заполнено.Почтовые ящики пользователей находятся в:
/var/vmail/vmail1/example.org/$userlogin
Эта информация вам пригодится, когда понадобится настроить резервное копирование почтовых ящиков пользователей!
Продуем подключаться через telnet:
telnet localhost 110
Нам выдаст:
Trying 127.0.0.1…указываем пользователя:
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user megatronov@example.org
Получаем:
+OKУказываем пароль:
pass password@1
Получаем ответ:
+OK Logged in.Проверим наличие почты:
list
Севера нам выдаст:
+OK 0 messages:Завершаем сессию:
.
quit
Сервер нам ответит
+OK Logging out.
Connection closed by foreign host.
Теперь можно пробовать подключаться через WEB интерфейс, для входа пользователя нам достаточно указать только Login, например megatronov хотя можно указывать данные пользователя полностью megatronov@example.org, Dovecot подставляет UPN суффикс самостоятельно.
Ну и завершающий этап-подключение адресной книжки из Active Dorectory
Подключение адресной книги
nano /usr/share/apache2/roundcubemail/config/main.inc.php
Находим строку:
$rcmail_config['autocomplete_addressbooks']
Приводим ее к виду:
$rcmail_config['autocomplete_addressbooks'] = array("sql", "mail.example.org");
Далее, нам необходимо найти раздел:
// Global LDAP address book.
И привести его к виду, указанному ниже:
(Я специально ничего не удалял, а просто за комментировал строки, которые там были изначально и добавил свои, также слегка переделал порядок сортировки, теперь он идет по алфавиту)
Вставляем туда:
$rcmail_config['ldap_public']["mail.example.org"] = array(
'name' => 'Global AD Address Book',
'hosts' => array('server10.contoso.com'),
'port' => 389,
'use_tls' => false,
// Search accounts in the same domain.
'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
'base_dn' => 'ou=personal,dc=contoso,dc=com',
'bind_dn' => 'cn=iredmail,dc=contoso,dc=com',
'bind_pass' => 'password^1',
'writable' => false, //запретим запись в AD
'ldap_version' => '3',
// 'search_fields' => array('mail', 'cn', 'givenName', 'sn'),
'search_fields' => array('mail', 'cn', 'sAMAccountName', 'displayname', 'sn', 'givenName'),
// 'name_field' => 'cn',
'email_field' => 'mail',
'surname_field' => 'displayName',
// 'firstname_field' => 'givenName',
// 'sort' => 'cn',
'scope' => 'sub',
// 'filter' => '(&(enabledService=mail)(enabledService=deliver)(enabledService=displayedInGlobalAddressBook)(|(objectClass=mailList)(objectClass=mailAlias)(objectClass=mailUser)))',
'filter' => "(mail=*@*)",
'fuzzy_search' => true);
Сохраняем изменения, пробуем под пользователем зайти в адресную книгу, у нас там появиться пункт Global AD Address Book нажимаем на него и получаем список пользователей домена, которые имеют почтовые ящики.
Ну а теперь легкий тюнинг вида ящика. Слегка изменим порядок отображения колонок в почтовом ящике, лично мне нравится дефонтный порядок отображения колонок писем в Outlook, на мой взгляд, он удобный, по этому я решил привести отображение писем немного похожим на него.
Открываем файл:
nano /usr/share/apache2/roundcubemail/config/main.inc.php
находим строку:
$rcmail_config['list_cols'] = array
Закоментриуем ее и сразу под ней добавим, готовую строку:
$rcmail_config['list_cols'] = array('flag','attachment', 'from', 'subject', 'status', 'date', 'size' );
Вот и все.
Если у вас есть интересные доработки, для данной схемы, не стесняйтесь выкладывайте, думаю что они будут полезны многим. Также, если возникли вопросы, то прошу в комментарии.
Ну и напоследок, в статье, в качестве контроллера домена, используется Windows Server 2012 которая находится в состоянии Резиз-кандидата, я использовал данную ОС ИСКЛЮЧИТЕЛЬНО в тестовых целях, не рекомендую ее использовать в продукционной среде, до официального релиза, все это было сделано для того чтобы показать что iRedMail может работать с операционными системами предыдущего поколения Win 2003/2008/2008r2 так и с самыми современными, официальный релиз которых, на момент написания статьи, еще не состоялся. Обратная совместимость с операционными системами предыдущего поколения, полностью сохранена!
Вдогонку к выше сказанному, тем людям кто будет использовать данную наработку, перед внедрением в производственной сети предприятия- ОБЯЗАТЕЛЬНО тестируйте все это в песочнице, тогда у вас появится понимание того как все это работает, без вероятности все завалить!
168 комментариев
я если честно уже потерял надежду найти решение
но нет оно нашлось = )
завтра буду пробовать…
На самом деле, у меня выдался свободный день и я смог сесть и разобраться.
Если требуется перекрыть доступ пользователю, то достаточно в настройках учетной записи поменять UPN суффикс с example.org на contoso.com.
т.е. мне нужно только добавить upn этих имен в AD
или необходимо их еще добавить и в iredmail админку…
если в sAMAccountName указано username@example.org то зайти по имени username@contoso.com с почтового сервера не получится!
Не думаю что тут возможно реализовать схему с множеством почтовых доменов авторизацией в AD- только 1, а вот если нужно много, то штатными средствами iredmail, без AD.
а если под каждые виртуальное доменное имя поднимать отдельно машину
такое в принципе может быть возможно или безнадежно…
для определенного пользователя в AD только один почтовый ящик
например
personal@qqq.com
для другого
info@aaa.ru
в AD соответсвенно добавляю несколько upn записей…
Думаю что при текущем раскладе, необходимо заводить несколько доменов на почтовом сервере и несколько учетных записей с разными значениями в sAMAccountName, но проблема в том что не возможно будет создать 2 ящика с именем username@example.org и username@aaa.ru т.к. логин username уже в использовании и AD это не пропустит хоть такой UPN указывайте!
Так что, думаю, что тут ваша затея провалится…
по поводу того что можно использовать несколько виртуальных доменных имен для почтового сервера
оказалось что для того чтобы это реализовать достаточно просто добавить UPN запись
И еще раз хочу поблагодарить за оперативное решение данное проблемы
СПАСИБО = )
а ты сам находишь решения (путем проб) или с помощь литературы и знакомых?
если нетрудно
А решения нахожу сам или с помощью гуггла ;) но по поводу данной статьи, то только запуская скрипты в режиме дебага+просмотр лог файлов. Сам поиск решения занял мин 40 (оказалось что- ларчик открывался просто), а вот допиливание статьи еще часа 3-4…
'base_dn' => 'ou=personal,dc=contoso,dc=com',
'bind_dn' => 'cn=iredmail,dc=contoso,dc=com',
и вернул прежние и все заработало. Но я продолжаю не понимать в чем все же проблема ?!
iRedMail -вообще фиолетово, она будет искать пользователей там где вы ей скажите, а будет это openLDAP или LDAP, да хоть AD LDS -не важно!
Соответственно адресная книга будет работать оттуда где хранятся все пользователи…
Количество машин в локальной сети не имеет значение, главное чтобы сервер тянул нагрузку, остальное -уже технические моменты.
Outlook- в принципе можно совсем убрать, а пользователей заставить работать через web интерфейс, тогда и перенастраивать не придется( добавив, через групповые политики, в избранное адрес вашего почтовика), если почтовый сервер находится в локальной сети с пользователями, то со скоростью подключения проблем не будет, думаю что локальных сетей со скоростью менее 100 Мбит, наверное нигде и не осталось, а если сеть новая, то вообще 1 Гбит.
Так что мой ответ- просто перенастроить и все… Предварительно все забэкапить!!!
howitmake.ru/blog/ubuntu/54.html#comment986
Огромное спасибо за полезную статью!
Вот только у меня вопрос: почему не могу зайти на почту через web интерфейс (пишет «неудачная попытка») под логином и паролем пользователя домена. запись «personal» вроде везде убрал… Почему не входит?
Попробуйте закопипастить как есть, до полного понимания как это все работает, а уже потом делать что-то свое. Я не знаю какая у вас причина, сморите логи dovecot.
А в чем проблема, перенести в пределах одного домена учетные данные пользователей в другое подразделение-никаких сложностей, вырезать вставить, права доступа не потеряется, членство в группах тоже (SID не потеряется).
Смотрите логи dovecot, там все написано!
Работы на 5 минут максимум!
У меня тоже такое случилось! Только, сначало лазил на веб интерфейс через ip/mail/ — сдох! потом через mail.domen.ru/mail/ — и он тоже сдох! И самое интересное сдыхают они когда пытаюсь зайти под пользователями которые не в папке personal.
[Thu Sep 06 13:30:44 2012] [notice] Apache/2.2.22 (Ubuntu) configured — resuming normal operations
[Thu Sep 06 13:30:45 2012] [notice] caught SIGTERM, shutting down
[Thu Sep 06 13:30:46 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2 with Suhosin-Patch configured — resuming normal operations
[Thu Sep 06 13:31:21 2012] [notice] caught SIGTERM, shutting down
[Thu Sep 06 13:31:22 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Thu Sep 06 13:31:22 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Thu Sep 06 13:31:22 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2 with Suhosin-Patch mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Thu Sep 06 13:31:29 2012] [notice] caught SIGTERM, shutting down
[Thu Sep 06 13:31:31 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Thu Sep 06 13:31:31 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Thu Sep 06 13:31:31 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2 with Suhosin-Patch mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Thu Sep 06 13:35:06 2012] [notice] caught SIGTERM, shutting down
[Thu Sep 06 13:35:07 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Thu Sep 06 13:35:07 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Thu Sep 06 13:35:07 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Thu Sep 06 13:35:07 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Thu Sep 06 13:35:07 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Thu Sep 06 13:51:28 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Thu Sep 06 13:51:56 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Thu Sep 06 13:52:04 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Thu Sep 06 13:52:54 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Thu Sep 06 13:53:31 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Thu Sep 06 13:53:45 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
[Fri Sep 07 16:59:01 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 16:59:02 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 16:59:02 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Sep 07 16:59:02 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Sep 07 16:59:02 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Fri Sep 07 18:06:11 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:06:11 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:06:11 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Sep 07 18:06:11 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Sep 07 18:06:11 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Fri Sep 07 18:17:47 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:17:48 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:17:48 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Sep 07 18:17:48 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Sep 07 18:17:48 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Fri Sep 07 18:31:37 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:31:37 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Fri Sep 07 18:31:37 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Sep 07 18:31:37 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Sep 07 18:31:37 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 Python/2.7.3 configured — resuming normal operations
[Fri Sep 07 18:32:26 2012] [error] [client 192.168.8.8] File does not exist: /var/www/favicon.ico
А после чего все это перестало работать?
Что нужно сделать, чтобы в Global AD Addres Book отображались пользователи, которые находятся в personal->group1? Пока что отображаются только те пользователи которые находятся непосредственно в папке personal.
вот так должно быть
'scope' => 'list',
Вопрос:
возможно ли заставить логиниться к ящику пользователя типа «ИвановИИ@example.org»?
Я вас даже больше скажу-гоните эту идею, с логинами пользователей на кириллице, от себя подальше, мне доводилось видеть домены с такими решениями- 2 раза и оба они закончились весьма плачевно.
Поднимаю почтовик ired и столкнулся с такой траблой.
Дошел до пункта, но не обнаружил у себя transport.
«Меняем настройки транспорта для сообщений:
postconf -e transport_maps='hash:/etc/postfix/transport'
Изменим настройки транспорта:
nano /etc/postfix/transport»
хотя остальные файлы на месте присутствуют,
скажите насколько это критично если этот пункт пропустить? или же где можно найти ещё?
набор юзеров уже в нем присуствует.Вот щас пытаюсь прикрутить его к лдапу(находиться в тюменской области).
и ещё такой нюанс… почитал инфу что если я налажу что юзера будут долго входить в почтовик, правда ли это?
А вот на счет времени входа в почту это весьма интересный вопрос и тут только тестировать, открванно говоря я не вижу необходимости разносить iredmail и AD. Смотрите по задержкам на канале+обеспечите защищенность соединения.
Долго входит в почту -если iredmail приходится опрашивать весь домен, а не определенную OU, но опятьтаки, я это все тестировал если сервера находятся внутри одной локальной сети, а вот как у вас это заработает ХЗ…
ведь если заного переинсталить и тп, навернеться же все
вопрос такой, какие права у файла? он без расширения? исполнительный ли фаил?
если можно я бы взял этот файлик с работающей машины и поглядел бы его
хочу поделиться информацией и спросить ещё кое что
1) насчет папки транспорт в каталоге postfix.
добавление новой папки ни к чему не привело, выдавало наоборот обшибки.
Выход: развернул старый бекап и посмотреть куда ссылаеться строчка в main.cf ->transport_maps.
Ссылка шла на 2 конфигурационных файла.Я подправил фаил transport_maps_domain.cf на свою конфигурацию.Перенаправление транспорта не делал.Все заработало как надо.
2) По поводу одной ошибки что здесь писали люди с тем что когда конфигурацию применяли, перставало работать страница почтовика для юзеров.Вся проблема оказалась при правке конфигурационна файла(main.inc.php), по крайней мере у меняe.Тестируйте когда добавляете аргументы туда.
3)Вопрос такой.
В админку вносили людей и группы рассылки непосредственно штатными средствами iredadmin-pro.Они как отображались так и отображаться.Подскажи как сделать так, чтобы у меня допустим перестали отображаться они, а стали отображаться люди допустим из папки персонал, которые автоматом создаються при входе в почтовик, где и можно уже будет их админить.
4)ещё один вопрос друг мой.
У меня AD построено таким образом, что идет иерархия.В корне AD создана папка допустим ООО Руки ноги(именно на русском).Дальше в паппке ООО Рукки ноги созданы подпапки наших филиалов(тоже на русском языке).И уже в этих папках филиалах расположены наши юзеры.
Переносить в папку personal путем «вырезал-вставил» непойдет.Слишком большая структура и получиться одна большая куча мусора в одной папке со всеми юзерами и группами распространения.
Возможно ли как то найти выход из этой ситуации?? Как то я сомневаюсь что iredMail поймет русский язык.
^^)))
попробую пока прикрутить базу целиком, постмроим на время выволнения и входа и локальной сети, как будет работать._)))))
вот я спамер((((
Error No. [700])
а пока что можешь подсказать про админку?
В админку вносили людей и группы рассылки непосредственно штатными средствами iredadmin-pro(ещё до привязки в лдапу).Они как отображались так и отображаться.Подскажи как сделать так, чтобы у меня допустим перестали отображаться они, а стали отображаться люди из AD которые автоматом создаються при входе в почтовик(после уже привязки в лдапу), где и можно уже будет их админить.
Пользователи создаются в AD и если им присвен правильный UPN суффикс+ нахождение в нужной OUшке, то у них появляется ящик, соответственно если пользователя удалить из OU иил сменить UPN суффикс, то доступ к ящику у него пропадает, а на почтовом сервере заводить пользователей не нужно, их данные теперь вытягиваются из AD.
спасибо, помог ты сильно.
я рад что смог буквально случайно сюда попасть и получить хорошую помошь
^^))
з.ы. лог апаче будет попозже
лог апаче
[Fri Dec 28 10.13.19[warn] RSA server certificate is a CA certificate (BasicConstraints: CA) ==TRUE !?)
[Fri Dec 28 10.13.19[warn] RSA server certificate is a CA certificate (BasicConstraints: CA) ==TRUE !?)
[Fri Dec 28 10.13.19 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+
[Fri Dec 28 10.13.19 2012] [warn] mod_wsgi: Runtime using Python/2.7.2+
[Fri Dec 28 10.13.19 2012] [notice] Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi.3.3 Python/2.7.3 configured — resuming normal operations
[Fri Dec 28 10.14.27 2012] [error] [client 89.xx.148.xx] File does not exist: /var/www/favicon.ico, referer: 178.xx.177.xx/iredadmin
вот скрин
s005.radikal.ru/i210/1212/aa/90abcd2e999d.png
Коннект к AD есть?
юзеров отображает.
когда через веб морду пишешь новое письмо в строке ищет юбзеров тока английски, по русски нивкакую
s51.radikal.ru/i132/1212/b7/4dc313b61973.png
конект в самой адресной книге
s017.radikal.ru/i413/1212/20/240ec0fa8b44.png
а вот эта ошибка 700 уже идет при поиске в адресной книге
А вот с поиском на русском проблема существует.
проверил у себя
все верно
А вот у меня есть вопросик… прошу камнями не забивать…
У меня вот такая вот ситуация… есть лес xxx.local в нём два домена qqq.xxx.local и rrr.xxx.local
когда я добавляю юсера в xxx.local всё пучком а вот в два оставшихся ((( почтарь не может их (пользователей) найти и сбрасывает письма…
я вроде сделал по 3 virtual_mailbox_maps.cf, virtual_group_maps.cf, sender_login_maps.cf для каждого домена свой…
прописал их в virtual_mail_box через запятую
но всё равно не работает…
и как можно настроить переадрисацию почты? (и можно ли сделать что бы юзеры сами её включали и отключали ?)
Как пример но что-то не получается
Но проблема в том- если iredmail начинает искать пользователей во всем домене, то на это уходит примерно 5-7 сек, вход в почту будет проходить очень долго, а если просматривать только одну OU, то все работает быстро.
File: /etc/dovecot/dovecot-ldap.conf
#dn = CN=iredmail,OU=SYS,OU=People,DC=ololo,DC=local
# НЕПРАВИЛЬНО #dn = iredmail@ololo.ru
просто не не нравится уровень доверия,
так же не мешало бы в статье немного написать про DNS записи, про DKIM,DMARC,SPF,PTR
так же удалять нет необходимости
а вот поправить dovecot и postfix нужно если конфигурация как у меня за шлюзом, нужно прописать сети, убрать .local из бан адресов, прописать представление сервера в локале как будто он глобале и многое другое )
после правильной настройки DNS dct работе с коробки кроме того что нужно дописать в
dovecot
это что бы можно было авторизоватся по старинке, для бата и прочих без настройки ssl
ssl = yes # было required
disable_plaintext_auth = no # было yes
— postfix
relayhost = 192.168.0.2 << тут можно написать адрес шлюза если почтарь находится в локальной сети а не на шлюзе
mynetworks = 127.0.0.0/8, 192.168.0.0/24, IP провадера << можно разрешить все сети вот так 0.0.0.0/0
PS неправильно написанные DNS записи требуют удаления некоторых деректив, так что если из коробки не работает на шлюзе значит DNS ненастроен )
я думаю написать потом несколько статей об этом на своем ресурсе как подниму нормальный веб сервер
) там будет блок как развернуть все нужные сервисы за минимум времени с полной интеграцией AD2003 (samba4)
в остальном спасибо за статью, очень сильно помогла натолкнув на умные мысли
значит DNS записи неправильно записаны или каких то не хватает
PTR — провайдер
MX, A, SPF, DKIM, DMARC — хостер / регистратор / dns провайдер (например yandex)
кстати появилась одна интереная мысль, сделать не интеграцию с samba а репликацию
LDAP ) если выйдет будет очень круто… тк почтовый смошет работать сам по себе и ненужно будет в домене заводить записи аля abuse, postmaster, webmaster, info которые необходимы только для информационных нужд
Как вы написали, я натолкнул вас на мыль, а это самое главное. А за шлюзом он или в одной подсети это исключительно технический момент.
Спасибо за статью, получилось настроить почти все.
Не могу разобраться с:
Прописал свой домен, но при наборе адреса выскакивает сообщение «Сервис временно не доступен».
В логе:
Все настраивал по инструкции.
И второй вопрос.
Есть домен example.org
настроена переадресация почты на ящик all@provider.com
Есть Fetchmail который бегает за почтой в этот ящик и выгребает всю почту для домена example.org раскладывая по папкам юзверей.
Старый сервер с бекэндом mysql работает хорошо, решил обновить почту и прикрутить к существующему AD, пока не ставил fetchmail, но почта локально не ходит. Postfix складывает в папку отправки и все.
В маил.лог
В Давкоте ничего нету.
Что показывает
По второму, не могу ничего сказать, не зная как работает система.
менял и на mail.domain.local
не помогло, если сделать
nslookup mail.domain.local
подозреваю что надо что от сделать ещё в AD для того что бы искал адреса.
При написании нового письма, если открыть адресную книгу, все адреса на месте, могу дважды кликнув выбрать отправителей.
Но если вводить адрес вручную (по русски или по англицки) то пишет эту ошибку.
А со вторым. пока разобраться бы с локальной доставкой, а фетчмэйл прикрутить уже просото будет.
В гугле написано что давкот не принимает почту. из-за этого и затык. Не могу найти где в давкоте включить дебаг получения почты.
Вместо
поставил
и дальше
изменил на
A
сделал так
После этого автозаполнение заработало, ищет даже по русским именам (логины у меня на англицком).
Есть вопрос. Когда я пришел в фирму, как такового внутреннего домена здесь не было. Поднял домен (пусть будет company.local) на Windows Server 2012. Завел пользователей, ввел компьютеры клиентов в домен и теперь они заходят через свои доменные учетные записи. До меня фирма зарегистрировала внешний домен для сайта (скажем, company.org) и подняла почту (например, office@company.org). Старый сервер на Kerio (в нем были созданы локальные учетки) принимал почту с внешнего ресурса и отправлял на внутренние ящики. Теперь встал вопрос о замене сервера, поскольку есть AD, то внутренние учетные записи должны быть доменными. В статье указан способ, при котором используется внешний зарегистрированный домен, но при этом имена учетных записей в обоих пространствах одинаковы. Но что делать, если имена разные? Например, есть ящик username@company.org и учетная запись в КД User.Name@company.local. Как направить почту с username@company.org на User.Name@company.local?
пожалуйста.
Типа есть:
домен local.com
мыло на mail.org
появился домен mail-1.org.
учетки для второго домена хранятся в домене локал, но с хвостиком @mail-1.org
как настроить дальше?
можно добавить еще один UPN суффикс в домен и нужным учетным записям, установить новый UPN суффикс, но проблема в том что пользователь:
user@local.com и пользователь user@mail-1.org в одном домене создать не получится т.к. логин User уже используется.
Думаю что придется завести 2 учетные записи для каждого ящика или создать группу рассылки и добавить туда нужного пользователя.
Но этот так на вскидку.
virtual_alias_maps = hash:/etc/postfix/aliases, proxy:ldap:/etc/postfix/ldap/virtual_alias_maps.cf, proxy:ldap:/etc/postfix/ldap/virtual_group_maps.cf, proxy:ldap:/etc/postfix/ldap/virtual_group_members_maps.cf, proxy:ldap:/etc/postfix/ldap/catchall_maps.cf
Но при отправке писем на адрес test@mydomen.su, вылетает ошибка Recipient address rejected: User unknown in virtual mailbox table.
Была идея править файл virtual_alias_maps.cf, но не могу сообразить как правильно написать ldap запрос.
Схема реализации у меня следующая для авторизации я использую e-mail пользователя, т.е чтобы авторизоваться на почтовике ему нужно ввести свой полный e-mail и доменный пароль, на данный момент у меня в организации стоит Exchange ( на нем же прописаны дополнительные e-mail пользователя на вкладке E-mail Adresses в AD)от него отказываюсь.
www.howtoforge.com/installing-iredmail-and-mailman-on-debian-squeeze
MailMan Centos
iRedmail mailman
Я настраивал по этой статьей Сохраняем копии всей входящей и исходящей почты в Postfix-е
После чего перегрузить postfix. В результате вся почта будет падать в указанный вами ящик. Для разбора почты по нужному критерию ( ключевым словам ), можно использовать mailarchiva.
Как его установить написано здесь Настройка mailarchiva
В результате вы получите отдельное хранилище для всей вашей почты с вложениями, с возможностью анализа переписки.
Но но добавлять лишний UPN считаю костыликом))
Есть более элегантный способ: в dovecot-ldap.conf указывать не %u, что а %n@contoso.com в Вашем случае. Таким образом из любых почтовых доменов можно авторизоваться с принудительным UPN.
Чтобы работал и постфикс нужно, соответственно, в virtual_mailbox_maps.cf и sender_login_maps.cf вместо %s ставить %u@contoso.com, что заменит почтовый домен вашим локальным. Результат всё равно берется из соответствующих полей, так что это не критично.
Я сделал именно так. У меня работает.
С этой стороны я на решение проблемы не смотрел, честно говоря я настраивал систему исходя из того что вся инфа будет храниться в Active Directory, а почтовый сервер будет требовать минимальных настроек.
Думаю, ваше решение, вполне имеет право на жизнь и окажется полезно другим.
В файле sender_login_maps.cf поле result_attribute должно быть mail
Это принципиально! Тогда при отправке будет проверяться соответствие адреса отправителя и адреса эл.почты из AD
В приведенном варианте используется логин, что не совсем верно
result_attribute= mail
зы
система пока в тестовом варианте. в продакшн пойдет после обкатки таких моментов, как общие папки, подписки и алиасы.
Есть несколько вопросов.
1. при попытки зайти по адресу mail.domain.loc/mail выходит белая страница
2. при попытки зацепится через телнет выходит такая ощибка собственно и почтового клиента я не могу настроить.
по первому пункту смотрите в настройках Acpache, куда ведет alias (mail)
второй вам ведь четко пишет что подключение с не безопасным соединением запрещены, соответственно клиента нужно настраивать на подключение по ssl/tls + проверка подлинности при отправке.
Всё хорошо, но возникли проблемы:
1.) После привязки к AD, перестал логиниться по mail.domain.com/mail с учёткой постмастера
2.) С внешки не приходит почта… Подозреваю косяк с MX записями. Создал две записи на регистраторе домена
— mail A мой_внешний_IP 3600
— @ MX 10 mail 3600
и три записи на своём днс (win2008r2) (почтарь за шлюзом):
— @ MX 5 mail.setsp.ru
— mail A внутренний_адрес_почтовика
— внутренний_адрес_почтовика PTR mail.setsp.ru
Подскажите что делать и как быть, пожалуйста
Да действительно postmaster не работает т.к. отключился openldap, а учетная запись жила там, просто создайте подобную запись в АД.
MX записи легко проверяются через nslookup
setsp.ru MX preference = 10, mail exchanger = mail.setsp.ru
mail.setsp.ru internet address = 213.79.97.162
Если я его правильно понял, то всё верно
будут ли браться контакты из ou=Users, если прописать их в конфигах?
Укажите путь в виде distinguished name и будет вам счастье.
Вот вам для ознакомления, чтобы не путаться в терминах:
msdn.microsoft.com/en-us/library/aa366101%28v=vs.85%29.aspx
Данный тип объектов предназначен исключительно для хранения других объектов, соответственно групповые политики к нему нельзя применить или вы собираетесь накатывать политику на целый домен?! Это будет тот еще геморрой.
Проще создать подразделение OU помещать учетки и другие туда, тогда будет к чему применить GPO.
ещё вопрос по поводу адресной книги — у вас в примере указан путь /usr/share/apache2/roundcubemail/config/main.inc.php, у меня в usr/share/apache2/roundcubemail/config/ нету main.inc.php. Есть config.inc.php с похожими строками. Править его?
Возникло ещё два вопроса:
1.) Как настроить переадресацию с одного ящика на другой? Точнее даже не как, а где?)
2.) Никак не могу настроить работу outlook'a с почтовиком — авторизация по imap проходит, а отправка писем не работает…
Подскажите, как быть?
2) Включите проверку подлинности при отправке
Сейчас пытаюсь заставить outlook работать с адресной книгой
Настроил все по статье, работает, но.
У меня домен volgobalt.local
Почта приходит на volgobalt.com
Везде в конфигах прописано .local, пользователи логинятся под доменными учетками как username@volgobalt.local
Как мне сделать так, чтобы они логинились под username или username@volgobalt.com и получали почту для volgobalt.com?
Заранее спасибо
postmap -q username@volgobalt.com ldap:/etc/postfix/ldap/sender_login_maps.cf
ничего не выдает, а если заменю на .local, то выдаст username@volgobalt.local
ради этого вся статья и писалась…
Но вот следующая проблема. При попытке отправить почту, я получаю ошибку
Права на файл /etc/postfix/ldap/virtual_mailbox_domains.cf vmail:vmail 700 как и все в этой папке
Файл не изменялся согласно статье.
В roundCube вижу такое сообщение
Все адреса подменены.
Ваши сообщения говорят что статью вы прочитали по диагонали или просто кусками, но не всю, целиком.
Спасибо за статью!
Думаю нужно как-то сделать так чтобы почтовик просматривал атрибуты учетной записи и использовать существующее, но не используемое поле или добавить новое, но это потребует расширения схемы, а мне этого делать совершенно не хочется.
Вопрос: можно ли как-нибудь реализовать аутентификацию dovecot к AD без пароля пользователя? Исторически сложилось так, что у 80% пользователей нет паролей.
И кстати, вот еще один вопрос:) Есть определенная группа пользователей которая не должна отправлять почту в мир. Есть методы разграничения доступными средствами, на уровне postfix и групп в AD? или как нибудь еще?
Буду рад любым подсказкам. В гуглах очень мало информации именнно по данным вопросам.
Сегдня встала задача добавить еще один домен для получения почты.
Итого:
Есть контроллер домена dc1.domain.local, почта приходит на mail.domain.com, юзеры ищутся в domain.local, все отлично.
Появляется еще один сайт для которого нужно принимать почту. Пусть будет site.com.
Вопрос: Как настроить почтовик работать в таком случае? Нужно чтобы учетки для site.com искались в домене domain.local.
Заранее благодарю!
ivanov@domain.com и ivanov1@site.com, ну тут возникают сложности с учетными записями в домене (2 пользователя, с одним логином, в одном домене не могут существовать) и это будет 2 разные учетные записи.
В общем решение выглядит не очень правильным, изначально планировалась работа с одним почтовым доменом.
после длительного перерыва снова сел за виртуальный стенд.
Домен 2008 R2, Ubuntu 14.04.2 и iRedMail-0.9.0, все взлетело с первого раза, но есть некоторые нюансы.
1.когда захожу в почтовый ящик через веб, не отображаются контакты в адресной книги.
2. С ДНС записями каша в голове. Внутренний домен city.corp, внешний почтовый домен city.com, как мне в на КД в ДНС добавить запись mail.city.com?
1- настрока в старых версиях происходила в файле usr/share/apache2/roundcubemail/config/main.inc.php сейячас не скажу, т.к. не пользуюсь, нужно смотреть
2-Через оснастку управления DNS создаете, создаете мастер-зону city.com, в ней A запись и MX запись, МХ указывает на эту А запись.
Посмотрите не спеша, там не сложно…
А по поводу конфига, usr/share/apache2/roundcubemail/config/config.inc.php
Вы думаете я знаю ответы на все вопросы?! Также читаю логи и разбираюсь, если логов мало сервис можно запустить в режиме debug и тогда точно можно узнать в чем затык.
вот что в dovecot.log
Уже даже ручками создал файл dovecot-acl с содержимым owner lrwstipek и положил его в папки которые фигурируют в логе, но результата нет.
1) не видно обращений к контроллеру домена
2) то что почта не ходит, нужно смотреть лог postfix там будет видно почему отлуп идет!
на контроллере домена открыт 389 порт на фаерволле, с почтового сервера можно подключиться с помощью telnet?
такая же ошибка возвращается когда оправляю почту от f.fedotov@tns-intec.kz
Думаю что это в iptables правила режут. Сейчас разбираюсь с ним, но честно очень плохо пока понимаю как он работает.
особенно вот эти правила
Так что пока вопрос с адресной книгой отложил.
служба запущена, но ни nmap ни netstat показывают.
запустил /usr/bin/sa-update, не знаю что он там обновил, но почта стала ходить. И наконец netstat показывает что порт 10024 слушает amavis. Спасибо за помощь!!!
[root@mail ~]# ldapsearch -x -h dc.domain.loc -p 389 -D 'cn=iredmail,dc=domain,dc=loc' -W
ldap_bind: Strong(er) authentication required (8)
additional info: BindSimple: Transport encryption required.
открываем CMD, там пишем gpedit.msc
переходим в раздел:
нас интересуют строки:
Domain Controller: LDAP Server signing requirements переводим в значение None
Network security: LDAP Client signing requirements переводим в значение Negotiate
по поводу:
additional info: BindSimple: Transport encryption required.
В конфигах, где прописывается подключение к контроллеру домена
поменяйте на
По идее, все должно работать.
У меня контроллер на samba поднят. Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options как это в ней поправить?
start_tls = yes посмотрите конфиги Postfix, в статье, там и надо поправить.
Странно но у меня тоже smtp 451 ошибку ловит, причем и на отправку и на получение. Но только от чужих доменов, у своих всё хорошо. Всю конфу перерыл понять не могу. Главное понял точно такой же сервер, но с mysql, вместо openldap и всё пошло
строка
меняем на нужный UPN и все шуршит как надо.