Как разделить и ограничить использование лицензий 1С между двумя серверами

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При администрировании инфраструктуры 1С:Предприятие часто возникает задача разделения ресурсов лицензирования. Типичный сценарий: в организации развернуто два сервера 1С. На первом сервере (Сервер №1) установлены как программные лицензии, так и подключены аппаратные USB-ключи защиты HASP. Второй сервер (Сервер №2) должен использовать исключительно собственные программные лицензии, не затрагивая аппаратные ключи первого сервера.

Если оставить настройки по умолчанию, то тонкие клиенты при подключении к базам на Сервере №2 начнут опрашивать локальную сеть по широковещательным запросам и могут занять аппаратные лицензии с Сервера №1. Это приведет к нехватке лицензий на первом сервере и нерациональному использованию ресурсов. В данной статье мы подробно разберем, как жестко разграничить потоки получения лицензий для каждого сервера.

Понимание механизмов раздачи лицензий 1С

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

  1. Локальные программные лицензии (файлы с расширением .lic на компьютере пользователя).
  2. Локальный однопользовательский аппаратный ключ (USB-ключ, вставленный непосредственно в компьютер пользователя).
  3. Многопользовательские аппаратные ключи HASP в локальной сети (поиск осуществляется через HASP License Manager).
  4. Лицензии, выдаваемые сервером 1С:Предприятия (когда сервер сам забирает лицензию из своего пула программных или аппаратных лицензий и передает ее сеансу пользователя).

Наша главная задача — сделать так, чтобы пользователи Сервера №2 получали лицензии только по четвертому пункту (непосредственно от своего сервера) и физически не могли выполнить поиск по третьему пункту (сетевые USB-ключи на Сервере №1).

Рассмотрим по шагам два основных сценария решения этой задачи в зависимости от архитектуры вашей сети.

---

Сценарий 1: Серверы работают независимо (разные кластеры)

Если ваши серверы представляют собой две независимые машины в разных кластерах 1С, выполним последовательную настройку на стороне сервера и на стороне клиентов.

Шаг 1. Настройка раздачи лицензий самим сервером 1С

Для того чтобы Сервер №2 самостоятельно выдавал лицензии из своего программного пула, мы должны явно разрешить ему это делать в настройках каждой информационной базы.

Выполним следующие действия:

  1. Откроем консоль «Администрирование серверов 1С:Предприятия».
  2. Перейдем к списку информационных баз на Сервере №2.
  3. Откроем свойства нужной информационной базы.
  4. Найдем параметр «Разрешить выдачу лицензий сервером 1С:Предприятия» и установим его в значение «Да» (по умолчанию во многих конфигурациях может стоять «Нет» или «Авто»).

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

Шаг 2. Отключение поиска аппаратных ключей на стороне клиентов

Даже если сервер настроен на выдачу лицензий, тонкий клиент по умолчанию пытается найти локальные или сетевые USB-ключи. Чтобы запретить клиентам Сервера №2 опрашивать сеть на наличие HASP-ключей, необходимо изменить параметры их запуска.

Для этого мы можем использовать два метода:

Метод А. Индивидуальная настройка базы в окне запуска.
В окне со списком информационных баз выберем нужную базу, нажмем кнопку «Изменить» и на последней вкладке в поле «Дополнительные параметры запуска» пропишем ключ защиты:

/UseHwLicenses-

Этот параметр указывает платформе полностью игнорировать наличие любых аппаратных ключей при запуске данной информационной базы.

Метод Б. Глобальное отключение через файл конфигурации.
Если пользователей много, настраивать каждую базу вручную неудобно. Мы можем внести изменения в общий конфигурационный файл 1CEStart.cfg, который располагается по пути: %ProgramData%\1C\1CEStart\1CEStart.cfg (для всех пользователей компьютера) или %AppData%\Roaming\1C\1CEStart\1CEStart.cfg (для текущего пользователя).
Откроем файл любым текстовым редактором и добавим в него строку:

UseHWLicenses=0

После этого все базы, запускаемые на данном компьютере, по умолчанию перестанут искать USB-ключи.

Шаг 3. Настройка файла nethasp.ini на Сервере №2

Иногда сам сервер 1С (процесс rphost) при нехватке лицензий или при определенных условиях запуска фоновых заданий может инициировать поиск сетевых аппаратных ключей в локальной сети. Чтобы полностью изолировать Сервер №2 от аппаратных ключей Сервера №1, отредактируем файл конфигурации сетевого драйвера HASP — nethasp.ini.

Этот файл обычно находится в каталоге установленной платформы на сервере: C:\Program Files\1cv8\conf\nethasp.ini (или в папке менеджера лицензий, если он установлен). Если файла нет в папке conf, его можно скопировать туда из шаблонов или создать вручную.

Проанализируем структуру файла и внесем изменения в секцию [NH_COMMON], принудительно отключив все сетевые протоколы поиска ключей:


[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Disabled

Сохраним изменения. Теперь процесс rphost на Сервере №2 физически не сможет отправить сетевой запрос к службе HASP License Manager на Сервере №1.

Шаг 4. Блокировка на уровне сетевого экрана (Firewall)

Для обеспечения стопроцентной гарантии изоляции настроим правила безопасности в локальной сети. Сетевые ключи защиты HASP обмениваются информацией по порту 475 (используются протоколы UDP и TCP).

Выполним настройку брандмауэра (Windows Firewall или аппаратного роутера в вашей сети):

  1. Создадим правило, блокирующее любой исходящий трафик с Сервера №2 на порт 475 Сервера №1.
  2. Для рабочих станций пользователей, которые должны работать только на Сервере №2, также заблокируем доступ к порту 475 Сервера №1.

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

---

Сценарий 2: Серверы объединены в один многомашинный кластер

Рассмотрим другую ситуацию: Сервер №1 и Сервер №2 работают в рамках единого кластера 1С. В этом случае нам не нужно переписывать файлы на компьютерах пользователей. Мы можем управлять распределением лицензий централизованно через консоль администрирования кластера.

Для решения нашей задачи мы настроим Требования назначения функциональности. Обратите внимание, что эта возможность полноценно доступна при наличии лицензий уровня КОРП.

Разберем процесс настройки по шагам:

  1. Откроем консоль администрирования кластера 1С.
  2. Перейдем в ветку «Рабочие серверы».
  3. Для Сервера №1 создадим требование назначения функциональности:
    • Объект требования: Сервис лицензирования.
    • Тип требования: Назначать.
    • Имя информационной базы: указываем базы, работающие на Сервере №1.
  4. Для Сервера №2 создадим аналогичное требование:
    • Объект требования: Сервис лицензирования.
    • Тип требования: Назначать.
    • Имя информационной базы: указываем базы, работающие на Сервере №2.
  5. Применим требования назначения функциональности для кластера.

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

---

Особенности работы с несколькими аппаратными ключами одной серии

В процессе обсуждения на форумах часто всплывает важный нюанс, который необходимо учитывать администраторам. Рассмотрим ситуацию: на одном сервере пытаются использовать два сетевых USB-ключа (например, два ключа по 10 лицензий серии ORGL8).

Важно помнить: стандартный HASP License Manager на одном физическом или виртуальном сервере не может одновременно раздавать лицензии с двух ключей одинаковой серии. Он «увидит» только один из них, а второй ключ будет проигнорировать.

Чтобы обойти это ограничение и заставить работать несколько ключей:

---

Резюме и рекомендации

Мы подробно разобрали, как изолировать лицензии между двумя серверами 1С. Подведем итоги наших действий:

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

← На главную