avatar 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) в доменной сети предприятия, которые они используют для входа на рабочие станции.
Вот так все просто!

Чтобы не было путаницы, еще раз напоминаю
Если ваш почтовый сервер и контроллер домена находятся в разных пространствах имен, например: Контроллер домена имеет имя 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 Домены и доверие, и переходим в свойства, как указано на скриншоте:
Active Directory Domains and Trusts (Windows Server 2012)

Нам необходимо добавить UPN суффикс-example.org как на скриншоте:
Active Directory Domains and Trusts+UPN suffix (Windows Server 2012)

Заводим пользователей на контроллере домена
Нам необходимо создать пользователя с именем 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, как на скриншоте:
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 комментариев

avatar
Artful БОЛЬШОЕ спасибо тебе за твой труд и замечательные статьи которые на самом деле помогаю
я если честно уже потерял надежду найти решение
но нет оно нашлось = )
завтра буду пробовать…
avatar
Пожалуйста, пользуйтесь…
На самом деле, у меня выдался свободный день и я смог сесть и разобраться.
avatar
Artful а если необходимо будет удалить почтовый ящик то достаточно просто удалить учетную запись с AD или нежно удалять вручную
avatar
Удалять нужно с почтового сервера вручную.
Если требуется перекрыть доступ пользователю, то достаточно в настройках учетной записи поменять UPN суффикс с example.org на contoso.com.
avatar
вот у меня несколько виртуальных доменных имен для почтового сервера
т.е. мне нужно только добавить upn этих имен в AD
или необходимо их еще добавить и в iredmail админку…
avatar
нет UPN в этой ситуации не поможет, если выбрать основной, то по другим зайти не смогут!
если в sAMAccountName указано username@example.org то зайти по имени username@contoso.com с почтового сервера не получится!
Не думаю что тут возможно реализовать схему с множеством почтовых доменов авторизацией в AD- только 1, а вот если нужно много, то штатными средствами iredmail, без AD.
avatar
жаль
а если под каждые виртуальное доменное имя поднимать отдельно машину
такое в принципе может быть возможно или безнадежно…
avatar
уточняю
для определенного пользователя в AD только один почтовый ящик
например
personal@qqq.com
для другого
info@aaa.ru

в AD соответсвенно добавляю несколько upn записей…
avatar
там фокус в том что при авторизации dovecot выполняет запрос к AD вида username@example.org и если в sAMAccountName указано аналогичное значение, то авторизация проходит, если написано contoso.com соответственно возвращается что пользователя с таким значением в sAMAccountName не найдено.
Думаю что при текущем раскладе, необходимо заводить несколько доменов на почтовом сервере и несколько учетных записей с разными значениями в sAMAccountName, но проблема в том что не возможно будет создать 2 ящика с именем username@example.org и username@aaa.ru т.к. логин username уже в использовании и AD это не пропустит хоть такой UPN указывайте!
Так что, думаю, что тут ваша затея провалится…
avatar
Artful я только что проверил свою идею
по поводу того что можно использовать несколько виртуальных доменных имен для почтового сервера
оказалось что для того чтобы это реализовать достаточно просто добавить UPN запись

И еще раз хочу поблагодарить за оперативное решение данное проблемы

СПАСИБО = )
avatar
передомной в принципе не стоит задача чтобы была возможность создавать несколько почтовиков с одним доменным именем
а ты сам находишь решения (путем проб) или с помощь литературы и знакомых?
avatar
не подскажешь какую нибудь полезную литературу чтобы повысить свой уровень знаний относительно nix систем
если нетрудно
avatar
Думаю что только форумы и сайты с документацией разработчиков, все так быстро меняется, что пока книгу успевают издать, она уже частично устарела. Кончено есть, базовые знания, но все это приходит со временем.
А решения нахожу сам или с помощью гуггла ;) но по поводу данной статьи, то только запуская скрипты в режиме дебага+просмотр лог файлов. Сам поиск решения занял мин 40 (оказалось что- ларчик открывался просто), а вот допиливание статьи еще часа 3-4…
avatar
У меня возникла такая проблема, после этих настроек web интерфейс сдох, скорее так, https://(IP address)/mail не открывается, пустая страница и все, работает только https://(IP address)/iredadmin. И я не могу понять где я напортачил, хотя почтовые ящики через telnet (telnet localhost 110) работают. Где искать ошибку?
avatar
Вопрос решился следующим образом, в настройках где подключаем адресную книгу я закоментировал эти две строки
'base_dn' => 'ou=personal,dc=contoso,dc=com',
'bind_dn' => 'cn=iredmail,dc=contoso,dc=com',
и вернул прежние и все заработало. Но я продолжаю не понимать в чем все же проблема ?!
avatar
думаю что имеет смысл смотреть логи apache, конкретно error.log
avatar
здрасти, такая ситуация: пришёл работать в больницу в которой было компов 60, поднят домен но пользователи типа контора, бухгалтерия, отделение 1,2,3 и т.д. всё было прекрасно пока не расширили сеть ищё на 260 машин и купили имя. соответственно нада почту. подняли IredMail создали ящики, у «выбранных» людей всё настроили. работало прекрасно, но как бывает абонентов стали докидывать встал вопрос о адресной книге. я так понимаю чтоб внедрить ваш метод мне придётся создавать юзеров и перенастраивать оутлуки, поднимать заново IredMail, потому как существующие придётся убирать так?
avatar
Что-то у вас каша в голове, все смешали AD, iRedMail и Outlook.
iRedMail -вообще фиолетово, она будет искать пользователей там где вы ей скажите, а будет это openLDAP или LDAP, да хоть AD LDS -не важно!
Соответственно адресная книга будет работать оттуда где хранятся все пользователи…
Количество машин в локальной сети не имеет значение, главное чтобы сервер тянул нагрузку, остальное -уже технические моменты.
Outlook- в принципе можно совсем убрать, а пользователей заставить работать через web интерфейс, тогда и перенастраивать не придется( добавив, через групповые политики, в избранное адрес вашего почтовика), если почтовый сервер находится в локальной сети с пользователями, то со скоростью подключения проблем не будет, думаю что локальных сетей со скоростью менее 100 Мбит, наверное нигде и не осталось, а если сеть новая, то вообще 1 Гбит.
Так что мой ответ- просто перенастроить и все… Предварительно все забэкапить!!!
avatar
А как все бэкапить, есть простое решение:
howitmake.ru/blog/ubuntu/54.html#comment986
avatar
Доброе время суток!
Огромное спасибо за полезную статью!

