Часть 1

Слово импортозамещение сегодня звучит ничуть не реже, чем когда-то набившие оскомину модернизация, цифровизация и богоспасаемый блокчейн. И если раньше объяснить всеобщую тягу к всевозможным «циям» было нечем, то сегодня провидение толкает каждого из нас смотреть по сторонам в поисках замены безвременно уходящему ПО.

Мы подготовили обзор серверной платформы для организации электронной почты, передачи голосовых данных посредством технологии VoIP, мгновенного обмена сообщениями и автоматизации совместной работы CommuniGate Pro. Поскольку текста много и местами он зубодробительно технический, разобьем его на две части. Энжойте!

Что с почтовыми серверами?

Бесспорным лидером на рынке почтовых систем в нашей стране по-прежнему остается Microsoft Exchange Server в разных версиях и их сочетаниях: установленный локально от древних релизов до 2019, облачный вариант Exchange Online и гибридные реализации локального и облачного почтовых сервисов.

Тем не менее в последнее время отечественные компании всё чаще стали обращать взор на отечественные же почтовые системы. Мы протестировали и сравнили разные продукты, предоставляющие почтовый и связанные с ним сервисы. В числе протестированного ПО: VK Workmail, МойОфис Почта и CommuniGate Pro. Сегодня мы поговорим о последнем.

Почему CommuniGate Pro?

Продукт разрабатывается с 1998 года и сейчас доступен для множества платформ: Unix, Linux, Microsoft Windows, Mac OS X. CommuniGate Pro предоставляет множество сервисов на базе одного сервера или отказоустойчивого кластера серверов: почта, календарь, контакты, задачи, мессенджер, телефония, хранение файлов. Доступ к сервисам возможен как с помощью браузера, так и с помощью собственного клиента Samoware, из Outlook и других почтовых клиентов, в том числе на мобильных устройствах.

  • Отечественная разработка, включённая в Единый реестр российских программ для электронных вычислительных машин и баз данных;

  • работа на множестве платформ;

  • множество предоставляемых сервисов;

  • проработанность и надёжность продукта;

  • отличная документация на нескольких языках;

  • невысокие системные требования.

Системные требования

Рекомендованные требования к оборудованию (серверу) для установки и эксплуатации ПО CommuniGate Pro 6.3 для 10 учетных записей:

  • двухъядерный процессор семейства Intel или AMD частотой 3 ГГц;

  • оперативная память 8 ГБ;

  • жесткий диск SSD не менее 500 ГБ;

  • сетевой адаптер 100 MBit/s;

  • видеоадаптер не требуется;

  • монитор не требуется.

Установка

Подготовка ОС

Установку и дальнейшую настройку CommuniGate Pro (CGP) будем рассматривать на примере виртуальной машины в среде VMware ESXi 6.7.0 с установленной Centos 7.9 для почтового сервера CommuniGate Pro версии 6.3.

Также считаем, что сервер тем или иным образом опубликован в интернет, внешний DNS вы уже настроили и пробросили порты 25, 80 и 443 с внешнего IP на локальный IP CGP. Это обеспечит приём почты и отправку почты во внешний мир, а также возможность доступа к почте с помощью браузера почти из любой точки мира.

Дальнейшая статья предусматривает некоторые упрощения и послабления (можете подготовить помидоры для забрасывания авторов), приемлемые для тестовой и ознакомительной установки, а уж использовать ли их в производственной среде – решать вам.

После установки операционной системы настроим её параметры: 

  • настроим синхронизацию времени;

  • установим статический IP;

  • обновим пакеты;

  • отключим расширенные настройки безопасности Linux;

  • отключим файервол;

  • установим пакеты python3 pip perl-LDAP;

  • проверим на использование порты 25, 80 443. Если что-то их занимает – отключите или удалите это.

 

Подготовим для использования перловый командный модуль CGP. Скачать его можно по адресу http://www.communigate.ru/CGPerl/CLI.pm. После скачивания кладём в каталог, доступный для выполнения Perl, например /usr/share/perl5 и назначаем права 755.

Установка CGP

Для установки скачиваем дистрибутив сервера в формате rpm с сайта разработчика по ссылке http://www.communigate.ru/main/purchase/download.html.

 

Устанавливаем CGP командой

rpm -ihv CGatePro-Linux.x86_64.rpm

После установки нужно запустить CGP командой

/etc/init.d/CommuniGate start

после установки в течение 10 минут рекомендуется зайти браузером по IP адресу сервера на порт 8010 и установить пароль пользователя postmaster. Если это не сделать, по истечении 10 минут сервер CGP остановится. Чтобы задать пароль postmaster придётся снова запустить CGP или перезапустить сервер и повторить установку пароля postmaster.

 

После этого CGP предложит вам аутентифицироваться. Вводим логин “postmaster” и свежий пароль и переходим к настройкам.

Настройка

Почтовый домен

Внимательно смотрим на первый экран настроек:

Заполняем имя главного почтового домена – то, что будет у пользователей в почтовом адресе после значка собаки. У меня это “laex.xyz”, так уж получилось исторически и именно для этого доменного имени будут приводиться все дальнейшие примеры.

Указываем часовой пояс, выбираем режим “Expert”. Жмём “Update”, выдыхаем.

Можно немного расслабиться, выпить чаю и съесть булок.

Последний нюанс – настройка представления: нажмите справа внизу “Preferences”

и выберите вид “Dash”, это упростит навигацию по интерфейсу администратора. Язык оставляем английский. Впрочем, это на ваше усмотрение.

После нажатия “Update” внешний вид консоли администрирования CGP изменится. Кстати, кнопка “Update” применяет любые выполненные настройки в любом блоке. Далее отдельно указывать необходимость её нажатия я не буду, не забывайте это делать самостоятельно.

При указании раздела и блока настроек я буду использовать следующий формат записи, для примера: “ Users -> Domains -> laex.xyz -> Security -> SSL/TLS ”, где последовательно указаны необходимые пункты настроек.

Приоритет настроек

Настройки CGP могут применяться на трёх уровнях:

  • сервер;

  • домен;

  • пользователь.

Чем ближе настройка к пользователю, тем выше её приоритет. Например, на уровне сервера установлен английский язык интерфейса, на уровне домена – французский, а у Иванова Ивана – русский.

Вопрос: какой язык интерфейса увидит Иван, зайдя браузером в свой почтовый ящик?

Ответ: русский.

Молодцы, сервер установили, с приоритетом настроек определились, продолжаем упражнения. Настроим CGP, чтобы он мог выполнять свою основную функцию – принимать, отправлять почту и предоставлять клиентам защищённый доступ к ней.

Включение сертификатов

Настроим безопасное подключение к серверу. Получить сертификаты вы можете любым удобным способом, я использовал certbot для получения сертификатов от Let’s Encrypt. Считаем, что после успешного запроса и получения сертификатов у нас есть закрытый ключ и сам сертификат в BASE64 формате. В моём случае сертификат выписан на имя “mail.laex.xyz”.

В консоли администратора CGP переходим в раздел “Users -> Domains -> laex.xyz -> Security -> SSL/TLS”, выбираем в поле размера ключа “Import” и жмём “Generate Key”. 

Копируем содержимое закрытого ключа и вставляем в соответствующее поле.

Снова жмём “Generate Key” и видим, что ключ успешно принят.

Копируем содержимое сертификата в виде текста и вставляем его в поле “Enter a PEM-encoded Certificate”, жмём “Set Certificate”.

Ключ и сертификат для шифрования подключения успешно установлены.

В этом же блоке настроек в самом верху включаем PKI Services:

Настройка HTTPS

CGP готов принимать подключения к web интерфейсу с использованием шифрованного подключения. Но если вы попробуете привычно постучаться на IP или имя CGP по https с использованием стандартного 443-го порта, он вам ничего не ответит. Нужно ещё немного изменить дефолтные настройки CGP. Первое: добавим псевдоним домена, чтобы он соответствовал имени, на которое выписан SSL сертификат.

