Проблемы с аппаратными ключами защиты HASP — одна из самых частых задач системного администратора при поддержке инфраструктуры 1С. Ситуация усложняется, когда в одной сети используются ключи разных поколений (старые H4 Net20 217-61 и новые модели), а серверная часть работает на операционных системах семейства Linux. Рассмотрим подробно, как провести диагностику, выявить причины неработоспособности ключа и правильно настроить распределение лицензий. Для решения сопутствующих вопросов пригодится справочник по системному администрированию 1С под ОС Windows и Linux.
Прежде всего, разберем критически важный нюанс: ограничение на количество ключей одной серии. В экосистеме 1С ключи маркируются сериями, например, ORGL8 (пользовательские ключи). По умолчанию один менеджер лицензий (HASP License Manager) на одном компьютере физически не может обслуживать более одного ключа одной серии. Если вы воткнете два ключа по 20 лицензий ORGL8 в один сервер, система «увидит» только один из них, и вместо 40 лицензий вы получите только 20.
Проанализируем состав ключей из рассматриваемого случая:
H4 Net20 217-61 (старый формат, прошивка 2.17).Net20 (новый формат).Для корректной работы 40 сетевых лицензий нам необходимо разнести ключи по разным физическим или виртуальным машинам, либо использовать возможности сервера 1С по захвату локального ключа. Выясним, почему это важно: сервер 1С может напрямую работать с одним локально установленным ключом и одновременно обращаться к менеджеру лицензий HASP LM в сети за вторым ключом.
Если ключ работает локально (база запускается на том же компьютере, где стоит ключ), но не виден по сети, это не означает аппаратную поломку «сетевого интерфейса» ключа. В USB-ключах HASP нет отдельного сетевого модуля — это смарт-карта. Если локальный запуск успешен, значит, чип исправен. Проблема кроется в уровне драйверов или настройках широковещательных запросов.
Рассмотрим шаги для проверки видимости ключа:
AKS Monitor должна видеть не только запущенную службу HASP LM, но и сам ключ внутри этой службы. Если сервис виден, а ключ — нет, значит, драйвер менеджера лицензий не смог инициализировать таблицу лицензий из памяти ключа.http://localhost:1947. В разделе Sentinel Keys должен отобразиться ваш ключ. Если в колонке Location указано Local, а в разделе Products пусто — старая прошивка ключа (например, 2.17) конфликтует с новой версией драйвера Runtime.Работа со старыми ключами Net20 217-61 на Linux часто вызывает трудности. Выясним причину: современные ядра Linux и драйверы sentinel-runtime могут некорректно обрабатывать старые дескрипторы ключей. Рассмотрим последовательность действий для настройки:
1. Установка драйверов: Рекомендуется использовать пакеты от специализированных поставщиков, например, Etersoft, которые адаптированы под российские реалии использования HASP. Проверим наличие ключа в системе командой lsusb. Мы должны увидеть устройство с ID 0529:0001 Aladdin Knowledge Systems HASP v1.1.
2. Настройка демона hasplmd: Конфигурационный файл обычно находится по пути /etc/hasplm/hasplm.conf. Убедимся, что сервер 1С имеет права на чтение устройства. Если сервер 1С 8.2 или 8.3 не видит локальный ключ, попробуйте поменять ключи местами (рокировка), как это было сделано в успешном решении проблемы. Старые ключи иногда лучше определяются именно при прямом обращении сервера 1С через низкоуровневые драйверы, в то время как менеджер лицензий на Windows (HASP LM) лучше справляется с новыми прошивками.
Когда автоматический поиск (Broadcast) не срабатывает из-за особенностей сетевого экрана или сегментации сети, нам необходимо «натравить» клиентское приложение на конкретный IP-адрес. Разберем настройку файла nethasp.ini, который находится в папке conf или в каталоге установки 1С.
Настроим секцию NH_TCPIP следующим образом:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
;; Указываем конкретный IP-адрес машины, где установлен ключ и HASP LM
NH_SERVER_ADDR = 192.168.1.50
;; Отключаем широковещательный запрос, чтобы избежать задержек и ошибок
NH_USE_BROADCAST = Disabled
;; Порт по умолчанию — 475
NH_TCPIP_METHOD = UDP
Важно: Если вы используете несколько ключей одной серии на разных серверах, вы можете перечислить их IP-адреса через запятую в параметре NH_SERVER_ADDR. Это заставит 1С последовательно опрашивать каждый менеджер лицензий.
Если при запуске 1С возникает ошибка «Не найден ключ защиты», нажмем кнопку Подробно. Проанализируем содержимое окна. Нам важны следующие строки:
H0007 — ключ не найден, H0033 — превышено количество подключений).Если в журнале мы видим попытки обращения к правильному IP-адресу, но получаем отказ, проверим порты. Порт 475 (UDP и TCP) должен быть открыт в обе стороны. На Windows-машинах, раздающих лицензии, часто требуется вручную создать правило в Брандмауэре для программы hasplms.exe.
В ходе обсуждения выяснилось, что установка старого ключа в Linux-сервер, а нового — в Windows-машину с HASP LM, решила проблему. Проанализируем, почему это произошло. Старый ключ Net20 217-61 имеет особенности микропрограммы, которые могут блокировать его трансляцию через современный сетевой менеджер Sentinel LDK. Однако сервер 1С, обращаясь к ключу напрямую как к локальному устройству через драйвер Sentinel Runtime, обходит сетевые протоколы обмена и успешно считывает лицензии. В то же время новый ключ корректно обрабатывается стандартным сетевым менеджером на Windows, обеспечивая доступ остальным пользователям.
Таким образом, при возникновении подобных проблем рекомендуем следовать алгоритму:
nethasp.ini.Aladdin Monitor для подтверждения того, что менеджер лицензий «видит» именно память ключа, а не только факт своего запуска.