Вот только у меня вопрос: почему не могу зайти на почту через web интерфейс (пишет «неудачная попытка») под логином и паролем пользователя домена. запись «personal» вроде везде убрал… Почему не входит?
avatar
Personal — подразделение в котором находятся учетные записи пользователей.
Попробуйте закопипастить как есть, до полного понимания как это все работает, а уже потом делать что-то свое. Я не знаю какая у вас причина, сморите логи dovecot.
avatar
копи пастил — всё работает! Теперь хочу чтобы можно было заходить с других учетных записей не в папке «personal»
avatar
Если iredmail будет просматривать все дерево каталога LDAP то на авторизацию будет уходить много времени, проще держать необходимые учетки в одной OUшке, так процесс входи в почту проходит быстрее…
avatar
Я понимаю, просто я пытаюсь прикрутить уже готовый домен к iredmail… На предприятии более 300 компов, и что то менять наверное не стоит
avatar
Причем тут количество компов и подключение к почтовому ящику. iRedMail плевать на рабочие станции, ей нужны только учетные записи пользователей.
А в чем проблема, перенести в пределах одного домена учетные данные пользователей в другое подразделение-никаких сложностей, вырезать вставить, права доступа не потеряется, членство в группах тоже (SID не потеряется).
Смотрите логи dovecot, там все написано!
avatar
Заведите тестовое подразделение и в нем тестовую учетку и тренируйтесь на ней, пока все не заработает, после этого в это подразделение можно перенести существующих пользователей заодно заменив им UPN суффикс…
Работы на 5 минут максимум!
avatar
А как можно сделать чтоб два почтовых имени стояло на одной машине, скажем example1.org и example2.org?
avatar
Вот это интересный вопрос, думаю что никак.
avatar
Saqo11 июля 2012, 13:50
У меня возникла такая проблема, после этих настроек web интерфейс сдох, скорее так, https://(IP address)/mail не открывается, пустая страница и все, работает только https://(IP address)/iredadmin. И я не могу понять где я напортачил, хотя почтовые ящики через telnet (telnet localhost 110) работают. Где искать ошибку?


У меня тоже такое случилось! Только, сначало лазил на веб интерфейс через ip/mail/ — сдох! потом через mail.domen.ru/mail/ — и он тоже сдох! И самое интересное сдыхают они когда пытаюсь зайти под пользователями которые не в папке personal.
avatar
Вот error.log apache2:

[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
avatar
Ну нужно проверять настройки виртуальных хостов, больше негде, разве что через iptables порты зарезали.
А после чего все это перестало работать?
avatar
Нашел решение! Оказывается просто нужно было дать доступ на «squd»е.
avatar
Снова проблема!
Что нужно сделать, чтобы в Global AD Addres Book отображались пользователи, которые находятся в personal->group1? Пока что отображаются только те пользователи которые находятся непосредственно в папке personal.
avatar
Вообще-то отображаются все пользователи, которые находятся внутри подразделения.
avatar
У меня отображаются только те, которые находятся непосредственно в папке personal. Пользователи которые в personal -> group1 -> urists не отображаются. Почему?
avatar
У меня все подтягивает, пока не готов ответить.
avatar
Вот самое интересное, что когда из любого каталога в personal перемещаешь пользователя, то он сразу отображается в Global AD adress book…
avatar
А настройки глобальной адресной книги переносили 1 в 1 или что-то допиливали?
avatar
1 в 1… Ну естественно названия свои вписывал…
avatar
вот и у меня такая же проблема.если в подразделение personal создать подразделение IT то в Global AD пользователи из IT не отображаются
avatar
чтобы было видно все подразделения в global adress book нужно в параметре 'scope' вместо list поставить sub
вот так должно быть
'scope' => 'list',
avatar
Спасибо, исправил.
avatar
Добрый день.
Вопрос:
возможно ли заставить логиниться к ящику пользователя типа «ИвановИИ@example.org»?
avatar
нет.
Я вас даже больше скажу-гоните эту идею, с логинами пользователей на кириллице, от себя подальше, мне доводилось видеть домены с такими решениями- 2 раза и оба они закончились весьма плачевно.
avatar
День добрый уважаемые.
Поднимаю почтовик ired и столкнулся с такой траблой.
Дошел до пункта, но не обнаружил у себя transport.
«Меняем настройки транспорта для сообщений:
postconf -e transport_maps='hash:/etc/postfix/transport'
Изменим настройки транспорта:
nano /etc/postfix/transport»
хотя остальные файлы на месте присутствуют,
скажите насколько это критично если этот пункт пропустить? или же где можно найти ещё?
avatar
Забыл доавить, что почтовик(находиться в дата центре в германии) уже полностью функционирует и в рабочем состоянии
набор юзеров уже в нем присуствует.Вот щас пытаюсь прикрутить его к лдапу(находиться в тюменской области).
и ещё такой нюанс… почитал инфу что если я налажу что юзера будут долго входить в почтовик, правда ли это?
avatar
трансопрт должен быть.
А вот на счет времени входа в почту это весьма интересный вопрос и тут только тестировать, открванно говоря я не вижу необходимости разносить iredmail и AD. Смотрите по задержкам на канале+обеспечите защищенность соединения.
Долго входит в почту -если iredmail приходится опрашивать весь домен, а не определенную OU, но опятьтаки, я это все тестировал если сервера находятся внутри одной локальной сети, а вот как у вас это заработает ХЗ…
avatar
есть варианты как до транспорта добраться?
ведь если заного переинсталить и тп, навернеться же все
avatar
он должен находиться там где я написал, а если переставлять то возможно система и не заведется потом.
avatar
попробую вручную добавить и пропиат пути к нему
вопрос такой, какие права у файла? он без расширения? исполнительный ли фаил?
если можно я бы взял этот файлик с работающей машины и поглядел бы его
avatar
сам создай файл с обычными правами и все заработает! только не забудь его хешировать.
avatar
привет сного.
хочу поделиться информацией и спросить ещё кое что
1) насчет папки транспорт в каталоге postfix.
добавление новой папки ни к чему не привело, выдавало наоборот обшибки.
Выход: развернул старый бекап и посмотреть куда ссылаеться строчка в main.cf ->transport_maps.
Ссылка шла на 2 конфигурационных файла.Я подправил фаил transport_maps_domain.cf на свою конфигурацию.Перенаправление транспорта не делал.Все заработало как надо.
2) По поводу одной ошибки что здесь писали люди с тем что когда конфигурацию применяли, перставало работать страница почтовика для юзеров.Вся проблема оказалась при правке конфигурационна файла(main.inc.php), по крайней мере у меняe.Тестируйте когда добавляете аргументы туда.
3)Вопрос такой.
В админку вносили людей и группы рассылки непосредственно штатными средствами iredadmin-pro.Они как отображались так и отображаться.Подскажи как сделать так, чтобы у меня допустим перестали отображаться они, а стали отображаться люди допустим из папки персонал, которые автоматом создаються при входе в почтовик, где и можно уже будет их админить.
4)ещё один вопрос друг мой.

