HASP Linux по сети в 1С

HASP USB NET LINUX

В этой статье речь пойдет об установке сетевого менеджера лицензий HASP на сервер под управлением ALTLinux для нужд лицензирования пользовательских сессий 1С. Конечным результатом будет раздача ключа HASP Linux сервера на клиенты 1С под Windows.

Для чего всё это нужно

Зачем это нужно в 2024 году вопрос закономерный. В нашем конкретном случае перестало хватать «электронных» лицензий (которые кстати говоря работают тоже с интересными особенностями), но у нас были с давних времен несколько аппаратных ключей с лицензиями. Чтобы не покупать новые клиентские лицензии было принято решение задействовать эти старые ключи.

Задача тривиальная и не то чтобы претендует на отдельную заметку и инструкцию, но чтобы было интереснее я решил разворачивать всё на Linux, а чтобы было ещё интереснее на отечественном дистрибутиве.

Данная заметка — это, скорее, фиксирование опыта использования JeOS AltLinux в качестве серверного дистрибутива на замену привычной Ubuntu. Установка ключа HASP Linux сервера для раздачи лицензий по сети клиентам 1С на Windows мне показалась интересной задачей.

Схема развертывания

Как я уже написал в заголовке решение было принято разворачивать всё это на Linux, а в условиях санкций выбор отдавался в пользу отечественных решений. Поскольку я привык всё разворачивать на Ubuntu Server, мне хотелось чего-то подобного (в плане бесплатности и богатого репозитория) только от отечественного производителя.

На первый взгляд ни один отечественный дистрибутив не предлагает подобного решения, однако я нашёл в документации ALTLinux подходящий вариант starterkit JeOS. Данный вариант представляет из себя по сути только базовую систему, распространяется под лицензией GPL и доступен для свободной загрузки и неограниченного применения (ссылка).

Для работы ключа много ресурсов не потребуется, по этому я сделал виртуальную машину с 1 ядром процессора, 1 гигабайтом ОЗУ и 30 Гб диска. Диска можно было бы и меньше (как и памяти), но как показала практика установщик JeOS требует минимум 21 Гб для корневой файловой системы, а я люблю всё округлять до десятков. Для чего такие требования прописали в установщик пока остается загадкой, поскольку после установки на корневой файловой системе по прежнему свободно 25Гб.

Исходя из количества ОЗУ было принято решение использовать 32-х битный вариант архитектуры операционной системы (с индексом i586). Теоретически это сэкономит оперативную память.

Установка и настройка сервера JeOS

Сам процесс установки я опущу, поскольку он тривиальный. Всё что вам нужно будет сделать — это разбить диск, установить загрузчик, установить пароль учетной записи root. Единственное, что немного резануло глаз, так это то, что установщик запускался в графическом режиме, но это скорее всего следствие универсальности — один установщик для всех дистрибутивов.

После установки первым делом необходимо настроить сеть. Для этого переходим в /etc/net/ifaces и создаем там папку с именем интерфейса. Посмотреть список интерфейсов можно традиционной командой ip a. Например в моём случае сетевой интерфейс именовался ens160, папку с таким именем и создаем.

cd /etc/net/ifaces
mkdir ens160
cd ens160

Внутри папки необходимо создать файл options, поскольку это голая базовая система, то до настройки сети и установки человеколюбивого текстового редактора у нас есть только vim. Ну или как вариант можно использовать echo, если вы не знаете как выходить из vim.

vim options

В файле необходимо прописать настройки интерфейса. Например если у вас в сети есть DHCP достаточно следующих параметров:

MODULE=vmxnet3
TYPE=eth
BOOTPROTO=dhcp

Здесь MODULE — это модуль ядра для интерфейса, зачастую можно не писать, TYPE — тип интерфейса, без указания интерфейс не поднимается. BOOTPROTO — протокол назначения адреса. Последняя строка в этом файле обязательно должна быть пустой. Если адрес предусмотрен статический, то задать его можно создав в той же папке файл ipv4address. В него следует вписать адрес и маску, например:

vim ipv4address
10.0.0.20/24

