При масштабировании ИТ-инфраструктуры предприятия системные администраторы часто сталкиваются с ситуацией, когда в одной локальной сети функционируют несколько серверов приложений 1С. В таких условиях хаотичное распределение аппаратных (HASP) и программных лицензий может привести к нестабильной работе пользователей, конфликтам платформ и даже к финансовым потерям из-за неоптимального расхода клиентских ключей. В этой статье мы подробно разберем, как жестко привязать выдачу лицензий к конкретным серверам 1С, настроить конфигурационные файлы менеджера лицензий и избежать блокировок из-за использования нелицензионного ПО.
Прежде чем переходить к техническим настройкам, проанализируем важный экономический аспект, который упоминается в обсуждении. Существует два принципиально разных механизма раздачи лицензий, и выбор между ними напрямую влияет на то, сколько ключей вам потребуется приобрести.
Вариант 1. Выдача лицензий через HASP License Manager (на уровне клиентских рабочих станций). В этом режиме клиентское приложение (толстый или тонкий клиент) самостоятельно ищет ключ защиты в локальной сети. Лицензия привязывается к физическому рабочему месту (компьютеру). Если один и тот же пользователь на своем ПК одновременно запускает три разные информационные базы 1С (например, Бухгалтерию, ЗУП и УТ), то HASP License Manager спишет из пула всего 1 лицензию.
Вариант 2. Раздача лицензий сервером приложений 1С. Если в настройках информационной базы включена опция "Разрешить выдачу лицензий сервером 1С:Предприятия", то сервер сам забирает лицензии из доступных ему ключей и распределяет их. Однако в этом режиме лицензирование происходит по сеансам. Если один пользователь запустит те же три информационные базы, сервер 1С спишет из пула 3 лицензии (по одной на каждый сеанс).
Выясним причину, почему простое отключение менеджеров лицензий на серверах и перевод всех баз на раздачу сервером (как предлагалось в Сообщении 1) может парализовать работу. Если в компании более 100 активных пользователей, работающих одновременно в нескольких базах, такой переход мгновенно вызовет острый дефицит лицензий и потребует закупки дополнительных дорогостоящих комплектов программных или аппаратных ключей. Поэтому наиболее эффективным решением является тонкая настройка и изоляция менеджеров лицензий HASP.
По умолчанию все службы HASP License Manager в локальной сети запускаются с одинаковыми параметрами и именами. Из-за этого клиентские компьютеры выполняют широковещательный поиск (Broadcast) и хаотично подключаются к первому ответившему менеджеру лицензий. Чтобы исправить это, нам необходимо присвоить каждому менеджеру уникальное сетевое имя.
Рассмотрим, как настроить конфигурационный файл nhsrv.ini на стороне серверов лицензирования. Этот файл располагается в каталоге установки HASP License Manager (обычно это путь к установленной службе или папка System32 / SysWOW64).
Откроем файл nhsrv.ini на первом сервере (Srv1) и зададим ему уникальное имя (не более 7 символов латиницей):
[NHS_SERVER]
NHS_USERLIST = 250
NHS_SERVERNAME = Srv1LM
Аналогично на третьем сервере (Srv3) откроем его файл nhsrv.ini и пропишем имя менеджера лицензий для него:
[NHS_SERVER]
NHS_USERLIST = 250
NHS_SERVERNAME = Srv3LM
После внесения изменений обязательно перезапустим службу HASP Loader на обоих серверах, чтобы новые имена применились в сети.
Теперь настроим клиентские компьютеры (или сами серверы 1С, если они выполняют роль клиентов при получении лицензий) таким образом, чтобы они искали ключи только на строго определенных серверах. Для этого используется файл конфигурации nethasp.ini, который располагается на рабочих станциях в каталоге установки платформы 1С (например, в папке C:\Program Files\1cv8\conf\).
Проанализируем ситуацию: если мы просто укажем IP-адрес нужного сервера в параметре NH_SERVER_ADDR, но оставим включенным широковещательный поиск, система все равно сможет получать лицензии с "соседних" серверов, если на основном сервере возникнет задержка отклика.
Разберем правильный пример настройки nethasp.ini для пользователей, которые должны работать исключительно с лицензиями сервера Srv1 (IP-адрес, к примеру, 192.168.1.11):
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.11
NH_SERVER_NAME = Srv1LM
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = TCP
Обратите внимание на критически важный параметр NH_USE_BROADCAST = Disabled. Мы принудительно отключаем широковещательный поиск по сети. Теперь клиентское приложение будет обращаться по протоколу TCP напрямую к менеджеру лицензий с именем Srv1LM по указанному IP-адресу. Оно физически "не увидит" ключи, расположенные на Srv3.
В ходе обсуждения (Сообщение 7) выясняется, что на одном из серверов (Srv3) установлен эмулятор аппаратного ключа. То, что новая платформа на Srv1 до сих пор успешно работала, получая лицензии от эмулятора на Srv3 — это временная аномалия, которая несет в себе колоссальные риски для стабильности бизнеса.
Начиная с версий платформы 8.3.10.2699 и выше, фирма 1С внедрила многоуровневые механизмы защиты от пиратства. Современные релизы платформы сканируют не только локальный реестр компьютера, но и все доступное сетевое окружение на предмет сигнатур нелегальных служб (таких как драйверы haspflt, эмуляторы Virtual USB Bus и др.).
При обнаружении следов взлома в сети платформа мгновенно выдает неустранимую ошибку "Нарушение целостности системы" и аварийно завершает работу всех сеансов пользователей. Чтобы защитить инфраструктуру от внезапной остановки, необходимо:
Если вы планируете переход на перспективные версии платформы 1С (начиная с релизов 8.5 и старше), вам полезно знать о революционном изменении в архитектуре защиты. Фирма 1С постепенно отказывается от сторонних утилит Sentinel HASP License Manager в пользу собственного программного решения.
Для централизованного управления лицензиями теперь используется новая служба rmlic.exe ("1С:Предприятие – Менеджер Лицензий"). Настройка распределения ключей в ней выполняется гораздо проще и гибче через конфигурационный файл rmlic.cfg:
Quota позволяет жестко лимитировать количество лицензий для конкретных баз или пользователей.ClientDisable дает возможность запретить выдачу лицензий определенным IP-адресам без необходимости настройки каждого клиентского ПК по отдельности.Изучение и своевременное внедрение этих механизмов позволит вам построить отказоустойчивую, прозрачную и абсолютно легальную систему лицензирования 1С любой сложности.