При развертывании системы 1С:Предприятие на сервере под управлением операционной системы Windows Server (в нашем случае рассматривается Windows Server 2012) администраторы часто сталкиваются с аппаратными ключами защиты HASP. Если платформа устанавливается не как сервер приложений, а базы данных работают в файловом режиме (например, конфигурация 1С:Зарплата и Управление Персоналом), возникает множество неочевидных нюансов. Особенно остро проблемы проявляются, когда пользователи работают в терминальных сессиях (RDP).
В этой статье мы подробно разберем, почему возникает ошибка поиска лицензий, рассмотрим принципы работы аппаратной защиты в терминальной среде, а также приведем пошаговую инструкцию по установке, тонкой настройке и мониторингу аппаратных ключей.
Рассмотрим классическую ситуацию, описанную пользователем. На сервер установлена платформа 1С:Предприятие 8.3. В USB-порт сервера вставлен сетевой многопользовательский ключ (маркировка H4 NET5 ORGL8 на 5 пользователей). Ключ светится, Windows определяет его в диспетчере устройств. Однако при запуске базы в терминальной сессии система выдает критическую ошибку:
Warning=15, ORGL8 Сетевой, не установлен
Проанализируем эту диагностическую запись. Код Warning=15 (или полный лог: Net Status=0, System Error=0, Warning=15) на техническом языке разработчиков системы защиты Sentinel HASP означает следующее: «Менеджер лицензий не найден» или «Менеджер лицензий не отвечает».
Это указывает на то, что сама платформа 1С успешно прочитала конфигурационный файл настроек защиты nethasp.ini, поняла, что ей нужно искать сетевой ключ, но при попытке отправить сетевой запрос не получила ответа. Выясним, почему так происходит и как это исправить.
Перед тем как перейти к настройке, необходимо четко понимать базовое ограничение технологии HASP:
Таким образом, просто вставить сетевой ключ в USB-разъем сервера недостаточно. Без установленной и запущенной службы HASP LM раздача лицензий в терминале осуществляться не будет.
Рассмотрим по шагам весь процесс подготовки сервера к работе с аппаратным ключом.
Вставьте аппаратный USB-ключ в свободный порт сервера. Убедитесь, что светодиод внутри ключа горит ровным красным светом. Если ключ не горит, возможно, отключен сам USB-порт в настройках BIOS/UEFI сервера, либо порт неисправен.
Далее необходимо установить актуальный драйвер защиты (Sentinel HASP Run-time Installer) — в этом поможет автоматизация установки драйверов и ПО на сервера. Скачать его можно с официального сайта технологической поддержки 1С (ИТС) или с сайта производителя Aladdin/Thales. Настоятельно рекомендуется использовать установщик командной строки (Command Line Installation), так как он работает наиболее стабильно на серверных ОС.
Для установки драйвера запустите командную строку от имени администратора и выполните команду:
haspdinst.exe -i
После завершения установки в диспетчере устройств Windows в ветке «Контроллеры USB» (Universal Serial Bus controllers) должны появиться три устройства: Sentinel 3 Key Dongle, Sentinel HASP Key и Sentinel USB Key.
Для раздачи сетевых лицензий скачайте утилиту HASP HL License Manager. При установке программа предложит два варианта работы: в качестве обычного приложения (Application) или в качестве системной службы (Service).
Обязательно выбирайте установку в качестве службы (Service)! Это гарантирует, что менеджер лицензий будет запускаться автоматически при старте физического сервера, независимо от того, зашел ли какой-либо администратор в систему.
После завершения установки в списке служб Windows (Services.msc) должна появиться служба с именем HASP Loader (исполняемый файл nhsrvice.exe). Убедитесь, что тип запуска установлен в положение «Автоматически», а состояние службы — «Выполняется».
Менеджер лицензий взаимодействует с платформой 1С по сети. По умолчанию для обмена данными используется сетевой порт 475 по протоколам UDP и TCP. Если на сервере включен брандмауэр Windows (что является стандартом безопасности), он заблокирует эти запросы, и пользователи получат ту самую ошибку Warning=15.
Создадим разрешающее правило в Брандмауэре Windows:
475. Нажмите «Далее».1C HASP LM (TCP).475 (назовите его 1C HASP LM (UDP)).Альтернативный и более надежный вариант — разрешить любую сетевую активность непосредственно для исполняемого файла службы C:\Windows\System32\nhsrvice.exe (или пути, куда была установлена служба HASP Loader).
По умолчанию платформа 1С пытается найти менеджер лицензий в локальной сети с помощью широковещательных (broadcast) запросов. В сложных корпоративных сетях, где сервер и клиенты находятся в разных подсетях, маршрутизаторы блокируют широковещательный трафик. Из-за этого запуск 1С может занимать до нескольких минут (программа долго опрашивает сеть) или завершаться ошибкой — для диагностики есть комплексный мониторинг производительности и ошибок 1С.
Чтобы ускорить запуск платформы до нескольких секунд, мы жестко пропишем адрес сервера лицензий в файле настроек защиты. Этот файл называется nethasp.ini.
В зависимости от разрядности платформы и операционной системы, файл по умолчанию находится по путям:
C:\Program Files\1cv8\conf\nethasp.iniC:\Program Files (x86)\1cv8\conf\nethasp.iniОткройте файл nethasp.ini с помощью текстового редактора (запущенного от имени администратора) и приведите разделы [NH_COMMON] и [NH_TCPIP] к следующему виду (раскомментируйте нужные строки, убрав символ точки с запятой):
[NH_COMMON]
NH_TCPIP = Enabled ; Разрешаем использование протокола TCP/IP
[NH_TCPIP]
NH_SERVER_ADDR = 127.0.0.1 ; IP-адрес сервера, где установлен ключ и служба HASP LM
NH_PORT_NUMBER = 475 ; Стандартный порт HASP
NH_TCPIP_METHOD = UDP ; Метод обмена (UDP работает быстрее)
NH_USE_BROADCAST = Disabled ; Отключаем долгий широковещательный поиск по всей сети
Важное примечание: Если пользователи работают на том же сервере, где физически установлен ключ (в терминальном режиме), в параметре NH_SERVER_ADDR мы указываем петлевой адрес 127.0.0.1. Если же база файловая, но пользователи запускают 1С со своих локальных компьютеров, то в файлах nethasp.ini на их рабочих станциях необходимо прописать реальный статический IP-адрес сервера в локальной сети (например, 192.168.1.100).
Отключение широковещательного поиска (NH_USE_BROADCAST = Disabled) мгновенно убирает задержку при запуске программы.
Проанализируем технические особенности эксплуатации аппаратной защиты, знание которых убережет администратора от потери времени.
Очень распространенная ошибка администрирования: попытка установить два сетевых ключа одной серии на один физический сервер. Например, если у вас есть ключ на 5 пользователей (серия ORGL8) и компания докупила еще один ключ на 10 пользователей той же серии ORGL8.
Техническое ограничение: Драйвер защиты HASP не умеет суммировать лицензии с двух ключей одинаковой серии на одном компьютере! Менеджер лицензий распознает и задействует только один из них (выбранный случайным образом). Второй ключ будет просто светиться, но лицензии с него раздаваться не будут.
Как решить эту проблему?
nethasp.ini адреса серверов перечисляются через запятую в параметре NH_SERVER_ADDR: NH_SERVER_ADDR = 192.168.1.100, 192.168.1.101ORGL8 (основная многопользовательская), ORG8A (дополнительная многопользовательская) и ORG8B (еще одна дополнительная многопользовательская). Они не конфликтуют друг с другом.Для администрирования и оперативного контроля занятых лицензий рекомендуется использовать бесплатную утилиту от разработчика защиты — HASP HL Monitor (известную также как AKS Monitor). Для этой задачи есть обработка для принудительного завершения сеансов 1С.
Установив эту утилиту на любой компьютер администратора, вы сможете в реальном времени подключаться к службе HASP LM по IP-адресу сервера и видеть:
Поскольку в рассматриваемом вопросе база является файловой, а пользователи работают в терминальной сессии, действует важнейшее экономическое преимущество аппаратных сетевых ключей:
Сетевой ключ, раздаваемый через HASP LM, лицензирует рабочее место (в данном случае — терминальную сессию). Если пользователь зашел на сервер по RDP и запустил внутри своей сессии три разные базы данных 1С (или три окна одной базы), менеджер лицензий HASP LM выдаст ему всего одну лицензию на всю терминальную сессию.
При использовании современной программной защиты (пин-кодов) по умолчанию лицензируется каждый запуск (каждый сеанс), что привело бы к расходу трех лицензий в аналогичной ситуации. Таким образом, использование аппаратного HASP-ключа в связке с терминальным сервером позволяет существенно экономить лицензии компании.