При работе сервера 1С:Предприятие в операционных системах семейства Linux администраторы часто сталкиваются с ситуацией, когда при подключении более 10–12 пользователей система начинает выдавать ошибку об отсутствии лицензий. Рассмотрим подробно причину такого поведения платформы, научимся идентифицировать аппаратные ключи защиты и проверим их корректность работы на сервере.
Проанализируем специфику работы платформы 1С на ОС Linux. В отличие от Windows-версии, сервер 1С на Linux может успешно запускаться и принимать первые подключения даже при отсутствии или неработоспособности серверного USB-ключа. Ограничение проявляется динамически: платформа свободно пускает в базу от 10 до 12 пользовательских сеансов, после чего блокирует последующие подключения с сообщением о нехватке лицензий.
Если на вашем сервере наблюдается подобная симптоматика, это прямой признак того, что служба 1С:Предприятия работает в демонстрационном/технологическом режиме и не видит вставленный аппаратный ключ защиты сервера.
Перед диагностикой драйверов необходимо убедиться, что физический ключ защиты соответствует разрядности установленного сервера 1С. Разберем маркировки ключей HASP:
ENSR8 — 32-разрядный ключ защиты сервера 1С:Предприятие.EN8SA — 64-разрядный ключ защиты сервера 1С:Предприятие.ORGL8 — пользовательские сетевые лицензии.Важно: если на 64-битный сервер 1С установлена платформа соответствующей разрядности (x86_64), но в USB-порт вставлен 32-битный ключ ENSR8, сервер не сможет его использовать. Убедитесь с помощью команды uname -a, что архитектура операционной системы и сервера 1С совпадает с типом используемого ключа.
Для того чтобы проверить, видит ли операционная система Linux подключенный USB-накопитель защиты, выполним диагностические команды в консоли.
Воспользуемся утилитой usbkeytest от Eтерсофт для поиска оборудования Aladdin HASP:
# /usr/sbin/usbkeytest --list
ID: 0529:0001, Bus: 003, Device: 003, Major: 189, Minor: 258
# /usr/sbin/usbkeytest --detect
aladdin
Если утилита возвращает ID 0529:0001 и тип aladdin, значит, физически ключ подключен и определяется шиной USB. Если ключ не виден, проанализируем следующие причины:
-pve) необходимо настроить правильный проброс (USB Passthrough) физического порта в виртуальную машину. В случае LXC-контейнеров требуется явно прописать правила для символьных устройств c 189:* в конфигурационном файле контейнера.udev создают корректные права доступа на чтение и запись к файлам устройств в директории /dev/bus/usb/.Даже при правильном определении ключа на шине USB службе 1С могут требоваться запущенные драйверы защиты aksusbd или haspd. Проверим их статус с помощью системного менеджера:
systemctl status aksusbd
systemctl status haspd
Если службы не запускаются или работают некорректно, проанализируем частую причину: отсутствие 32-битных библиотек. Бинарные модули драйверов Sentinel/Aladdin часто требуют наличия 32-битного окружения. В Debian/Ubuntu-системах установите пакет libc6-i386 и сопутствующие библиотеки 32-битной архитектуры.
Если на сервере используется драйвер Sentinel LDK Runtime, работы с ключами можно проконтролировать через веб-интерфейс. Откроем браузер и перейдем по адресу:
http://localhost:1947 или http://<IP_сервера>:1947
В разделе HASP Keys отображаются все обнаруженные ключи, их серии, версии прошивок и количество доступных лицензий. Если ключ отображается в контрольном центре, но 1С его не использует, проверьте настройки файла nethasp.ini, расположенного в каталоге /opt/1C/v8.3/i386/conf/ или /opt/1C/v8.3/x86_64/conf/, чтобы явно указать параметр поиска NH_SERVER_ADDR.