ОТКАЗ ОТ GUARDIAN С АВАРИЙНЫМ ПЕРЕКЛЮЧЕНИЕМ (Failover)

Первый этап:

Перевод бизнес-сервера на шесть микросерверов. Для этого в CxGuardian.ini в [Module0] меняем строку

ModuleName=Cx.BusinessServer.x64.exe

на 6 этих строк:

ModuleName=Cx.BusinessServer.Main.x64.exe

ModuleName=Cx.BusinessServer.Reports.x64.exe

ModuleName=Cx.BusinessServer.EMail.x64.exe

ModuleName=Cx.BusinessServer.Messengers.x64.exe

ModuleName=Cx.BusinessServer.Integration.x64.exe

ModuleName=Cx.BusinessServer.WFM.x64.exe

Названия говорят сами за себя. Если один из них (наболевшая тема – выгрузка отчетов) загрузит главный поток длительными операциями, остальные (наболевшие темы – мессенджеры и емейлы) продолжат работать. Каждый из них можно грохнуть – гардиан его поднимет. Фейловер морально к этому готов – паниковать при разовых рестартах не должен.

Второй этап:

Отказ от GUARDIAN. При последнем падении МРСК GUARDIAN вел себя неадекватно – почему-то не стал перезапускать сервер даже по команде из интерфейса. Учитывая, что фейловер и так за всеми процессами следит, я решил дать возможность в крупных проектах от гардиана отказаться.

Для этого достаточно в настройках фейловера включить настройку

"StartWithoutGuardian": true

Тогда фейловер в момент старта сервера вместо старта службы гардиан сам поднимет сервер платформы, телефонии и бизнес-серверы. Необходимые для этого настройки появятся в json-конфиге автоматически, при необходимости можно их поменять:

"CxServerPath": "c:\\Program Files (x86)\\IntelTelecom\\Infinity Call-center X\\Server\\",

"CxServerArgs": "-ORBendPoint giop:tcp::10010",

"BusinessServerPath": "c:\\Program Files (x86)\\IntelTelecom\\Infinity Call-center X\\BusinessServer\\",

"SingleBusinessServerNames": [

"Cx.BusinessServer.x64",

"Cx.BusinessServer.x86",

"Cx.BusinessServer"

],

"MultiBusinessServerNames": [

"Cx.BusinessServer.Main.x64",

"Cx.BusinessServer.Reports.x64",

"Cx.BusinessServer.Messengers.x64",

"Cx.BusinessServer.EMail.x64",

"Cx.BusinessServer.Integration.x64",

"Cx.BusinessServer.WFM.x64"

],

"BusinessServerStartDelaySeconds": 10,

"ModulesRestartTries": 10,

"ModulesRestartDurationMinutes": 2,

"RestartMinIntervalMinutes": 10,

Бизнес-серверы (шесть штук если задано MultiBusinessServerNames или один первый если задано только SingleBusinessServerNames) будут запускаться через BusinessServerStartDelaySeconds=10 секунд после сервера платформы (иначе они не смогут залогиниться к нему). Если падает сервер платформы – как и раньше рестартуется все.

Но если случается второй полный рестарт раньше, чем через RestartMinIntervalMinutes=10 минут – сервер переходит в ошибку (чтобы в результате поднялся резервный сервер).

Если падает один из второстепенных модулей (телефония или один из бизнес-серверов), он перезапускается (телефония сразу, бизнес-сервер через BusinessServerStartDelaySeconds=10 секунд).

Если таких рестартов происходит больше чем ModulesRestartTries=10 за ModulesRestartDurationMinutes=2 минут, будет выполнен полный рестарт. Дальше см. выше – слишком быстрый второй полный рестарт приведет к переходу в ошибку.

Таким образом, рекомендую в больших проектах переходить на мульти-бизнес-серверы и отказываться от гардиана. Гардиан нужно будет запускать вручную только для проведения обновлений (выключая на это время фейловер), в остальное время пусть отдыхает.

Защита сервера Infinity

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

Что касается телефонии, то все атаки начинаются с одного единственного шага, это зарегистрироваться на сервере телефонии как внутренний абонент (оператор) и совершать звонки

Рассмотрим основные схемы развертывания Infinity:

- Сервер Infinity подключен напрямую к Интернет и локальной сети.

На сервере присутствует 2 сетевых интерфейса: внутренний и внешний.

Для защиты сервера необходимо:

На сетевом экране (firewall), установленном на сервере Infinity, разрешить доступ к внешнему интерфейсу только строго определенному перечню IP-адресов и портов, всем остальным доступ запретить

Не использовать стандартные порты для распространенных протоколов (например, 5060 для SIP и 3389 для RDP)

Не использовать простые значения при формировании номерного плана такие как 1111, 2222, 1000 и т.д.

- Сервер Infinity подключен к маршрутизатору, который в свою очередь подключен к Интернет и локальной сети

На сетевом экране (firewall) маршрутизатора разрешить доступ к внешнему интерфейсу (WAN) только строго определенному перечню IP-адресов и портов, всем остальным доступ запретить

Не использовать стандартные порты для распространенных протоколов (например, 5060 для SIP и 3389 для RDP)

Не использовать простые значения при формировании номерного плана такие как 1111, 2222, 1000 и т.д.

- Сервер Infinity находится в локальной сети, доступ к которой осуществляется по VPN каналу.

На сетевом экране (firewall) маршрутизатора (если VPN аппаратный) или внешнего интерфейса сервера (если VPN программный, развернут на сервере) разрешить доступ только строго определенному перечню IP-адресов, которые выделили под VPN клиентов

Не использовать стандартные порты для распространенных протоколов (например, 5060 для SIP и 3389 для RDP)

Не использовать простые значения при формировании номерного плана такие как 1111, 2222, 1000 и т.д.

Ниже перечислено несколько условий, соблюдение которых увеличит степень защищенности Вашей телефонии

IP-узлы, соответствующие устройствам IP-провайдер и IP-абоненты, создаем на разных IP-адресах. Разнесение разных IP-узлов по разным IP-адресам оправдано даже, несмотря на то, что Microsoft не рекомендует использования нескольких IP-адресов на одном интерфейсе.

для IP-узлов, соответствующих устройствам IP-провайдер и IP-абоненты, используем непересекающиеся диапазоны портов. Например, для IP-узла, устройства IP-провайдер, диапазон портов 5000-5900, а для IP-узла IP-абонентов диапазон портов 7000-7900 с сигнальным портом 7060.

Сервер IP-телефонии Infinity подключается к сети интернет через маршрутизатор.

На маршрутизаторе обеспечивается прямой проброс только сигнальных портов, необходимых для работы IP-провайдера

Голосовые порты, по которым идет голос, пробрасываются как триггерные порты.

Если подключается IP-провайдер, желательно использовать транк с регистрацией