Часть 1
![](https://habrastorage.org/getpro/habr/upload_files/7ed/7f3/940/7ed7f394080651eadc6a8a7247e0c528.png)
Слово импортозамещение сегодня звучит ничуть не реже, чем когда-то набившие оскомину модернизация, цифровизация и богоспасаемый блокчейн. И если раньше объяснить всеобщую тягу к всевозможным «циям» было нечем, то сегодня провидение толкает каждого из нас смотреть по сторонам в поисках замены безвременно уходящему ПО.
Мы подготовили обзор серверной платформы для организации электронной почты, передачи голосовых данных посредством технологии 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
![](https://habrastorage.org/getpro/habr/upload_files/d7b/a17/4c6/d7ba174c6ec69118942ac8b576747e46.png)
После установки нужно запустить CGP командой
/etc/init.d/CommuniGate start
![](https://habrastorage.org/getpro/habr/upload_files/529/21b/250/52921b2503fe6d9af485b417798d9031.png)
после установки в течение 10 минут рекомендуется зайти браузером по IP адресу сервера на порт 8010 и установить пароль пользователя postmaster. Если это не сделать, по истечении 10 минут сервер CGP остановится. Чтобы задать пароль postmaster придётся снова запустить CGP или перезапустить сервер и повторить установку пароля postmaster.
![](https://habrastorage.org/getpro/habr/upload_files/a44/cc8/d9a/a44cc8d9a0a49ad05ef61e55393c5215.png)
После этого CGP предложит вам аутентифицироваться. Вводим логин “postmaster” и свежий пароль и переходим к настройкам.
Настройка
Почтовый домен
Внимательно смотрим на первый экран настроек:
Заполняем имя главного почтового домена – то, что будет у пользователей в почтовом адресе после значка собаки. У меня это “laex.xyz”, так уж получилось исторически и именно для этого доменного имени будут приводиться все дальнейшие примеры.
Указываем часовой пояс, выбираем режим “Expert”. Жмём “Update”, выдыхаем.
![](https://habrastorage.org/getpro/habr/upload_files/7d4/0e4/761/7d40e47615f72e27815f4c9f9f81f296.png)
Можно немного расслабиться, выпить чаю и съесть булок.
Последний нюанс – настройка представления: нажмите справа внизу “Preferences”
![](https://habrastorage.org/getpro/habr/upload_files/a66/32b/f24/a6632bf2460d479ef930e926e444fc15.jpg)
и выберите вид “Dash”, это упростит навигацию по интерфейсу администратора. Язык оставляем английский. Впрочем, это на ваше усмотрение.
![](https://habrastorage.org/getpro/habr/upload_files/040/da4/ea8/040da4ea80c2d96bebd0b15d5af74fd1.png)
После нажатия “Update” внешний вид консоли администрирования CGP изменится. Кстати, кнопка “Update” применяет любые выполненные настройки в любом блоке. Далее отдельно указывать необходимость её нажатия я не буду, не забывайте это делать самостоятельно.
При указании раздела и блока настроек я буду использовать следующий формат записи, для примера: “ Users -> Domains -> laex.xyz -> Security -> SSL/TLS ”, где последовательно указаны необходимые пункты настроек.
![](https://habrastorage.org/getpro/habr/upload_files/0d9/db4/e7c/0d9db4e7ce0575033c4e8df076b67dc9.png)
Приоритет настроек
Настройки CGP могут применяться на трёх уровнях:
сервер;
домен;
пользователь.
Чем ближе настройка к пользователю, тем выше её приоритет. Например, на уровне сервера установлен английский язык интерфейса, на уровне домена – французский, а у Иванова Ивана – русский.
Вопрос: какой язык интерфейса увидит Иван, зайдя браузером в свой почтовый ящик?
Ответ: русский.
Молодцы, сервер установили, с приоритетом настроек определились, продолжаем упражнения. Настроим CGP, чтобы он мог выполнять свою основную функцию – принимать, отправлять почту и предоставлять клиентам защищённый доступ к ней.
Включение сертификатов
Настроим безопасное подключение к серверу. Получить сертификаты вы можете любым удобным способом, я использовал certbot для получения сертификатов от Let’s Encrypt. Считаем, что после успешного запроса и получения сертификатов у нас есть закрытый ключ и сам сертификат в BASE64 формате. В моём случае сертификат выписан на имя “mail.laex.xyz”.
В консоли администратора CGP переходим в раздел “Users -> Domains -> laex.xyz -> Security -> SSL/TLS”, выбираем в поле размера ключа “Import” и жмём “Generate Key”.
![](https://habrastorage.org/getpro/habr/upload_files/400/b7a/90a/400b7a90a0994d0cbde07c6c96c77e5f.jpg)
Копируем содержимое закрытого ключа и вставляем в соответствующее поле.
![](https://habrastorage.org/getpro/habr/upload_files/47f/59f/701/47f59f70127925b3a8834bac66272138.jpg)
Снова жмём “Generate Key” и видим, что ключ успешно принят.
![](https://habrastorage.org/getpro/habr/upload_files/b14/ce3/c6c/b14ce3c6c3ddd650fd91c512e4fd1c07.png)
Копируем содержимое сертификата в виде текста и вставляем его в поле “Enter a PEM-encoded Certificate”, жмём “Set Certificate”.
![](https://habrastorage.org/getpro/habr/upload_files/2fd/65d/c81/2fd65dc81865bcb29465fc146384f259.png)
Ключ и сертификат для шифрования подключения успешно установлены.
В этом же блоке настроек в самом верху включаем PKI Services:
![](https://habrastorage.org/getpro/habr/upload_files/03c/197/a97/03c197a97347f7211a3cde09946533df.jpg)
Настройка HTTPS
CGP готов принимать подключения к web интерфейсу с использованием шифрованного подключения. Но если вы попробуете привычно постучаться на IP или имя CGP по https с использованием стандартного 443-го порта, он вам ничего не ответит. Нужно ещё немного изменить дефолтные настройки CGP. Первое: добавим псевдоним домена, чтобы он соответствовал имени, на которое выписан SSL сертификат.
“Users -> Domains -> laex.xyz -> Domain Settings”, листаем в самый низ страницы и добавляем нужный псевдоним:
![](https://habrastorage.org/getpro/habr/upload_files/83f/93b/14c/83f93b14c6270b5a1375422151e61b44.jpg)
И второе: настроим порт, на котором будут приниматься https подключения:
“Settings -> Services -> HTTPU”, в блоке “Processing” справа есть неприметная ссылка “Listener”
![](https://habrastorage.org/getpro/habr/upload_files/cc0/358/283/cc03582830bdac880a77d91e3bae4d1c.png)
Жмём на неё и попадаем в раздел настройки клиентских web подключений. Как видим, по умолчанию подключения https принимаются на порт 9100, а http – на порт 8100, что несколько неожиданно. Добавим 443 порт и привяжем к нему использование SSL и добавим 80 порт без шифрования:
![](https://habrastorage.org/getpro/habr/upload_files/8f8/751/a4a/8f8751a4a0785c5aa0448d4b3494e3d5.png)
Теперь клиентам можно подключаться к CGP с помощью браузера, используя стандартные порты.
Настройка переадресации HTTP на HTTPS
В качестве приятного дополнения настроим переадресацию с http на https, чтобы все клиентские подключения были защищены шифрованием. Это потребует несколько больше, чем просто изменить настройки в интерфейсе администратора, но мы справимся.
“Users -> Skins”, в поле “Filter” указываем “login.wssp”, жмём “Display”. Щёлкаем ссылку найденного файла правой кнопкой и выбираем “сохранить ссылку как”, затем сохранить как login.wssp. Это файл формата html.
![](https://habrastorage.org/getpro/habr/upload_files/453/cac/6f3/453cac6f3697064bc17151ffe3777bd0.jpg)
Сохраняем копию исходного файла под именем “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”
![](https://habrastorage.org/getpro/habr/upload_files/593/1f5/6c2/5931f56c2a5d5d5deba4d7efd8bd442d.jpg)
Пробуем войти на web интерфейс клиента по ссылке http://mail.laex.xyz и убеждаемся, что сработал редирект на https. Всё замечательно, но посмотреть на web интерфейс не получается, пользователя нет. Исправим этот недостаток во второй части статьи.