Маршрут по умолчанию задается в файле ipv4route следующим образом:

vim ipv4route
default via 10.0.0.254

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

systemctl restart network

Затем необходимо настроить осмысленный hostname, поскольку установщик генерирует что-то случайное. Для этого по новому используем команду hostnamectl:

hostnamectl hostname server01

Так же не лишним будет добавить в файл /etc/hosts записи с именем нашего сервера на адрес локального интерфейса.

vim /etc/hosts
127.0.0.1 server01
127.0.0.1 server01.domain.local # здесь имя домена вашей корпоративной сети, если необходимо

Ну и на последок, если вы используете статический ip-адрес пропишите DNS сервера в /etc/resolv.conf

vim /etc/resolv.conf
# /etc/resolv.conf
domain id-suenco.ru
nameserver 77.88.8.7
nameserver 8.8.8.8

После настройки сети обновляем базу пакетов и устанавливаем обновления.

apt-get update
apt-get dist-upgrade

Для удобства удаленного управления включаем SSH:

systemctl enable sshd
systemctl start sshd

Установка необходимого ПО

Для нормальной работы в консоли я установил следующий список программ из репозиториев ALTLinux:

apt-get install mc htop sudo wget eepm tmux bash-completion usbutils

Из всего этого списка для дальнейшего запуска менеджера лицензий HASP понадобится только usbutils для просмотра видит ли машина ключ и wget для скачивания пакета менеджера лицензий. Остальное для удобства работы.

Например мне привычнее работать через sudo, для этого нужно создать пользователя, включить его в определенную группу и включить sudo (который я установил ранее):

adduser user
passwd user
usermod -aG wheel user
control sudowheel enabled

Установка HASP License Manager в ALTLinux

На этом этапе я топтался дольше всего, поскольку все найденные инструкции демонстрировали функционал, которого я не наблюдал в установленном сервере лицензий. Там элементарно не было возможности настройки параметров сервера HASPLM, в том числе в опциях запуска нельзя было указать путь к файлу конфигурации (-c). Но обо всём по порядку.

Самым удачным решением является использование готовой сборки от Etersoft. В их репозитории имеются готовые пакеты под большинство дистрибутивов, в том числе и под ALT. Первое на что нужно обратить внимание — это использование правильной архитектуры, если помните я установил i586, соответственно и пакет нужен для этой архитектуры, а не для x86_64.

Но если пакет не для той архитектуры просто не установится, то второй момент выясняется уже опытным путем. Есть условно 2 ветки stable и oldstable. Я решил использовать stable и вот в нем как раз и оказалась та самая версия которую я не нашёл способа никак настроить, а все попытки 1С получить с неё ключи по сети с другого компьютера ни чем не закончились.

В итоге я решил попробовать oldstable и как раз она оказалась рабочей. Переходим по ссылке https://download.etersoft.ru/pub/Etersoft/HASP, выбираем свой дистрибутив, качаем пакет. Я просто скопировал ссылку на пакет и скачал прямо на сервер:

wget https://download.etersoft.ru/pub/Etersoft/HASP/oldstable/ALTLinux/Sisyphus/haspd-modules-7.40-alt10.i586.rpm

Затем устанавливаем пакет командой:

rpm -i haspd-modules-7.40-alt10.i586.rpm

По сути это всё. Можно ограничить доступ к менеджеру лицензий указав адреса компьютеров в файле /etc/haspd/hasplm.conf

NHS_IP_LIMIT = 10.172.144.99

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

usbkeytest --list
usbkeytest --detect

Пакет устанавливает скрипты запуска в староверном SysVInit, но я выбрал образ JeOS с SystemD, благо скрипты транслируются в юниты автоматически. Управлять службой можно через стандартные команды systemd:

systemctl start haspd # запуск службы менеджера лицензий
systemctl status haspd # просмотр состояния 
systemctl stop haspd # остановка службы
systemctl restart haspd # перезапуск
journal -xeu haspd # просмотр логов
hasp alt linux jeos по сети

Задача выполнена, лицензии раздаются, на решение потрачен час времени и 0 рублей работодателя.

Оцените статью
Добавить комментарий

Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.