У меня AD построено таким образом, что идет иерархия.В корне AD создана папка допустим ООО Руки ноги(именно на русском).Дальше в паппке ООО Рукки ноги созданы подпапки наших филиалов(тоже на русском языке).И уже в этих папках филиалах расположены наши юзеры.
Переносить в папку personal путем «вырезал-вставил» непойдет.Слишком большая структура и получиться одна большая куча мусора в одной папке со всеми юзерами и группами распространения.
Возможно ли как то найти выход из этой ситуации?? Как то я сомневаюсь что iredMail поймет русский язык.
avatar
забыл поблагодарить тебя друг мой за мануал
^^)))
avatar
вопрос 4 снимаеться___)))
попробую пока прикрутить базу целиком, постмроим на время выволнения и входа и локальной сети, как будет работать._)))))
avatar
ещё одна проблема выискалась, при поиске допустим по фамилии в глоабльной книге в веб интерфейсе--> выводит информацию которую надо, но вот при выделении человека српваой строны выводит надпись (SERVICE CURRENTLY NOT AVAILABLE! Error No. [700]) и отправить ему письмо неполучаеться, выводит такую же ошибку.

вот я спамер((((

Error No. [700])
avatar
Что в логах?
avatar
как будет время, выложу

а пока что можешь подсказать про админку?
В админку вносили людей и группы рассылки непосредственно штатными средствами iredadmin-pro(ещё до привязки в лдапу).Они как отображались так и отображаться.Подскажи как сделать так, чтобы у меня допустим перестали отображаться они, а стали отображаться люди из AD которые автоматом создаються при входе в почтовик(после уже привязки в лдапу), где и можно уже будет их админить.
avatar
Админка? как таковая не нужна, все управление идет через AD и я об этом писал.
Пользователи создаются в AD и если им присвен правильный UPN суффикс+ нахождение в нужной OUшке, то у них появляется ящик, соответственно если пользователя удалить из OU иил сменить UPN суффикс, то доступ к ящику у него пропадает, а на почтовом сервере заводить пользователей не нужно, их данные теперь вытягиваются из AD.
avatar
как то я не подумал с этой точки зрения…
спасибо, помог ты сильно.

я рад что смог буквально случайно сюда попасть и получить хорошую помошь

^^))

з.ы. лог апаче будет попозже
avatar
извини что долго, работы навалилось

лог апаче
[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
avatar
Маловато инфы.
Коннект к AD есть?
avatar
конект есть, подцепляеться хорошо
юзеров отображает.
когда через веб морду пишешь новое письмо в строке ищет юбзеров тока английски, по русски нивкакую
s51.radikal.ru/i132/1212/b7/4dc313b61973.png

конект в самой адресной книге
s017.radikal.ru/i413/1212/20/240ec0fa8b44.png

а вот эта ошибка 700 уже идет при поиске в адресной книге
avatar
Честно говоря, по 700й ошибке я ничего не нашел
А вот с поиском на русском проблема существует.
avatar
Заработало?
avatar
не, я лишь синтаксис проверил. все верно правильно… хз где искать траблу
avatar
Автор, статья просто чума!!! Сделал всё по ней всё работает… ждём подобных!!!
А вот у меня есть вопросик… прошу камнями не забивать…
У меня вот такая вот ситуация… есть лес 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 через запятую

но всё равно не работает…

и как можно настроить переадрисацию почты? (и можно ли сделать что бы юзеры сами её включали и отключали ?)
avatar
Там не в переадресации дело, а в поиске внутри каталога LDAP, почтовик просматривает домен qqq.xxx.local, а о существовании домена rrr.xxx.local он понятия не имеет, а весь лес и схему почтовик не просматривает, потому что не умеет.
avatar
А можно как-то сделать что бы просматривался сначала один домен если там нет то второй и потом третий..?
avatar
интересный вопрос, но думаю просто так, с наскока, решить не получится
avatar
А давай те попробуем так сказать коллективно ) я вот смотрел что-то из серии postfix multiple ldap или postfix и лес… Но что-то не догнал.…
avatar
www.zarafa.com/wiki/index.php/Configuring_Multiple_AD
Как пример но что-то не получается
avatar
Я только за!
Но проблема в том- если iredmail начинает искать пользователей во всем домене, то на это уходит примерно 5-7 сек, вход в почту будет проходить очень долго, а если просматривать только одну OU, то все работает быстро.
avatar
Хм… У меня он ищет вот где dc=xxx,dc=local правда и пользователей не много 140 заходят влёт… Ну тоесть 1-2 секунды через roundcube.
avatar
iRedMail 0.8.4 не мог залогинится тк была ошибка, у себя тоже исправте

File: /etc/dovecot/dovecot-ldap.conf

#dn = CN=iredmail,OU=SYS,OU=People,DC=ololo,DC=local
# НЕПРАВИЛЬНО #dn = iredmail@ololo.ru
avatar
Только после проверки!
avatar
еще как сделать что бы сертификаты не просил?
avatar
какие сертификаты и кто у вас просит?
avatar
да никакие, уточнил они платные а от бесплатных толку нет )
просто не не нравится уровень доверия,
так же не мешало бы в статье немного написать про DNS записи, про DKIM,DMARC,SPF,PTR

так же удалять
check_policy_service inet:127.0.0.1:7777
нет необходимости
а вот поправить 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)

в остальном спасибо за статью, очень сильно помогла натолкнув на умные мысли
avatar
PS неправильно написанные DNS записи требуют удаления некоторых деректив, так что если из коробки не работает на шлюзе,
значит DNS записи неправильно записаны или каких то не хватает
PTR — провайдер
MX, A, SPF, DKIM, DMARC — хостер / регистратор / dns провайдер (например yandex)
avatar
вот так у меня выглядит сеть


кстати появилась одна интереная мысль, сделать не интеграцию с samba а репликацию
LDAP ) если выйдет будет очень круто… тк почтовый смошет работать сам по себе и ненужно будет в домене заводить записи аля abuse, postmaster, webmaster, info которые необходимы только для информационных нужд
avatar
Откровенно говоря, предугадать всего многообразия возможных конфигураций, не реально.
Как вы написали, я натолкнул вас на мыль, а это самое главное. А за шлюзом он или в одной подсети это исключительно технический момент.
avatar
Доброго времени суток.
Спасибо за статью, получилось настроить почти все.
Не могу разобраться с:

