ОТКАЗ ОТ 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-провайдер, желательно использовать транк с регистрацией