ZImbra: нетривиальная маршрутизация почты - часть 2

  • LDAP
Первая часть тут

Положим, поставила перед вами нелёгкая судьбина следующую задачу: добавить в Zimbr'у alias, он же псевдоним. Но псевдоним тот не простой, а виртуальный, указывающий не на пользователя в локальном домене, обслуживаемом Zimbra, а на некий «внешний» почтовый адрес.
Как законопослушный гражданин, вы наверняка первым делом загрузите интерфейс администрирования Zimbra и в меню Создать выберете «Псевдоним». После совершения указанной манипуляции пред ваши очи предстанет такое вот окно:

Читать дальше →

LDAP-каталог для Zimbr'ы

  • LDAP
Хотя разработчики Zimbra и призывают использовать чудесную реализацию как бы своего сервера каталогов, это, поверьте мне, совсем не обязательно. Zimbra 6 поставляется с самым обычным OpenLDAP в комплекте и двумя самопальными схемами, в одной из которых все типы атрибутов, кто бы мог подумать (surprise!), имеют наименования вида zimbraЧЕГО_ТО_ТАМ, а другая якобы просто позарез нужна Amavis'у (вирусный/антиспам фильтр). Если Вы где угодно поставите тот же OpenLDAP и подсунете ему две эти схемы — Zimbra не отличит этот каталог от родного. Ну а чтобы не мучаться с перенастройкой местоположения master-ldap'а (после установки Zimbr'ы это как-то дюже хитро делается, а в офдоках альтернативное местоположение master'а можно задать только на этапе установки) можно сделать проброс localhost:389 по SSH (см опцию -L), так, чтобы Zimbra коннектилась к LDAP локально, а реально попадала туда, куда вам угодно. При этом за счёт шифрования вы и секьюрность обеспечите, и откажетесь от совершенно небоснованных претензий Zimbr'овцев на создание очередного сервера каталогов.

ZImbra: нетривиальная маршрутизация почты - часть 1

  • LDAP
Zimbra — замечательный Collaboration Suite, но с точки зрения тонкой настройки собственно почтового сервиса MTA (в качестве которого, как мы все знаем, используется Postfix) её веб-интерфейс сильно хромает, а местами так и просто обескураживает.
Например, есть у меня Zimbra на внутреннем почтовике, она полностью закрыта от внешнего доступа и всю исходящую корреспонденцию шлёт внешнему серверу-шлюзу, от него же и принимает оную. Плюс настроен Split-Domain (как именно — см. Split Domain: Configuring Zimbra as the Secondary System), потому что пока на внешнем шлюзе есть нехилый кусок нашего корпоративного домена. Ну да это не суть важно, а важно то, что в моём случае Zimbra по дефолту не может отправлять любую почту, кроме адресованной локальным получателям, куда-либо, кроме того самого внешнего шлюза.
И всё было бы хорошо, если бы в дополнение к собственному домену Zimbra, назовём его domain.com, не появился ещё один внутренний домен с именем lists.domain.com, хостящийся буквально по соседству (VLAN/подсетка совпадают, так что не требуется дополнительная маршрутизация). И вот тут дефолтная конфигурация уже перестала меня устраивать: ведь в этот «соседний» домен тоже нужно каким-то образом отправлять почту, но если оставить всё как есть, то получится абсурдная ситуация: сначала Zimbra будет отправлять сообщение в lists.domain.com через интернет-шлюз на почтовый шлюз, а затем последний уже отправит это письмо обратно через интернет-шлюз… почти туда же, откуда оно и ушло. Таким образом, мы получили бы маршрутизацию почты в lists.domain.com аля «путешествие Афанасия Никитина за три моря» и массу потенциального геморроя.

Читать дальше →

Как правильно "скормить" Openfire аккаунты Zimbra

  • LDAP
Интеграция Openfire и Zimbr'ы сводится к стандартной настройке Openfire+LDAP, но есть один момент, характерный именно для Zimbra: это используемый LDAP-фильтр.

Он должен отсеивать ненужное по следующим критериям:
— Берутся только учётки Zimbra, соответственно objectClass=zimbraAccount;
— Учётная запись должны быть активной, соответственно zimbraAccountStatus=active;
— Нужно проверить, не системный ли ресурс данный аккаунт (всякие там спамы, хамы): для этого есть атрибут zimbraIsSystemResource и проверка !(zimbraIsSystemResource=TRUE);
— Нужно определить, кто может пользоваться Jabber'ом, а кто вовсе тестовый Вася Пупкин и ему не положено. Для этого придуман zimbraFeatureIMEnabled и проверка zimbraFeatureIMEnabled=TRUE

Читать дальше →