$rcmail_config['autocomplete_addressbooks'] = array("sql", "mail.example.org");


Прописал свой домен, но при наборе адреса выскакивает сообщение «Сервис временно не доступен».
В логе:

PHP Error: Addressbook source (mail.example.org) not found!


Все настраивал по инструкции.
И второй вопрос.
Есть домен example.org
настроена переадресация почты на ящик all@provider.com
Есть Fetchmail который бегает за почтой в этот ящик и выгребает всю почту для домена example.org раскладывая по папкам юзверей.
Старый сервер с бекэндом mysql работает хорошо, решил обновить почту и прикрутить к существующему AD, пока не ставил fetchmail, но почта локально не ходит. Postfix складывает в папку отправки и все.
В маил.лог

Apr 16 09:39:49 mail postfix/qmgr[51953]: 7E2BB301096: from=<zazy@example.org>, size=1419, nrcpt=1 (queue active)
Apr 16 09:39:49 mail postfix/local[52485]: 7E2BB301096: to=<zazy@example.org>, relay=local, delay=2312, delays=2312/0.09/0/0.17, dsn=4.3.0, status=deferred (temporary failure)


В Давкоте ничего нету.
avatar
По первому вопросу.
Что показывает
nslookup mail.example.org


По второму, не могу ничего сказать, не зная как работает система.
avatar
показывает адрес ящика на провайдере.
менял и на mail.domain.local
не помогло, если сделать
nslookup mail.domain.local

Server:         192.168.1.243 --это мой dc
Address:        192.168.1.243#53

Name:   mail.domain.local
Address: 192.168.1.50


подозреваю что надо что от сделать ещё в AD для того что бы искал адреса.
При написании нового письма, если открыть адресную книгу, все адреса на месте, могу дважды кликнув выбрать отправителей.
Но если вводить адрес вручную (по русски или по англицки) то пишет эту ошибку.

А со вторым. пока разобраться бы с локальной доставкой, а фетчмэйл прикрутить уже просото будет.
В гугле написано что давкот не принимает почту. из-за этого и затык. Не могу найти где в давкоте включить дебаг получения почты.
avatar
С проблемой автозаполнения разобрался.
Вместо
$rcmail_config['autocomplete_addressbooks'] = array("sql", "mail.domain.local");

поставил
$rcmail_config['autocomplete_addressbooks'] = array("sql", "domain.local");

и дальше
$rcmail_config['ldap_public']["mail.domain.local"] = array(

изменил на
$rcmail_config['ldap_public']["domain.local"] = array(

A
'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);

сделал так
'search_fields' => array('mail', 'cn', 'sAMAccountName', 'displayname', 'sn', 'givenName'),
    'name_field'    => 'cn',
    'email_field'   => 'mail',
    'surname_field' => 'sn',
    'firstname_field' => 'givenName',
    'sort'          => 'cn',
    'scope'         => 'sub',
    'filter'        => "(mail=*@*)",
    'fuzzy_search'  => true

После этого автозаполнение заработало, ищет даже по русским именам (логины у меня на англицком).
avatar
Здравствуйте. Очень хорошая статья.
Есть вопрос. Когда я пришел в фирму, как такового внутреннего домена здесь не было. Поднял домен (пусть будет 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?
avatar
Средстваим IredMail, в лоб, так не сделать, придётся городить или что-то свое, или использовать другой софт.
avatar
Решил попробовать выкрутиться средствами нашего хостинга. Создал синонимы имен учетных записей. Например, username@company.org будет тем же самым, что и User.Name@company.org. Посмотрим, что получится.:) Ещё раз спасибо за статью.
avatar
тоже вариант!
пожалуйста.
avatar
Доброго времени суток. Появилась надобность добавить почту для ещё одного домена.
Типа есть:
домен local.com
мыло на mail.org
появился домен mail-1.org.
учетки для второго домена хранятся в домене локал, но с хвостиком @mail-1.org
как настроить дальше?
avatar
Интересный вопрос.
можно добавить еще один UPN суффикс в домен и нужным учетным записям, установить новый UPN суффикс, но проблема в том что пользователь:
user@local.com и пользователь user@mail-1.org в одном домене создать не получится т.к. логин User уже используется.
Думаю что придется завести 2 учетные записи для каждого ящика или создать группу рассылки и добавить туда нужного пользователя.
Но этот так на вскидку.
avatar
Хорошая полезная статья! Еще бы к этой системе прикрутить общую адресную книгу с помощью openldap, чтоб пользователи сами могли добавлять контакты
avatar
Автор, спасибо за статью, все настроил практически сразу, но есть один вопрос: Как настроить альянсы, т.е у меня ест несколько псевдонимов на один адрес, пробовал настраивать средствами postfix путем правки файла /etc/postfix/aliases путем добавления test: user1@mydomen.su (если прописать test@mydomen.su: user1@mydomen.su вылетает ошибка ругается на синтаксис), затем выполнил команду postalias /etc/postfix/aliases, также дописал в /etc/postfix/main.cf в поле
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)от него отказываюсь.
avatar
Посмотрите в направлении mailman.
www.howtoforge.com/installing-iredmail-and-mailman-on-debian-squeeze
avatar
Спасибо… попробую…
avatar
Если кому интересно, настраивал я Mailman по этим статьям, поскольку ставил на CentOs
MailMan Centos
iRedmail mailman
avatar
Еще одно дополнение, если Вы хотите чтобы вся почта, как входящая так и исходящая, падала в ящик определенного пользователя ( например sbmail@test.su, то необходимо в файл конфигурации postfix, в main.cf в конце дописать always_bcc = sbmail@test.su.
Я настраивал по этой статьей Сохраняем копии всей входящей и исходящей почты в Postfix-е
После чего перегрузить postfix. В результате вся почта будет падать в указанный вами ящик. Для разбора почты по нужному критерию ( ключевым словам ), можно использовать mailarchiva.
Как его установить написано здесь Настройка mailarchiva
В результате вы получите отдельное хранилище для всей вашей почты с вложениями, с возможностью анализа переписки.
avatar
Хороший мануальчик, спасибо. Воспользовался.
Но но добавлять лишний UPN считаю костыликом))
Есть более элегантный способ: в dovecot-ldap.conf указывать не %u, что а %n@contoso.com в Вашем случае. Таким образом из любых почтовых доменов можно авторизоваться с принудительным UPN.
Чтобы работал и постфикс нужно, соответственно, в virtual_mailbox_maps.cf и sender_login_maps.cf вместо %s ставить %u@contoso.com, что заменит почтовый домен вашим локальным. Результат всё равно берется из соответствующих полей, так что это не критично.
Я сделал именно так. У меня работает.
avatar
Не плохо!!!
С этой стороны я на решение проблемы не смотрел, честно говоря я настраивал систему исходя из того что вся инфа будет храниться в Active Directory, а почтовый сервер будет требовать минимальных настроек.
Думаю, ваше решение, вполне имеет право на жизнь и окажется полезно другим.
avatar
Небольшая поправка, чуть не забыл))
В файле sender_login_maps.cf поле result_attribute должно быть mail
Это принципиально! Тогда при отправке будет проверяться соответствие адреса отправителя и адреса эл.почты из AD
В приведенном варианте используется логин, что не совсем верно
avatar
Кхм… ))
result_attribute= mail