“Users -> Domains -> laex.xyz -> Domain Settings”, листаем в самый низ страницы и добавляем нужный псевдоним:

И второе: настроим порт, на котором будут приниматься https подключения:

“Settings -> Services -> HTTPU”, в блоке “Processing” справа есть неприметная ссылка “Listener”

Жмём на неё и попадаем в раздел настройки клиентских web подключений. Как видим, по умолчанию подключения https принимаются на порт 9100, а http – на порт 8100, что несколько неожиданно. Добавим 443 порт и привяжем к нему использование SSL и добавим 80 порт без шифрования:

Теперь клиентам можно подключаться к CGP с помощью браузера, используя стандартные порты.

Настройка переадресации HTTP на HTTPS

В качестве приятного дополнения настроим переадресацию с http на https, чтобы все клиентские подключения были защищены шифрованием. Это потребует несколько больше, чем просто изменить настройки в интерфейсе администратора, но мы справимся.

“Users -> Skins”, в поле “Filter” указываем “login.wssp”, жмём “Display”. Щёлкаем ссылку найденного файла правой кнопкой и выбираем “сохранить ссылку как”, затем сохранить как login.wssp. Это файл формата html.

Сохраняем копию исходного файла под именем “login.wssi”.

Открываем вашим любимым блокнотом файл “login.wssp” и заменяем всё содержимое на:

<!--%%IF secureChannel -->
<!--%%INCLUDE "login.wssi" -->
<!--%%ELSE -->
<HTML>
<HEAD>
<META HTTP-EQUIV=REFRESH CONTENT="0; url=https://%%domainName%%/">
<TITLE>Redirecting to the secure interface</TITLE>
</HEAD>
</HTML>
<!--%%ENDIF-->

Сохраняем файл с именем “login.wssp”

Заливаем оба файла на CGP в разделе “Users -> Skins”

Пробуем войти на web интерфейс клиента по ссылке http://mail.laex.xyz и убеждаемся, что сработал редирект на https. Всё замечательно, но посмотреть на web интерфейс не получается, пользователя нет. Исправим этот недостаток во второй части статьи.

