Рассмотрим распространенную административную задачу: в организации имеется один аппаратный сетевой USB-ключ защиты (например, на 100 пользователей) и два независимых физических сервера 1С, не объединенных в кластер. При этом один из серверов выполняет роль терминального сервера (RDP), где запущены клиентские приложения 1С. Разберем, как правильно настроить менеджер лицензий HASP License Manager и серверные базы 1С, чтобы лицензии запрашивались только серверами приложений, а тонкие и толстые клиенты не захватывали их напрямую.
Перед тем как переходить к техническим настройкам, проанализируем разницу в механизмах подсчета аппаратных лицензий:
Два самостоятельных сервера 1С могут без проблем работать с одним общим ключом защиты через сетевой менеджер HASP LM (по умолчанию использует порт 475 UDP/TCP). Оба сервера будут параллельно обращаться к менеджеру и забирать лицензии из единого пула на 100 пользователей.
Чтобы клиентские приложения на терминальном сервере или пользовательских ПК не запрашивали лицензии напрямую у HASP LM, отключим использование аппаратного ключа на стороне клиента. Выясним, как это сделать разными способами:
1CEStart.cfg (находящемся в каталоге %AppData%\1C\1CEStart или %ProgramData%\1C\1CEStart) установим параметр:
UseHWLicenses=0
/UseHwLicenses-
После реализации этих настроек клиент 1С прекратит попытки найти драйвер HASP локально или через сетевой broadcast-запрос и сразу обратится к серверу 1С за получением лицензии.
Разберем настройки платформ 1С для выполнения централизованной выдачи. В свойствах каждой информационной базы на каждом из двух серверов 1С необходимо убедиться в активности функции выдачи лицензий:
Для гарантированной связи сервера 1С с менеджером лицензий HASP LM перейдем к настройке файла nethasp.ini, расположенного в каталоге установленной платформы на сервере (например, C:\Program Files\1cv8\conf или в каталоге службы 1С). Зададим точный IP-адрес сервера, где установлен аппаратный ключ:
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.20
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Параметр NH_USE_BROADCAST = Disabled исключает лишний широковещательный трафик в локальной сети, ускоряя процесс инициализации сеанса.
Чтобы заблокировать прямые сетевые запросы от рабочих станций к менеджеру лицензий и оставить возможность подключения только для двух серверов 1С, настроим файл nhsrv.ini на узле, где физически установлен USB-ключ.
В секцию [NHS_SERVER] добавим параметр NHS_IP_LIMIT с указанием IP-адресов наших двух серверов 1С:
[NHS_SERVER]
NHS_IP_LIMIT = 192.168.0.10, 192.168.0.20
Проанализируем результат: менеджер лицензий будет принимать сетевые соединения по порту 475 исключительно от хостов 192.168.0.10 и 192.168.0.20. Любые прямые запросы от пользователей или RDP-сессий будут отклоняться.
Дополнительно рекомендуется настроить правила сетевого экрана (Брандмауэра Windows): закрыть входящий порт 475 (UDP/TCP) для всех IP-адресов подсети, за исключением адресов серверов 1С.
Посмотрим на важный нюанс: если терминальный сервер RDP и один из серверов 1С совмещены на одном физическом компьютере, локальный драйвер HASP может быть доступен клиентским процессам напрямую через системные вызовы ОС (минуя сетевые ограничения HASP LM). В такой конфигурации критически важно строго отключать использование аппаратного ключа на клиентах (ключ /UseHwLicenses- или UseHWLicenses=0 в 1CEStart.cfg).
Для идеальной изоляции рекомендуем выносить менеджер лицензий HASP LM на отдельный виртуальный узел или использовать аппаратные сетевые USB-концентраторы (USB-over-IP).