зы
система пока в тестовом варианте. в продакшн пойдет после обкатки таких моментов, как общие папки, подписки и алиасы.
avatar
Отличная статья. Спасибо!!!
Есть несколько вопросов.
1. при попытки зайти по адресу mail.domain.loc/mail выходит белая страница
2. при попытки зацепится через телнет выходит такая ощибка
-ERR Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
собственно и почтового клиента я не могу настроить.
avatar
здравствуйте.
по первому пункту смотрите в настройках Acpache, куда ведет alias (mail)
второй вам ведь четко пишет что подключение с не безопасным соединением запрещены, соответственно клиента нужно настраивать на подключение по ssl/tls + проверка подлинности при отправке.
avatar
Спасибо за статью!
Всё хорошо, но возникли проблемы:
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

Подскажите что делать и как быть, пожалуйста
avatar
Здравствуйте.
Да действительно postmaster не работает т.к. отключился openldap, а учетная запись жила там, просто создайте подобную запись в АД.
MX записи легко проверяются через nslookup
nslookup -type=mx domain.tld
avatar
Ответ по nslookup'у
setsp.ru MX preference = 10, mail exchanger = mail.setsp.ru

mail.setsp.ru internet address = 213.79.97.162

Если я его правильно понял, то всё верно
avatar
Ну если IP адрес ваш и 25й порт доступен из интернет, то почта должна ходить
avatar
Спасибо! Я, балда, порт на шлюзе не открыл.
avatar
ларчик отрывался просто… ;)
avatar
Ещё вопрос:
будут ли браться контакты из ou=Users, если прописать их в конфигах?
avatar
Да там ведь есть пункт по редактированию адресной книги
avatar
а заставить его забирать данные не из подразделения, а из контейнера возможно?
avatar
что именно вы подразумеваете под контейнором-Organizational Unit?
avatar
если я правильно понимаю, то подразделение pensonal будет обозначаться ou=personal, а контейнер Users будет cn=Users. Хочется, чтобы данные о пользователях брались из контейнера Users (в AD идёт изначально)
avatar
Ах вы об этом…
Укажите путь в виде distinguished name и будет вам счастье.
Вот вам для ознакомления, чтобы не путаться в терминах:
msdn.microsoft.com/en-us/library/aa366101%28v=vs.85%29.aspx
avatar
ну и напоследок.
Данный тип объектов предназначен исключительно для хранения других объектов, соответственно групповые политики к нему нельзя применить или вы собираетесь накатывать политику на целый домен?! Это будет тот еще геморрой.
Проще создать подразделение OU помещать учетки и другие туда, тогда будет к чему применить GPO.
avatar
так и сделал)
ещё вопрос по поводу адресной книги — у вас в примере указан путь /usr/share/apache2/roundcubemail/config/main.inc.php, у меня в usr/share/apache2/roundcubemail/config/ нету main.inc.php. Есть config.inc.php с похожими строками. Править его?
avatar
Ну вы посмотрите когда статья написана, возможно в новых версиях что-то и поменялось.
avatar
да, так и есть. Адресная книга работает.
Возникло ещё два вопроса:
1.) Как настроить переадресацию с одного ящика на другой? Точнее даже не как, а где?)
2.) Никак не могу настроить работу outlook'a с почтовиком — авторизация по imap проходит, а отправка писем не работает…
Подскажите, как быть?
avatar
1) Это называется транспорт вот пример настройки forum.altlinux.org/index.php?topic=8131.0
2) Включите проверку подлинности при отправке
avatar
Спасибо. С алисами разборку временно отложил. Почту настроил — трудно было догадаться, что smtp через 25 порт ходит (самосарказм).
Сейчас пытаюсь заставить outlook работать с адресной книгой
avatar
Приветствую. ПРоблема следующая:
Настроил все по статье, работает, но.
У меня домен volgobalt.local
Почта приходит на volgobalt.com
Везде в конфигах прописано .local, пользователи логинятся под доменными учетками как username@volgobalt.local
Как мне сделать так, чтобы они логинились под username или username@volgobalt.com и получали почту для volgobalt.com?

Заранее спасибо
avatar
Так об этом статья и повествует…
avatar
Странно почему не получилось сделать… ткните носом, где что посмотреть :)
postmap -q username@volgobalt.com ldap:/etc/postfix/ldap/sender_login_maps.cf
ничего не выдает, а если заменю на .local, то выдаст username@volgobalt.local
avatar
Может быть из-за того, что я в домене не прописываю для пользователей почту?
avatar
Вот тут вся мякотка…


ради этого вся статья и писалась…
avatar
Это настроил, заработал вход под нужным доменом. Спасибо :)
Но вот следующая проблема. При попытке отправить почту, я получаю ошибку
Jun 30 22:35:11 mail postfix/smtpd[2843]: connect from localhost[127.0.0.1]
Jun 30 22:35:11 mail postfix/proxymap[1823]: warning: ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf is unavailable. open /etc/postfix/ldap/virtual_mailbox_domains.cf: Permission denied
Jun 30 22:35:11 mail postfix/trivial-rewrite[1911]: warning: proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf: table lookup problem
Jun 30 22:35:11 mail postfix/trivial-rewrite[1911]: warning: virtual_mailbox_domains lookup failure
Jun 30 22:35:11 mail postfix/proxymap[1823]: warning: ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf is unavailable. open /etc/postfix/ldap/virtual_mailbox_domains.cf: Permission denied
Jun 30 22:35:11 mail postfix/trivial-rewrite[1911]: warning: proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf: table lookup problem
Jun 30 22:35:11 mail postfix/trivial-rewrite[1911]: warning: virtual_mailbox_domains lookup failure
Jun 30 22:35:11 mail postfix/smtpd[2843]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 451 4.3.0 <Email@volgobalt.com>: Temporary lookup failure; from=<Email@volgobalt.com> to=<Мой Email> proto=ESMTP helo=<Внешний IP>
Jun 30 22:35:11 mail roundcube: SMTP Error: SMTP error: Failed to add recipient 'Мой Email' in /usr/share/apache2/roundcubemail-1.0.1/program/lib/Roundcube/rcube.php on line 1504 (POST /mail/?_task=mail&_unlock=loading1404153310555&_lang=ru?_task=mail&_action=send)
Jun 30 22:35:11 mail postfix/smtpd[2843]: disconnect from localhost[127.0.0.1]


