Миграция с Exchange на CommuniGate Pro. Часть 4. Подготовка клиентских приложений CommuniGate

В прошлой публикации мы подготовили почтовую инфраструктуру для параллельной работы двух почтовых серверов, а в этой публикации мы рассмотрим, как выполняется подготовка клиентских приложений CommuniGate.

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

Настройка сертификатов на CommuniGate

Подготовка клиентских приложений CommuniGate начнется с установки сертификата. О том, как выпустить или установить уже имеющийся сертификат я рассказал в соответствюущей статье.

Вы можете как сгенерировать запрос на выпуск нового сертификата, так и установить уже имеющийся сертификат.

Добавление алиаса для домена

Поскольку наши клиенты будут подключаться по имени com01.itproblog.ru, то необходимо добавить это имя в алиасы домена. Сейчас наш домен отвечает только на имя itproblog.ru.

Какие шига нужно выполнить:

1. Запускаем веб консоль администрирования.

http://10.10.10.154:8010/

2. Переходим по следующему пути: Users > Domains > itproblog.ru > Domain Settings.

3. Добавляем наш алиас и нажимаем кнопку “Update“.

Процедура добавления алиаса завершена.

Изменение порта веб клиента

Сразу после установки веб клиент CommuniGate прослушивает доступен по следующим портам:

  • 8100 – для незащищенных соединений (HTTP).
  • 9100 – для защищенных соединений (HTTPS).

Давайте заменим эти порты на более привычные – 80 и 443:

1. Запускаем веб консоль администрирования.

http://10.10.10.154:8010/

2. Переходим по следующему пути: Settings > Services > HTTPU > TCP.

3. Изменим номера портов и нажимаем кнопку “Update“.

Изменение интерфейса по умолчанию

Укажем, что по умолчанию необходимо использовать клиент Samoware:

1. Запускаем веб консоль администрирования CommuniGate.

http://10.10.10.154:8010/

2. Переходим в раздел Users -> Domains -> itproblog.ru -> Account Defaults -> Preferences.

3. Указываем, что клиент Samoware будет являться клиентом по умолчанию.

4. Сохраняем внесенные изменения.

Настройка перенаправления с HTTP на HTTPS для веб клиента

Сразу после установки CommuniGate Pro веб клиент работает только по HTTP. Для обеспечения безопасного подключения в настроящее время крайне рекоменддуется использование HTTPS. Если вы выполнили пункт выше и добавили SSL/TLS сертификат, то можете включить HTTPS для доступа к веб клиенту. Проблема в том, что если клиент подключится по HTTP, то его автоматически не редиректит на HTTPS.

Один из вариантов – это полное отключение HTTP доступа. Однако, если вас этот вариант не устраивает (по разным причинам), то вы можете выполнить редирект с HTTP на HTTPS. Отмечу, что операцию, описанную в статье придется выполнять для каждой отдельной страницы в веб скинах.

Публикация CGP во внешний мир

Публикация ресурсов наружу в каждой команпии выполяется по разному. Все зависит от размеров комании, бюджетов и имеющегося стента технологий. Кто-то просто пробраывает порты на маршрутизаторе посредством NAT. Кто-то использует WAP (Web Application Proxy). У кого-то есть что-то посерьезнее – KEMP, Nginx, Citrix NetScaler и т.д.

Лично у меня в домашней лаборатории пограничное устройство одно – маршрутизатор. Только он смотрит во внешний мир. Можно было бы пробросить 443 TCP порт, но есть нюанс. Поскольку у меня и Exchange, и CommuniGate используют один и тот же порт (TCP/443), то логично, что пробросить его сразу на два сервера не получится. Нужен какой-то умный балансировщик, который в зависимости от запрашиваемого имени будет перенаправлять трафик на нужный сервер. Я буду использовать Nginx.

Моя планируемая схема публикации выглядит следующим образом:

Итого, что я сделаю для публикации Exchange и CommuniGate Pro через Nginx:

1. Установлю Альт Сервер 10 на отдельный сервер.

2. Настрою статический IP-адрес.

3. Добавлю новые файлы в директорию с дополнительной конфигурацией Nginx:

touch /etc/nginx/sites-enabled.d/Exchange.conf
touch /etc/nginx/sites-enabled.d/CommuniGate.conf

4. Редактирую конфигурацию для публикации Exchange. Пример конфигурации можно взять вот отсюда. Я не буду вдаваться в детальные объяснения конифгурации. Если у вас будут вопросы – задавайте их в комментариях.

vim /etc/nginx/sites-enabled.d/Exchange.conf
server {
        listen 80;
        server_name mail.itproblog.ru autodiscover.itproblog.ru;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
        server_name mail.itproblog.ru;
        set $exchange2019 https://10.10.10.151:443;

        # Redirect from "/" to "/owa" by default
        rewrite ^/$ https://mail.itproblog.ru/owa permanent;

        # Enable SSL
        ssl_certificate         /etc/nginx/certs/itproblog.crt;
        ssl_certificate_key     /etc/nginx/certs/itproblog_key.key;
        ssl_session_timeout     5m;

        # Set global proxy settings
        proxy_pass_request_headers on;
        proxy_read_timeout      360;

        proxy_pass_header       Date;
        proxy_pass_header       Server;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        location ~* ^/owa      { proxy_pass $exchange2019; }
        location ~* ^/Microsoft-Server-ActiveSync { proxy_pass $exchange2019; }
        location ~* ^/ecp { proxy_pass $exchange2019; }
        location ~* ^/Rpc { proxy_pass $exchange2019; }
        error_log /var/log/nginx/Exchange-error.log;
        access_log /var/log/nginx/Exchange-access.log;
}

server {
        listen 443 ssl;
        server_name autodiscover.itproblog.ru;
        set $exchange2019 https://10.10.10.151:443;

        # Enable SSL
        ssl_certificate         /etc/nginx/certs/itproblog.crt;
        ssl_certificate_key     /etc/nginx/certs/itproblog_key.key;
        ssl_session_timeout     5m;

        # Set global proxy settings
        proxy_pass_request_headers on;
        proxy_read_timeout      360;

        proxy_pass_header       Date;
        proxy_pass_header       Server;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        location ~* ^/Autodiscover { proxy_pass $exchange2019; }

        error_log /var/log/nginx/Exchange-error.log;
        access_log /var/log/nginx/Exchange-access.log;
}

5. 4. Редактирую конфигурацию для публикации CommuniGate.

vim /etc/nginx/sites-enabled.d/CommuniGate.conf
server {
        listen 80;
        server_name com01.itproblog.ru;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
        server_name com01.itproblog.ru;
        set $cgp https://10.10.10.154:443;


        # Enable SSL
        ssl_certificate         /etc/nginx/certs/itproblog.crt;
        ssl_certificate_key     /etc/nginx/certs/itproblog_key.key;
        ssl_session_timeout     5m;

        # Set global proxy settings
        proxy_pass_request_headers on;
        proxy_read_timeout      360;

        proxy_pass_header       Date;
        proxy_pass_header       Server;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        location / { proxy_pass $cgp; }

        error_log /var/log/nginx/cgp-error.log;
        access_log /var/log/nginx/cgp-access.log;
}

6. Проверяем конфигурацию Nginx.

nginx -t

Пример успешного завершения теста:

[root@lb01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 ~]# 

7. Включает автозапуск и запускаем Nginx:

systemctl enable nginx
systemctl start nginx

8. Проверяем доступ из вне.

Выбор структуры хранения пользователей

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

Добраться до этого пункта настроек можно по следующему пути – ” Users > Domains >[Ваш_домен] > Domain Settings”.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *