Как настроить USB HASP ключи защиты 1С на Astra Linux 1.7

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

Переход на отечественные операционные системы, такие как Astra Linux Special Edition 1.7, часто сопровождается сложностями при переносе инфраструктуры 1С. Одной из самых острых проблем является корректная работа аппаратных USB-ключей HASP. Рассмотрим подробно, как диагностировать проблемы, настроить раздачу лицензий по сети и что делать, если система выдает ошибку "Sentinel Key Version Not Supported".

Анализ проблемы совместимости: прошивка 2.17

Проанализируем ситуацию, с которой сталкиваются многие администраторы: ключ физически вставлен, драйвер установлен, веб-интерфейс Sentinel Admin Control Center (ACC) на порту 1947 открывается, но напротив ключа значится статус "Sentinel Key Version Not Supported". Выясним причину этого поведения.

Ключи с маркировкой 217-XX (так называемые "красные рыбки" или старые HASP4/HL) имеют микропрошивку версии 2.17. Современные драйверы Sentinel LDK Runtime (версии 8.x и выше), которые поставляются для современных ядер Linux (5.10, 5.15, 6.1), официально прекратили поддержку протоколов обмена с этими устаревшими устройствами. К сожалению, программно "завести" такой ключ на Astra Linux 1.7 практически невозможно. Если вы столкнулись с такой ошибкой, лучшим решением будет физическая замена ключа в офисе "1С" на современный образец (с прошивкой 3.25 или 4.x).

Различие между Sentinel Runtime и HASP License Manager

Разберем важный технический нюанс (важный также при запуске нескольких экземпляров сервера 1С), который часто путают при настройке. Для этого есть утилита управления кластером 1С в среде Linux. Для работы системы защиты 1С требуются два разных компонента, которые в Linux-дистрибутивах могут называться похоже:

  1. Sentinel Runtime (aksusbd, hasplmd): работает на порту 1947 (TCP/UDP). Он отвечает за то, чтобы операционная система "увидела" само устройство и позволила локальным приложениям обращаться к нему.
  2. HASP License Manager (hasplm): работает на порту 475 (UDP/TCP). Этот компонент необходим исключительно для раздачи лицензий по сети клиентским машинам.

Многие современные пакеты haspd для Linux устанавливают только Runtime, из-за чего порт 475 остается закрытым, и сетевые клиенты 1С не могут найти ключ, даже если он виден в ACC. Для решения этой задачи нам потребуется установить корректную версию HASP License Manager (например, версию 7.60, как рекомендует ИТС).

Пошаговая настройка сервера лицензий на Astra Linux

Рассмотрим процесс установки и настройки компонентов на сервере, где физически установлен USB-ключ (в этом поможет сценарий для автоматизации установки 1С). Предположим, что мы используем современный ключ, который корректно определяется системой.

Во-первых, после установки пакета драйверов проверим статус службы haspd:


sudo systemctl status haspd

Если служба активна, но порт 475 не слушается, необходимо проверить наличие бинарного файла hasplm. Проанализируем конфигурационный файл менеджера лицензий hasplm.conf (или nhsrv.ini в зависимости от версии). Для обеспечения стабильной работы в сетевой среде Astra Linux рекомендуется явно разрешить использование протоколов:


; Пример настройки hasplm.conf
NHS_USE_UDP = Enabled
NHS_USE_TCP = Enabled
; Ограничение по IP, если необходимо
; NHS_IP_LIMIT = 192.168.1.0/24

Настройка клиентской части (nethasp.ini)

Теперь разберем, как заставить платформу 1С на клиентских машинах (под управлением Astra Linux или Windows) искать ключ на нашем новом сервере. По умолчанию 1С использует широковещательный запрос (broadcast), который в современных защищенных сетях часто блокируется. Поэтому мы должны настроить файл nethasp.ini.

В Astra Linux этот файл обычно располагается по пути /opt/1cv8/conf/nethasp.ini или в каталоге пользователя. Выполним следующие настройки:


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

[NH_TCPIP]
; Указываем конкретный IP-адрес сервера с ключом
NH_SERVER_ADDR = 192.168.1.10 
NH_PORT_NUMBER = 475
; Отключаем широковещательный поиск для ускорения запуска
NH_USE_BROADCAST = Disabled

Особенности Astra Linux Special Edition (Parsec и права доступа)

Проанализируем ситуацию, когда драйвер запущен, но ключ не определяется из-за политик безопасности. В Astra Linux SE включены механизмы контроля доступа. Для корректной работы драйвера aksusbd может потребоваться добавление правил udev, чтобы устройство было доступно не только пользователю root.

Создадим файл правил /etc/udev/rules.d/99-hasp.rules и добавим туда строки, разрешающие доступ группе floppy или plugdev, в зависимости от настроек вашей системы:


LABEL="hasp_rules"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0529", ATTR{idProduct}=="0001", MODE="0664", GROUP="floppy"

После внесения изменений не забудем перезагрузить правила командой sudo udevadm control --reload-rules.

Решение проблемы "зависших" конфигураций

Как показывает практика, при обновлении драйверов или переустановке менеджера лицензий могут оставаться старые конфигурационные файлы, которые блокируют работу новой службы. Если вы перешли с версии 9.x на 7.60, обязательно убедитесь, что в системе не осталось дублирующих файлов hasplm.conf в разных каталогах (например, в /etc/ и /var/hasplm/).

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

  1. Остановить службы haspd и aksusbd (выполнив рестарт сервера 1С с очисткой сеансовых данных). Для этого подойдёт обработка принудительного завершения сеансов пользователей.
  2. Переименовать или удалить старые директории конфигурации.
  3. Перезапустить службу и проверить логи командой journalctl -u haspd.

Альтернативные методы: USB-over-IP

Если нам так и не удалось победить совместимость старого ключа 2.17 с ядром 6.1 или 5.15, а замена ключа невозможна в ближайшее время, рассмотрим обходной путь. Можно оставить ключ в Windows-сервере и "пробросить" его на Astra Linux с помощью технологий USB-over-IP (например, usbip или коммерческие решения типа VirtualHere).

В этом случае на Astra Linux устанавливается клиентская часть, которая монтирует удаленный USB-порт как локальный. Для системы 1С это будет выглядеть так, будто ключ вставлен непосредственно в USB-разъем машины с Astra Linux. Это позволяет избежать проблем с настройкой hasplm на Linux, так как будет использоваться стандартный локальный опрос ключа.

Итоги и рекомендации

Подведем итог нашему исследованию. Для успешной работы HASP на Astra Linux 1.7 необходимо:

Помните, что сервер приложений 1С (если он установлен на Linux) сам может выступать в роли "потребителя" лицензий из локального ключа, но для раздачи лицензий пользователям в файловом режиме наличие работающего hasplm на 475 порту является обязательным условием.

← На главную