Права на файл /etc/postfix/ldap/virtual_mailbox_domains.cf vmail:vmail 700 как и все в этой папке
Файл не изменялся согласно статье.
В roundCube вижу такое сообщение
SMTP ошибка (451): Невозможно добавить получателя "Мой Email" (4.3.0 <Email@volgobalt.com>: Temporary lookup failure)


Все адреса подменены.
avatar
Права на файл /etc/postfix/ldap/virtual_mailbox_domains.cf vmail:vmail 700 как и все в этой папке
Файл не изменялся согласно статье.
А должен был! Где почтовому серверу искать данные, в астрале?!

Ваши сообщения говорят что статью вы прочитали по диагонали или просто кусками, но не всю, целиком.
avatar
Прошу прощения за беспокойство :) Как говорится «сам дурак». Пытался отправить письмо на адрес внутри домена, для которого не поменял домен с .local на .com.
Спасибо за статью!
avatar
Вы решительный, но не внимательный… ;)
avatar
Ман здоровский. У меня почти все робит. Есть вопрос. Как сделать так, что б квоты брались из AD и передавались на проверку dovecot?
avatar
Откровенно говоря, я даже на форуме разработчиков не смог найти ответ на этот вопрос. По этому использовал через настройку для всех пользователей.
Думаю нужно как-то сделать так чтобы почтовик просматривал атрибуты учетной записи и использовать существующее, но не используемое поле или добавить новое, но это потребует расширения схемы, а мне этого делать совершенно не хочется.
avatar
А если, к примеру, создать в AD 2 группы- одну назвать 500 вторую 1000, то как нибудь можно используя атрибут вхождения в ту или иную группу выделять соответственно необходимый объем? Если можно то буду рад ссылкам, мануалам.
Вопрос: можно ли как-нибудь реализовать аутентификацию dovecot к AD без пароля пользователя? Исторически сложилось так, что у 80% пользователей нет паролей.
И кстати, вот еще один вопрос:) Есть определенная группа пользователей которая не должна отправлять почту в мир. Есть методы разграничения доступными средствами, на уровне postfix и групп в AD? или как нибудь еще?
Буду рад любым подсказкам. В гуглах очень мало информации именнно по данным вопросам.
avatar
ничего не нашел по данному вопросу у разработчиков, так что, не смогу вам помочь
avatar
Приветствую еще раз! :)
Сегдня встала задача добавить еще один домен для получения почты.
Итого:
Есть контроллер домена dc1.domain.local, почта приходит на mail.domain.com, юзеры ищутся в domain.local, все отлично.
Появляется еще один сайт для которого нужно принимать почту. Пусть будет site.com.
Вопрос: Как настроить почтовик работать в таком случае? Нужно чтобы учетки для site.com искались в домене domain.local.
Заранее благодарю!
avatar
В таком случае необходимо добавить еще один UPN суффикс, но тогда придется создавать другие учетные записи, пример (городит второй домен в лесу с совсем не предлагаю)
ivanov@domain.com и ivanov1@site.com, ну тут возникают сложности с учетными записями в домене (2 пользователя, с одним логином, в одном домене не могут существовать) и это будет 2 разные учетные записи.
В общем решение выглядит не очень правильным, изначально планировалась работа с одним почтовым доменом.
avatar
Доброе время суток!!!
после длительного перерыва снова сел за виртуальный стенд.
Домен 2008 R2, Ubuntu 14.04.2 и iRedMail-0.9.0, все взлетело с первого раза, но есть некоторые нюансы.
1.когда захожу в почтовый ящик через веб, не отображаются контакты в адресной книги.
2. С ДНС записями каша в голове. Внутренний домен city.corp, внешний почтовый домен city.com, как мне в на КД в ДНС добавить запись mail.city.com?
avatar
Здравствуйте.
1- настрока в старых версиях происходила в файле usr/share/apache2/roundcubemail/config/main.inc.php сейячас не скажу, т.к. не пользуюсь, нужно смотреть
2-Через оснастку управления DNS создаете, создаете мастер-зону city.com, в ней A запись и MX запись, МХ указывает на эту А запись.
Посмотрите не спеша, там не сложно…
avatar
Спасибо, с DNS-ом проблему решил.
А по поводу конфига, usr/share/apache2/roundcubemail/config/config.inc.php
<?php

// SQL DATABASE
$config['db_dsnw'] = 'mysqli://roundcube:3OLLNBCNxe0ZvdSOFN5yt6nEomReLj@127.0.0.1/roundcubemail';

// LOGGING
$config['log_driver'] = 'syslog';
$config['syslog_facility'] = LOG_MAIL;

// IMAP
$config['default_host'] = '127.0.0.1';
$config['default_port'] = 143;
$config['imap_auth_type'] = 'LOGIN';
$config['imap_delimiter'] = '/';

// SMTP
$config['smtp_server'] = 'tls://127.0.0.1';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';

// SYSTEM
$config['force_https'] = true;
$config['login_autocomplete'] = 2;
$config['ip_check'] = true;
$config['des_key'] = 'Fns2D4MFGDgzJWe17mcopNoP';
$config['useragent'] = 'Roundcube Webmail'; // Hide version number
//$config['username_domain'] = '';
$config['mime_types'] = '/etc/mime.types';

// USER INTERFACE
$config['create_default_folders'] = true;
$config['quota_zero_as_unlimited'] = true;

// USER PREFERENCES
$config['default_charset'] = 'UTF-8';
//$config['addressbook_sort_col'] = 'name';
$config['draft_autosave'] = 60;
$config['preview_pane'] = true;
$config['autoexpand_threads'] = 2;
$config['check_all_folders'] = true;

// PLUGINS
$config['plugins'] = array('managesieve', 'password');

