Sysadminium
Менеджер лицензий hasp и проброс usb ключа по сети на ubuntu 18.04
Чтобы 1С увидела ваш многопользовательский usb ключ в одной сети с вами должен находится сервер лицензирования. В этой статье настроим такой сервер, и в качестве дополнения usb ключ в него будем прокидывать по сети.
Зачем может понадобится пробрасывать 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
Запустим сервер лицензирования:
$ 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 :32032 $ usbclnt -l ================== LIST OF REMOTE USB DEVICES =================== 1: USB server at :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 :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 стартует ваш сервер по умолчанию:
Скорее всего он будет 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 клиент, который захватит нужный ключ с сервера, а затем и сервер лицензирования.
Спасибо за внимание, буду рад если кому-нибудь это пригодится!
Чтобы 1С увидела ваш многопользовательский usb ключ в одной сети с вами должен находится сервер лицензирования. В этой статье настроим такой сервер, и в качестве дополнения usb ключ в него будем прокидывать по сети.
Установка HASP License Manager в CentOS
Как известно для защиты своих продуктов от нелегального копирования 1с использует ключи аппаратной защиты HASP. Лицензирование ведется по принципу лицензия на сервер плюс лицензия на клиента. При этом сервер 1с предприятия под Linux вполне может работать с 10 подключениями без наличия ключа, на сколько помню сделано это, для того что бы дать возможность протестировать систему прежде чем платить деньги и ставить в продакт. Серверный ключ устанавливается непосредственно на машину с сервером 1с предприятия и бывает двух видов для 32-битной и 64-битной версий.
Клиентские лицензии могут раздаваться по-разному, это может быть локальный ключ на 1 лицензию который вставляется непосредственно в каждую машину, или лет пять назад помнится были “чудо книжки” при переустановке клиента из них нужно было выбрать “чудо слово” находящееся на 21-ой странице в четвертой строке третье справа. В большинстве же случаев покупается клиентский ключ на 10, 25, 50 или 100 пользователей и в сети устанавливается менеджер лицензий (License Menager), к которому обращаются клиенты для получения лицензий.
Итак, что бы все заработало нужно в сервер предприятия воткнуть серверный ключ и поставить для него драйвера, а для клиентов воткнуть клиентский ключ, поставить драйвера и менеджер лицензий.
В статье используется CentOS 6.3 x64 с отключенным SELinux.
1. Установка
Устанавливаем необходимые пакеты.
[root@dbsrv ~]# yum install wget glibc.i686
Скачиваем с сайта Aladdin-а драйвер для HASP и менеджер лицензий.
[root@dbsrv ~]# wget ftp://ftp.aladdin.com/pub/hasp/hl/linux/hasplm_linux_8.30.tgz [root@dbsrv ~]# wget ftp://ftp.aladdin.com/pub/hasp/hl/linux/HDD_RPM_RedHat_i386.tar.gz
Распаковываем архивы и устанавливаем RPM-пакеты.
[root@kvmof ~]# tar xvf hasplm_linux_8.30.tgz [root@dbsrv ~]# tar xvf HDD_RPM_RedHat_i386.tar.gz [root@dbsrv ~]# rpm -ihv hasplm-redhat-8.30-1.i386.rpm HDD_RPM_RedHat_i386/aksusbd-redhat-1.10-1.i386.rpm Starting AKSUSB daemon: [ OK ] Starting WINEHASP daemon: [ OK ] Starting HASP LM: [ OK ]
После установки сразу запустились сервисы: AKSUSB – драйвер HASP-а, WINEHASP – драйвер HASP-а для 1с предприятия работающего под Wine, HASP LM – менеджер лицензий.
2. Проверка и тестирование
Обычно в случае с одним HASP ключем драйвер и менеджер лицензий устанавливаются и сразу начинают работать, и все проверки это скорее уже дело привычки – посмотреть что из сервисов запустилось и какие порты слушает. Проверяем драйвер HASP-а.
[root@dbsrv ~]# netstat -anp | grep aksusb unix 2 [ ACC ] STREAM LISTENING 13994 1490/aksusbd /tmp/.aksusb unix 2 [ ] DGRAM 13993 1490/aksusbd
Проверяем слушает ли 475 порт менеджер лицензий.
[root@dbsrv ~]# netstat -lunp | grep hasplm udp 0 0 0.0.0.0:475 0.0.0.0:* 1510/hasplm
Честно говоря, здесь очень не хватает консольной утилиты, которая умеет выводить информацию о том какие ключи видит AKSUSB и кому выданы лицензии через License Manager. На сайте Aladdin-а можно найти программу AKS Monitor, ставится она на любой компьютер с Windows, расположенный в той же подсети что и License Manager. Eсли в nethasp.ini не заданы кокнренные сервера лицензий, то AKS Monitor будет искать их рассылая широковещательные сообщения и в конечном итоге выведет информацию о том какие сервера лицензий установлены в сети, какие сетевые HASP-ключи к ним подключены и кому выданы лицензии.
3. Заключение
По-моему HASP и менеджер лицензий – это просто, но очень не удобно в плане диагностики. Видно конечно, что софт очень давно не развивается и не меняется, драйвера USB датированы 2007-ым годом, а License Menager аж 2004-ым. Кроме того, я так и не смог научить линуксовый менеджер лицензий слушать TCP порт вместо UDP, что было бы очень удобным при подключении через VPN.
3 Коммент. : “Установка HASP License Manager в CentOS”