Сервер hasplm для клиентских ключей 1С
Чтобы 1С увидела ваш многопользовательский usb ключ в одной сети с вами должен находится сервер лицензирования hasplm.
Зачем может понадобится пробрасывать usb ключ по сети? Ну допустим у вас сервер 1С или сервер лицензирования в датацентре, а ключ в датацентр вы везти не хотите. Или, например, у вас несколько виртуальных серверов лицензирования, которые могут перемещаться по разным хостам в рамках одного кластера виртуализации и нужно обеспечить перемещение ключей 1С вслед за виртуальными машинами.
Устанавливать всё это будем на Ubuntu 18.04, так как для Ubuntu 20.04 менеджера лицензий нет и скорее всего не будет.
Для начала обновимся:
$ sudo apt update
$ sudo apt dist-upgrade
$ sudo reboot
Создадим каталог, в который скачаем пакеты hasp севера, установим зависимости и сервер лицензирования:
$ mkdir hasp
$ cd hasp/
$ wget http://download.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Ubuntu/18.04/haspd-modules_7.90-eter2ubuntu_amd64.deb
$ wget http://download.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Ubuntu/18.04/haspd_7.90-eter2ubuntu_amd64.deb
$ sudo apt install libc6-i386
$ sudo dpkg -i haspd_7.90-eter2ubuntu_amd64.deb
$ sudo dpkg -i haspd-modules_7.90-eter2ubuntu_amd64.deb
$ sudo apt install -f
Запустим службу сервера лицензирования haspd. Он запускает процесс hasplm, который и занимается раздачей лицензий для 1С:
$ sudo systemctl start haspd.service
$ sudo systemctl status haspd.service
● haspd.service - LSB: Hasp keys support
Loaded: loaded (/etc/init.d/haspd; generated)
Active: active (running) since Thu 2021-03-25 10:14:51 UTC; 48min ago
Docs: man:systemd-sysv-generator(8)
Process: 990 ExecStart=/etc/init.d/haspd start (code=exited, status=0/SUCCESS)
Tasks: 11 (limit: 2317)
CGroup: /system.slice/haspd.service
├─1057 aksusbd
├─1068 winehasp
├─1077 hasplm -c /etc/haspd/hasplm.conf
└─1088 hasplmd -s
С сервером лицензирования закончили. Теперь вернёмся в родительский каталог, создадим папку для usb-redirector и скачаем этот пакет:
$ cd ..
$ mkdir usbred
$ cd usbred/
$ wget https://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz
Установим зависимости для usb-redirector, а затем и сам usb-redirector:
$ sudo apt install linux-headers-`uname -r`
$ apt install linux-source
$ tar xf usb-redirector-linux-x86_64.tar.gz
$ cd usb-redirector-linux-x86_64/
$ sudo ./installer.sh install-client
$ sudo systemctl start rc.usbsrvd.service
$ sudo systemctl enable rc.usbsrvd.service
$ systemctl status rc.usbsrvd.service
Дальше подключимся к серверу usb-redirector и посмотрим какие ключи он раздаёт:
$ usbclnt -a <ip_address>:32032
$ usbclnt -l
================== LIST OF REMOTE USB DEVICES ===================
1: USB server at <ip_address>:32032
Mode: manual-connect Status: connected
|
|- 12: hasp-key-net10
| Vid: 0529 Pid: 0001 Port: 2-3.3
| Mode: manual-connect Status: available for connection
Прокинем нужный ключик или настроим автопрокидывание:
$ usbclnt -c 1-12 # ручное прокидывание
$ usbclnt -auto-connect on 1-12 # автопрокидывание
$ usbclnt -l
================== LIST OF REMOTE USB DEVICES ===================
1: USB server at <ip_address>:32032
Mode: manual-connect Status: connected
|
|- 12: hasp-key-net10
| Vid: 0529 Pid: 0001 Port: 2-3.3
| Mode: auto-connect Status: connected
$ lsusb | grep Aladdin
Bus 002 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
И последнее что можно сделать, это настроить очерёдность запуска сервисов, чтобы haspd стартовал после rc.usbsrvd. Для начала проверим на каком runlevel стартует ваш сервер по умолчанию:
$ runlevel
Скорее всего он будет 5-ый, это уровень по умолчанию для сервера Ubuntu.
И так, настроим очерёдность:
$ cd /etc/rc5.d/
$ ls -l
total 0
lrwxrwxrwx 1 root root 15 Aug 5 2019 S01acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 16 Aug 5 2019 S01apport -> ../init.d/apport
lrwxrwxrwx 1 root root 13 Aug 5 2019 S01atd -> ../init.d/atd
lrwxrwxrwx 1 root root 26 Aug 5 2019 S01console-setup.sh -> ../init.d/console-setup.sh
lrwxrwxrwx 1 root root 14 Aug 5 2019 S01cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 Aug 5 2019 S01dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root 21 Mar 25 08:32 S01grub-common -> ../init.d/grub-common
lrwxrwxrwx 1 root root 15 Mar 25 08:52 S01haspd -> ../init.d/haspd
lrwxrwxrwx 1 root root 20 Aug 5 2019 S01irqbalance -> ../init.d/irqbalance
lrwxrwxrwx 1 root root 22 Aug 5 2019 S01lvm2-lvmetad -> ../init.d/lvm2-lvmetad
lrwxrwxrwx 1 root root 23 Aug 5 2019 S01lvm2-lvmpolld -> ../init.d/lvm2-lvmpolld
lrwxrwxrwx 1 root root 15 Aug 5 2019 S01lxcfs -> ../init.d/lxcfs
lrwxrwxrwx 1 root root 13 Aug 5 2019 S01lxd -> ../init.d/lxd
lrwxrwxrwx 1 root root 15 Aug 5 2019 S01mdadm -> ../init.d/mdadm
lrwxrwxrwx 1 root root 23 Aug 5 2019 S01open-vm-tools -> ../init.d/open-vm-tools
lrwxrwxrwx 1 root root 18 Aug 5 2019 S01plymouth -> ../init.d/plymouth
lrwxrwxrwx 1 root root 20 Mar 25 09:19 S01rc.usbsrvd -> ../init.d/rc.usbsrvd
lrwxrwxrwx 1 root root 15 Aug 5 2019 S01rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 17 Aug 5 2019 S01rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 13 Mar 25 08:33 S01ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 29 Aug 5 2019 S01unattended-upgrades -> ../init.d/unattended-upgrades
lrwxrwxrwx 1 root root 15 Aug 5 2019 S01uuidd -> ../init.d/uuidd
$ sudo mv S01haspd ./S02haspd
После этого haspd будет стартовать всегда последним! То есть после перезапуска вначале стартует наш usb клиент, который захватит нужный ключ с сервера, а затем и сервер лицензирования.
Спасибо за внимание, буду рад если кому-нибудь это пригодится!
Если понравилась статья, подпишись на мой канал в VK или Telegram.