// Global LDAP address book.
$config['ldap_public']["city.corp"] = array(
    'name'          => 'Global AD Address Book',
    'hosts'         => array('dc-01.city.corp'),
    'port'          => 389,
    'use_tls'       => false,
    'ldap_version'  => '3',
    'network_timeout' => 10,
    'user_specific' => false,

    // Search mail users under same domain.
    'base_dn'       => 'ou=USERS,ou=CORP,dc=city,dc=corp',
    'bind_dn'       => 'cn=iredmail,ou=System,ou=CORP,dc=city,dc=corp',
    'bind_pass'     => 'P@$$word',
    'hidden'        => false,
    'searchonly'    => false,
    'writable'      => false,

    'search_fields' => array('mail', 'cn', 'sAMAccountName', 'displayname', 'sn', 'givenName'),

    // mapping of contact fields to directory attributes
    'fieldmap' => array(
        'name'        => 'cn',
        'surname'     => 'sn',
        'firstname'   => 'givenName',
        'title'       => 'title',
        'email'       => 'mail:*',
        'phone:work'  => 'telephoneNumber',
        'phone:mobile' => 'mobile',
        'street'      => 'street',
        'zipcode'     => 'postalCode',
        'locality'    => 'l',
        'department'  => 'departmentNumber',
        'notes'       => 'description',
        'name'        => 'cn',
        'surname'     => 'sn',
        'firstname'   => 'givenName',
        'title'       => 'title',
        'email'       => 'mail:*',
        'phone:work'  => 'telephoneNumber',
        'phone:mobile' => 'mobile',
        'phone:workfax' => 'facsimileTelephoneNumber',
        'street'      => 'street',
        'zipcode'     => 'postalCode',
        'locality'    => 'l',
        'department'  => 'departmentNumber',
        'notes'       => 'description',
        'photo'       => 'jpegPhoto',
    ),
   // 'sort'          => 'cn',
    'scope'         => 'list',
    'filter'        => "(mail=*@*)",
   // 'filter'        => '(&(enabledService=mail)(enabledService=deliver)(enabledService=displayedInGlobalAddressBook)(|(objectClass=mailList)(objectClass=mailAlias)(objectClass=mailUser)))',
    'fuzzy_search'  => true,
    'vlv'           => false,   // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
    'sizelimit'     => '0',     // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
    'timelimit'     => '0',     // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
    'referrals'     => false,  // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups

    'group_filters' => array(
        'departments' => array(
            'name'    => 'Mailing Lists',
            'scope'   => 'sub',
            'base_dn' => 'domainName=%d,o=domains,dc=tns-intec,dc=kz',
            'filter'  => '(&(objectclass=mailList)(accountStatus=active)(enabledService=displayedInGlobalAddressBook))',
            'name_attr' => 'cn',
            'email'     => 'mail',
        ),
    ),
);
$config['autocomplete_addressbooks'] = array('sql', 'city.corp');
avatar
не буду оригинальничать, смотрите логи divecote, там все ответы!
avatar
в логе ни каких ошибок нет
Apr 27 10:41:45 imap-login: Info: Login: user=<f.fedotov@tns-intec.kz>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=2529, secured, session=<t1FqZLIU4AB/AAAB>
Apr 27 10:41:45 imap(f.fedotov@tns-intec.kz): Info: Disconnected: Logged out in=195 out=959
avatar
тогда логи web сервера.
Вы думаете я знаю ответы на все вопросы?! Также читаю логи и разбираюсь, если логов мало сервис можно запустить в режиме debug и тогда точно можно узнать в чем затык.
avatar
Сори за назойливость, просто только начинаю изучать unix системы и поэтому пока не могу понять в каких случаях какие логи смотреть. Можно уточнить как включить режим debug? Заранее большое спасибо!
avatar
в конфиге лога виртуального хоста, ну или всего сервера Apache
LogLevel debug
avatar
Так и не удается заставить ходить почту. Уже перерыл все что можно но так и не пойму проблему.
вот что в dovecot.log

May 06 11:17:34 auth: Debug: master userdb out: USER    2828009473      f.fedotov@tns-intec.kz  home=/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/  mail=maildir:/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/  auth_token=4f4e878d457fa68e81ec20a6992c4fc7eb07edfb
May 06 11:17:34 imap-login: Info: Login: user=<f.fedotov@tns-intec.kz>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3211, secured, session=<s2yq6WIVawB/AAAB>
May 06 11:17:34 imap: Debug: Loading modules from directory: /usr/lib/dovecot/modules
May 06 11:17:34 imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib01_acl_plugin.so
May 06 11:17:34 imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib02_imap_acl_plugin.so
May 06 11:17:34 imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
May 06 11:17:34 imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib11_imap_quota_plugin.so
May 06 11:17:34 imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_mailbox_alias_plugin.so
May 06 11:17:34 imap: Debug: Added userdb setting: mail=maildir:/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Effective uid=2000, gid=2000, home=/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota root: name=user backend=dict args=:proxy::quotadict
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota rule: root=user mailbox=* bytes=1073741824 messages=0
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota warning: bytes=912680550 (85%) messages=0 reverse=no command=quota-warning 85 f.fedotov@tns-intec.kz
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota warning: bytes=966367641 (90%) messages=0 reverse=no command=quota-warning 90 f.fedotov@tns-intec.kz
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota warning: bytes=1020054732 (95%) messages=0 reverse=no command=quota-warning 95 f.fedotov@tns-intec.kz
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Quota grace: root=user bytes=107374182 (10%)
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: dict quota: user=f.fedotov@tns-intec.kz, uri=proxy::quotadict, noenforcing=0
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: maildir++: root=/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir, index=, indexpvt=, control=, inbox=/var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir, alt=
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: initializing backend with data: vfile
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: acl username = f.fedotov@tns-intec.kz
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: owner = 1
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: Global ACL directory: (none)
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: initializing backend with data: vfile
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: acl username = f.fedotov@tns-intec.kz
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl: owner = 0
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: Global ACL directory: (none)
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: reading file /var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/.Sent/dovecot-acl
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: reading file /var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/.Drafts/dovecot-acl
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: reading file /var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/.Trash/dovecot-acl
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: reading file /var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/.Junk/dovecot-acl
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Debug: acl vfile: reading file /var/vmail/vmail1/tns-intec.kz/f.fedotov/Maildir/dovecot-acl
May 06 11:17:34 imap(f.fedotov@tns-intec.kz): Info: Disconnected: Logged out in=352 out=2161

Уже даже ручками создал файл dovecot-acl с содержимым owner lrwstipek и положил его в папки которые фигурируют в логе, но результата нет.
avatar
Помнится, у вас, изначально была проблема с адресной книгой :)
1) не видно обращений к контроллеру домена
2) то что почта не ходит, нужно смотреть лог postfix там будет видно почему отлуп идет!
на контроллере домена открыт 389 порт на фаерволле, с почтового сервера можно подключиться с помощью telnet?
avatar
Вроде направления куда капать понял. При отправки сообщений приходит возврат с ошибкой
<f.fedotov@tns-intec.kz>: connect to 127.0.0.1[127.0.0.1]:10024: Connection
    refused‏