Комментарии (21)


  1. BoreaAlex
    09.08.2022 13:25
    +2

    Решение хорошее, но плагин для работы Outlook оказался специфичным, с установкой намучались, несовместим с некоторыми надстройками и антивирусами, сам аутлук заметно подтормаживает по сравнению с exchange почтой


  1. habrpanch
    09.08.2022 14:24
    +2

    Помню еще 10 лет назад поиск в оутлуке с комунигейтом, в ящике более 10гб занимал минуты.. ничего не поменялось?


    1. AlexeyTrofimov Автор
      10.08.2022 12:22

      В моих условиях почтовые ящики гораздо меньшего объёма. Не знаю, как с поиском в большом ящике в Outlook.


    1. navion
      11.08.2022 11:23

      Он и без Outlook плохо работает с большими ящиками - в веб-интерфейсе поиск такой же неспешный.

      Это в Exchnage индексы и оптимизация I/O, а тут нужна полка с SSD для нормальной работы. Отказоустойчивость хранилища тоже лишь средствами СХД с ручным шардированием и возможной потерей данных из-за асинхронной записи в дисковый кэш ОС.


  1. olegtsss
    09.08.2022 16:27
    +1

    А какие плюсы у почтового сервера перед Postfix?


    1. vasilisc
      09.08.2022 23:46
      -1

      Так как Postfix это чисто MTA, то есть отправка писем по SMTP, то для получения более или менее вменяемой итоговой системы, мне приходится, как админу, добавлять MySQL для хранения виртуальных учёток пользователей + PostfixAdmin как веб интерфейс + Dovecot чтобы пользователи забирали письма по протоколам POP3 и IMAP + OpenDKIM для подписывания писем + через milter проверку писем на антиспам и антивирус от вашего любимого решения (я прошёл путь от SpamAssassin/ClamAV, затем DrWeb AV и теперь Kaspersky Security для Linux Mail Server  ). В итоге я получил дёшево и сердито просто почтовик (MTA). А теперь взгляните что может за деньги CGP, разве что кофе не готовит: SMTP, IMAP, POP, MAPI, SIP, XMPP, HTTP, FTP, WebDAV, CalDAV, CardDAV, XIMSS и другим.

      http://www.communigate.ru/CommuniGatePro/russian/


      1. olegtsss
        10.08.2022 03:37
        +1

        Другими словами, плюс — это простота настройки и коробочность решения.


        1. vasilisc
          10.08.2022 09:11

          Open Source - это как кубики. Собирай что хочешь. Если честно не сказал бы, что прям всё просто. Не "Далее - Далее - Готово", но работает надёжно, исправно и бесплатно. Иногда последнее очень важно. Если есть деньги, то, возможно, стоить подумать купить готовый комбайн с кучей функционала "искаропки".


          1. olegtsss
            10.08.2022 16:02

            Мне самому не приходилось работать с описанным сервером. А там внутри не тот же Postfix живет?


            1. vasilisc
              10.08.2022 16:14
              +1

              Я, к сожалению, не использовал CGP в работе, но, вероятнее всего, это собственническая разработка без запихивания под капот какого-либо open source MTA типа Postfix. В Интернете не нашёл информации о "заимствовании".


              1. navion
                11.08.2022 09:42
                +2

                Это самописный монолит с кучей протоколов и статический компиляцией под все платформы (там даже BeOS и OS/400). А сборник опенсорса в Zimbra.


                1. enamchuk
                  11.08.2022 15:28

                  У меня несколько лет в середине 2010-х домашний почтовый сервер как раз был на CommuniGate под управлением OS/2. 5 почтовых ящиков. Прекрасно работал, но всё же потом перенёс почту на Zoho.


            1. AlexeyTrofimov Автор
              11.08.2022 20:10

              Внутри нет postfix. Как уже ответили ниже – это самостоятельная разработка stalker soft.


  1. savostin
    09.08.2022 23:52

    Самое сложное в почтовом сервере собственной закваски - это DMARC, SPF и DKIM. Чтоб почта не только приходила и уходила, но и доходила.


    1. olegtsss
      10.08.2022 03:38

      Не сложнее, чем все остальное. Особенно DMARC )


    1. AlexeyTrofimov Автор
      10.08.2022 08:47
      +2

      SPF настраивается путём создания записи в DNS, нужно только знать, кто выполняет отправку почты собственной закваски.

      DKIM на CommuniGate Pro включается в разделе "Установки Домена -> Безопасность -> DKIM". Полученный открытый ключ также записывается в DNS.

      DMARC - текстовая запись в DNS, предписывающая поведение серверу получателя почты нашей закваски на основе SPF и DKIM записей.

      Порядок включения: SPF, DKIM, DMARC. Перед включением строгих режимов фильтрации для SPF и DMARC рекомендую включить нейтральные, пропускающие почту, и понаблюдать за поведением потока входящей почты.


      1. savostin
        10.08.2022 12:02

        Вот про эту всю "магию" хотелось бы побольше. Да еще и для работающего уже домена/почты, например. А как кнопочки нажимать, думаю, 99% здесь в курсе...


        1. AlexeyTrofimov Автор
          11.08.2022 20:11

          Это на отдельную статью тянет. Подумаем :)


  1. AlexandreFrolov
    10.08.2022 08:59

    А если сравнить с Zimbra / Carbonio? Там есть бесплатные версии.


    1. AlexeyTrofimov Автор
      10.08.2022 12:23

      Zimbra / Carbonio пока не тестировал.


      1. AlexandreFrolov
        10.08.2022 12:56

        Перешел на бесплатную Zimbra 9 с Axigen, пока все нравится.