такая же ошибка возвращается когда оправляю почту от f.fedotov@tns-intec.kz
Думаю что это в iptables правила режут. Сейчас разбираюсь с ним, но честно очень плохо пока понимаю как он работает.
особенно вот эти правила
root@Mail-SRV:/var/log# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-postfix  tcp  --  anywhere             anywhere             multiport dports http,https,smtp,submission,pop3,pop3s,imap2,imaps,sieve
fail2ban-dovecot  tcp  --  anywhere             anywhere             multiport dports http,https,smtp,submission,pop3,pop3s,imap2,imaps,sieve
fail2ban-roundcube  tcp  --  anywhere             anywhere             multiport dports http,https,smtp,submission,pop3,pop3s,imap2,imaps,sieve
fail2ban-default  tcp  --  anywhere             anywhere
fail2ban-default  tcp  --  anywhere             anywhere

Так что пока вопрос с адресной книгой отложил.
avatar
root@Mail-SRV:/var/log# cat /var/log/fail2ban.log
2015-05-05 06:42:06,019 fail2ban.server : INFO   Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.11
2015-05-05 10:51:25,899 fail2ban.server : INFO   Stopping all jails
2015-05-05 10:51:26,642 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve -j fail2ban-roundcube
iptables -F fail2ban-roundcube
iptables -X fail2ban-roundcube returned 100
2015-05-05 10:51:26,642 fail2ban.jail   : INFO   Jail 'roundcube-iredmail' stopped
2015-05-05 10:51:27,598 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -j fail2ban-default
iptables -F fail2ban-default
iptables -X fail2ban-default returned 100
2015-05-05 10:51:27,599 fail2ban.jail   : INFO   Jail 'sshd' stopped
2015-05-05 10:51:28,607 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve -j fail2ban-postfix
iptables -F fail2ban-postfix
iptables -X fail2ban-postfix returned 100
2015-05-05 10:51:28,607 fail2ban.jail   : INFO   Jail 'postfix-iredmail' stopped
2015-05-05 10:51:29,611 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve -j fail2ban-dovecot
iptables -F fail2ban-dovecot
iptables -X fail2ban-dovecot returned 100
2015-05-05 10:51:29,611 fail2ban.jail   : INFO   Jail 'dovecot-iredmail' stopped
2015-05-05 10:51:30,612 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -j fail2ban-default
iptables -F fail2ban-default
iptables -X fail2ban-default returned 100
2015-05-05 10:51:30,613 fail2ban.jail   : INFO   Jail 'sshd-ddos' stopped
2015-05-05 10:51:30,619 fail2ban.server : INFO   Exiting Fail2ban
avatar
fail2ban можно остановить на время тестирования
avatar
странно, остановка fail2ban тоже не помогла.
root@Mail-SRV:/var/log# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
6AB9C819EA      546 Wed May  6 16:23:49  f.fedotov@tns-intec.kz
                   (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
                                         ej***@gmail.com
avatar
Что крутится на порту 10024? Эта служба запущена? доступ к ней есть?
avatar
странно но я не вижу что на этом порту крутится
nmap 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-08 09:13 ALMT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Not shown: 986 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
24/tcp    open  priv-mail
25/tcp    open  smtp
80/tcp    open  http
110/tcp   open  pop3
143/tcp   open  imap
389/tcp   open  ldap
443/tcp   open  https
587/tcp   open  submission
993/tcp   open  imaps
995/tcp   open  pop3s
3306/tcp  open  mysql
7777/tcp  open  cbt
10025/tcp open  unknown


netstat -l
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp        0      0 *:submission            *:*                     LISTEN
tcp        0      0 *:pop3                  *:*                     LISTEN
tcp        0      0 localhost:10031         *:*                     LISTEN
tcp        0      0 *:imap2                 *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:24                    *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
tcp        0      0 *:sieve                 *:*                     LISTEN
tcp        0      0 localhost:7777          *:*                     LISTEN
tcp        0      0 *:imaps                 *:*                     LISTEN
tcp        0      0 *:pop3s                 *:*                     LISTEN
tcp        0      0 *:ldap                  *:*                     LISTEN
tcp        0      0 localhost:10025         *:*                     LISTEN
avatar
Судя из конфига постфикса на этом порту должен крутится amavis
content_filter = smtp-amavis:[127.0.0.1]:10024

служба запущена, но ни nmap ни netstat показывают.
avatar
закомментируйте в конфиге Postfix чтобы он его не использовал, это антиспам
avatar
закомментировал, работает. И отправляет и принимает. Буду читать как заставить постфикс работать с антиспамом. Спасибо!
avatar
Лучше разобраться, как заставить антиспам нормально работать, вещь крайне нужная.
avatar
Ура заработала!!! Нашел проблему, при запуске amavis в логи было замечено такая запись:
May 13 08:52:23 mail amavis[2895]: (!!)TROUBLE in pre_loop_hook: config: no rules were found!  Do you need to run 'sa-update'?

запустил /usr/bin/sa-update, не знаю что он там обновил, но почта стала ходить. И наконец netstat показывает что порт 10024 слушает amavis. Спасибо за помощь!!!
avatar
Теперь буду искать почему в адресную книгу не подгружаются адреса из AD
avatar
Народ подскажите. У меня вот такая ошибка. решение в гугле не нашел.
[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.
avatar
Здравствуйте.
открываем CMD, там пишем gpedit.msc
переходим в раздел:
Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options

нас интересуют строки:
Domain Controller: LDAP Server signing requirements переводим в значение None
Network security: LDAP Client signing requirements переводим в значение Negotiate
по поводу:
additional info: BindSimple: Transport encryption required.
В конфигах, где прописывается подключение к контроллеру домена
start_tls       = no

поменяйте на
start_tls       = yes


По идее, все должно работать.
avatar
вот это писать в ldap.conf? start_tls = yes
У меня контроллер на samba поднят. Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options как это в ней поправить?
avatar
Я не знаю на чем у вас поднят контроллер, я пишу для AD DC на MS Windows, для которого и писалась эта статья.
start_tls = yes посмотрите конфиги Postfix, в статье, там и надо поправить.
avatar
Доброго времени!
Странно но у меня тоже smtp 451 ошибку ловит, причем и на отправку и на получение. Но только от чужих доменов, у своих всё хорошо. Всю конфу перерыл понять не могу. Главное понял точно такой же сервер, но с mysql, вместо openldap и всё пошло
avatar
Всем привет! Столкнулся с проблемой что через roundcube не шла авторизация без UPN суффикса. Ошибка нашлась в фалйте
/etc/dovecot/dovecot.conf


строка

auth_default_realm = XXX.XXX


меняем на нужный UPN и все шуршит как надо.
Есть что добавить? Регистрируйся и оставляй комментарии!