Мой блог - Установка и настройка сервера СКУД SIGUR

Установка и настройка сервера СКУД SIGUR

Сегодня рассмотрим установку клиента и сервера СКУД SIGUR в Debian Linux 9.3. На официальном сайте инструкции больше технические и не рассматриваются примеры внедрений, поэтому я написал эту небольшую инструкцию на основе реального опыта. Возможно она вам будет полезна когда будет внедрять эту СКУД у себя или у заказчиков.

Фотография автора

Автор: Антон Черноусов
Опубликовано: 1 месяц, 3 недели (последние правки: 0 минут назад) - 3 комментария
Категории записи: Linux, Ubuntu, Системное администрирование


Официальный сайт SIGUR находится по адресу: http://sigursys.com. На сайте вы можете скачать документацию и программное обеспечение необходимое для работы, а так как это программно-аппаратный комплекс, вам естественно понадобится терминал, контроллер и т.п.

Терминал SIGUR

В моем случае аппаратный комплекс уже настроен и мне требуется настроить лишь сервер СКУД и рабочее место администратора системы (точнее перенастроить для запуска отдельного сервера для удаленного офиса). Клиент и сервер может быть запущен на платформах Linux и Windows, причем функционал Linux-версии несколько ограниченнее, чем в Windows, так же обратите внимание, что бесплатная версия ПО поддерживает только один терминал доступа и для полноценной работы комплекса СКУД вам может понадобится покупка лицензии.

Я буду рассматривать только установку клиента и сервера, без настройки аппаратной части, так как даже клиент-серверная часть вызывает тихий ужас при установке и настройке, это видимо свойства всего отечественного "специализированного программного обеспечения".

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

Перейдите по адресу http://sigursys.com/download.php и загрузите на сервер файлы spnxserver_1.0.58.2-0_i386.deb, spnxclient_1.0.58.2-0_all.deb и aksusbd_7.32-1_i386.deb. Вы можете использовать для загрузки wget (а ссылки для загрузки скопировать с официального сайта):

# wget http://sigursys.com/dl/aksusbd_7.32-1_i386.deb
# wget http://sigursys.com/dl/spnxserver_1.0.58.2-0_i386.deb
# wget http://sigursys.com/dl/spnxclient_1.0.58.2-0_all.deb

Как вы видите, сервер сфинкса собран под архитектуру i386 и попытка установить его на свеже установленный 64-х разрядный Debian сервер вызовет ошибку:

package architecture (i386) does not match system (amd64)

Для установки ПО с архитектурой i386 на 64-х битный сервер дебиан, потребуется добавить поддержку соответствующей архитектуры, для этого выполните следующие команды:

# dpkg --add-architecture i386
# apt-get update

Дополнительно необходимо удовлетворить ряд зависимостей:

Unpacking spnxserver:i386 (1.0.58.2) ...
dpkg: dependency problems prevent configuration of spnxserver:i386:
 spnxserver:i386 depends on spnxclient (= 1.0.58.2).
 spnxserver:i386 depends on libc6 (>= 2.7).
 spnxserver:i386 depends on libgcc1 (>= 1:4.1.1).
 spnxserver:i386 depends on libstdc++6 (>= 4.1.1).
 spnxserver:i386 depends on zlib1g (>= 1:1.1.4).
 spnxserver:i386 depends on libcurl3 (>= 7.21.0-2.1).

Для чего установите следующие пакеты:

# apt-get install libc6:i386 libgcc1:i386 libstdc++6:i386 zlib1g:i386 libcurl3:i386
# aptitude install xdg-utils libudev-dev gksu libpcsclite-dev

Если вам потребуется запускать и клиентскую часть на сервере, то можно установить микроскопическое окружение рабочего стола OpenBox и организовать виртуальное Desktop-окружение с доступом по протоколу VNC:

# aptitude install openbox

Так как у нас настроена микро-система, то дополнительно нам потребуется вручную создать системное меню для user-space приложений или в противном случае мы получим ошибку:

xdg-desktop-menu: No writable system menu directory found.

Каталог системного меню создайте командой:

# mkdir /usr/share/desktop-directories/

Теперь установка пройдет без ошибок, но устанавливать загруженные пакеты необходимо в строго определенном порядке:

# dpkg -i ./spnxclient_1.0.58.2-0_all.deb
# dpkg -i --force-depends ./spnxserver_1.0.58.2-0_i386.deb
# dpkg -i ./aksusbd_7.32-1_i386.deb

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

dpkg: dependency problems prevent configuration of spnxserver:i386:
 spnxserver:i386 depends on spnxclient (= 1.0.58.2).

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

Запуск серверной части "Сфинкса" и интерфейса настройки и администрирования

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

# /etc/init.d/sphinxd start

После удачного запуска в списке процессов вы можете увидеть приложение /usr/sbin/sphinxd_safe и процесс sphinxd. Если процесс sphinxd находится в статусе зомби, то попробуйте запустить sphinxd из командной строки и посмотреть ошибки, я например поймал ошибку:

sphinxd: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

В нашем дистрибутиве установлена версия пакета 1.0.2 и если мы попробуем просто создать символическую ссылку командой:

# ln -s /usr/lib/i386-linux-gnu/libcrypto.so.1.0.2 /usr/lib/i386-linux-gnu/libcrypto.so.1.0.0

То, мы получим ошибку, что требуется именно версия 1.0.0, поэтому загрузим эту библиотеку и принудительно ее установим:

# wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_i386.deb
# dpkg -i ./libssl1.0.0_1.0.1t-1+deb8u7_i386.deb

Следующим этапом потребуется установить Java (для запуска ПО администратора), подойдет версия OpenJDK не обязательно использовать Oracle-реализацию JRE.

# aptitude install openjdk-8-jre

Интерфейс администратора требует запуска в графическом режиме и как я уже говорил вы можете использовать виртуальное окружение рабочего стола с доступом по VNC или создать проброс графического окружения на локальную машину:

$ ssh -X root@10.1.1.32

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

# spnxadmin

Проверьте, что запуск консоли администратора проходит удачно и переходите к настройке базы данных.

Подключение базы данных к Сфинкс

Установим сервер баз данных Mysql, но обратите внимание, что создание базы данных не потребуется, а задается только пароль пользователя root. Установка mysql-сервера операция достаточно типовая, а задание пароля пользователя root можно выполнить командой mysql_secure_installation и полная последовательность действий выглядит следующим образом:

# aptitude install mysql-server
# mysql_secure_installation

Есть один неприятный сюрприз связанный с устаревшими протоколами работы с mysql-сервером:

Подводные камни при подключении базы данных

Ошибка "Client does not support authentication protocol" лечится выполнением в mysql-консоли команды:

> SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('SecretPassword123');
> FLUSH PRIVILEGES;

Есть вероятность, что эта операция вам не поможет и вам придется устанавливать старую версию базы данных mysql и так как вероятность этого довольно большая я опишу последовательность действий по сборке и запуску старой версии mysql (гарантировано работает с СКУД-сервером сфинкс версия Mysql - 5.5.49):

# apt-get install build-essential checkinstall libncurses5-dev curl
# wget ftp://ftp.tpnet.de/pub/pc/linux/diverses/mysql-4.1.24.tar.gz
# tar -xvf ./mysql-4.1.24.tar.gz
# cd ./mysql-4.1.24/
# ./configure CXXFLAGS="-O2 -msse2 -Wno-narrowing -std=gnu++11" --prefix=/usr/local/mysql
# make install
# groupadd mysql
# useradd -g mysql mysql
# cp support-files/my-medium.cnf /etc/my.cnf
# cd /usr/local/mysql/
# bin/mysql_install_db --user=mysql
# su mysql -s /bin/bash
$ /usr/local/mysql/libexec/mysqld

Обратите внимание, на набор опций при конфигурации CXXFLAGS="-O2 -msse2 -Wno-narrowing -std=gnu++11", если их не указывать то сборка завершиться ошибкой:

if g++ -DUNDEF_THREADS_HACK -I. -I. -I.. -I../include -I../include -I../regex     -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions 
-fno-rtti -MT mysqlbinlog.o -MD -MP -MF ".deps/mysqlbinlog.Tpo" -c -o mysqlbinlog.o mysqlbinlog.cc; \
then mv -f ".deps/mysqlbinlog.Tpo" ".deps/mysqlbinlog.Po"; else rm -f ".deps/mysqlbinlog.Tpo"; exit 1; fi
mysqlbinlog.cc:538:1: error: narrowing conversion of ‘18446744073709551615ull’ from ‘ulonglong {aka long long unsigned int}’ to
‘longlong {aka long long int}’ inside { } [-Wnarrowing]
 };

Первый запуск произведите с опцией --skip-grant, перейдите в SQL-консоль и задайте пароль пользователя root:

# /usr/local/mysql/libexec/mysqld --skip-grant &
# mysql
> FLUSH PRIVILEGES;
> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('SecretPassword123');
> FLUSH PRIVILEGES;

Надеюсь, у вас так же как и у меня эпопея с mysql закончилась успешно и вам стал доступен пункт "Сброс/Создание базы данных":

База данных сигур

Дополнительно вы можете настроить SystemD-юнит для автоматического запуска демона Mysql, а вам естественно надо настроить подключение к базе данных и нажать на кнопку "Сброс/Создание базы". Возможно вы увидите сообщение, что недостаточно прав доступа или не создана база данных и в этом случае вы можете создать отдельного пользователя, базу данных TC-DB-MAIN и назначить права доступа самостоятельно.

> CREATE USER 'skud_user'@'localhost' IDENTIFIED BY 'SecretPassword123';
> CREATE DATABASE `TC-DB-MAIN`;
> GRANT ALL PRIVILEGES ON TC-DB-MAIN.* TO 'skud_user'@'localhost';
> FLUSH PRIVILEGES;

Как вы видите установка сервера SIGUR полна сюрпризов, но ничего невозможного нет и настроить можно. На современных дистрибутивах, это конечно немного хлопотно, но в 2017-ом году использовать старье у меня рука не поднимается.

СКУД Сфинкс готов к работе

Архивные версии MySQL можно скачать по адресу: https://downloads.mysql.com/archives/community/

Запуск клиента Сфинкс

Клиента мы можем запускать локально на сервере и использовать проброс X-сервера на локальную машину или просто установить себе клиентскую часть и подключаться по протоколу TCP-IP к серверу (классическая клиент серверная модель), так же вы можете поднять виртуальное графическое окружение на сервере и работать там используя VPC-протокол. Я рекомендую использовать обычную клиент-серверную модель, а к VNC или пробросу X-сервера прибегать только в случае необходимости настройки сервера при помощи графической утилиты управления.

Прежде всего проверьте запущен ли демон сфинкса и принимает ли он входящие подключения:

# netstat -tulpn | grep sphinxd
tcp        0      0 0.0.0.0:3310            0.0.0.0:*               LISTEN      762/sphinxd        
tcp        0      0 0.0.0.0:3312            0.0.0.0:*               LISTEN      762/sphinxd        
tcp        0      0 0.0.0.0:3314            0.0.0.0:*               LISTEN      762/sphinxd        
tcp        0      0 0.0.0.0:3308            0.0.0.0:*               LISTEN      762/sphinxd        
udp        0      0 0.0.0.0:3304            0.0.0.0:*                           762/sphinxd        
udp        0      0 0.0.0.0:3305            0.0.0.0:*                           762/sphinxd

В процессе проработки запуска серверной части в современных версиях Debian Linux, я обратил внимание, что запуск процесса sphinxd без задания окружения приводит с тому, что процесс sphinxd становится зомби и мне пришлось модифицировать скрипт для запуска с передачей переменных shell:

su root -s /bin/bash -c "/usr/sbin/sphinxd &"

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

# spnxclient

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

# aptitude install gksu libpcsclite-dev
# dpkg -i ./spnxclient_1.0.58.2-0_all.deb

Укажите ip-адрес удаленного сервера:

Подключение удаленного СКУД-сервера

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

Первое подключение

Поздравляю мы настроили сервер СКУД SIGUR на современном дистрибутиве, правда с костылями, но работает же.

Сигур к работе готов

Кстати, так как СКУД это свой отдельный мир, то о обратной совместимости своих продуктов они не слышали и вы с легкостью можете получить например такую ошибку:

Ошибка при доступе к старой версии СИГУР из нового клиента.

Архива старых версий у них на сайте конечно тоже нет и вас ждет удивительная переписка со службой технической поддержки которая немного не понимает, что именно вы от них хотите.

Пожалуйста, оцените мою статью (всего оценок 2, средняя оценка 5.00):

Комментарии к статье:

Александр 1 месяц назад

Все очень сложно у вас тут.
Может вам лучше использовать пакеты под amd64?
По "об обратной совместимости своих продуктов они не слышали": Вы можете любую инсталляцию Sigur, хоть 10-и летней давности, совершенно свободно обновить до современного состояния, установив поверх новую версию. В т.ч. вы можете обновить firmware контроллеров. Гарантируется при этом совместимость с любым старым оборудованием. В случае вашего скрина - просто поставьте свежую версию и на сервер и на клиент. Не знаю кто еще на рынке дает такое совершенно бесплатно.

Ссылка | Ответ

Антон Черноусов 1 месяц назад

Ничего не имею против против конструктивной критики, но на сайте нет пакетов по 64-х разрядную платформу, плюс вы видимо работаете в этой компании или являетесь интегратором ибо петь такие дифирамбы этому ребусу бесплатно я бы точно не стал:
1.0.58.2 - Linux (Debian i386)
для сервера:
дистрибутив: spnxserver_1.0.58.2-0_i386.deb (8 Mb)
драйвер HASP: aksusbd_7.63-1_i386.deb (3 Mb)
для клиента: spnxclient_1.0.58.2-0_all.deb (20 Mb)

Ссылка | Ответ

Aleksandr 3 недели, 3 дня назад

Что я работаю в этой компании следует из указанного мной email :)
Пакеты под 64 бита выложили тут: http://sigursys.com/download.php
Также на всякий случай вот наша инструкция по установке на Linux:

1) Установите Java JRE 8 с сайта Oracle. Например так:
Загрузить jre-8uXXX-linux-i586.tar.gz с http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
Выполнить
sudo mkdir /opt/jre
sudo tar -zxf jre-8u60-linux-i586.tar.gz -C /opt/jre
sudo update-alternatives --install /usr/bin/java java /opt/jre/jre*/bin/java 9999

2) Скачать и установить пакет клиента СКУД и всего его зависимости отсюда: http://sigursys.com/download.php (пакет spnxclient)

3) Если будет использоваться HASP ключ, то установить драйвер HASP.

3.1) Драйвер HASP поставляется производителем ключа только под архитектуру i386. Поэтому при установке на amd64 нужно предварительно установить поддержку архитектуры i386 и зависимости драйвера, это можно сделать так:

dpkg --add-architecture i386
apt-get update
apt-get install libc6-i386

3.2) Установить сам пакет драйвера: http://sigursys.com/dl/aksusbd_7.63-1_i386.deb

4) Скачать и установить пакет сервера СКУД и всего его зависимости: http://sigursys.com/download.php (пакет spnxserver)

5) Установить сервер БД (mysql/mariadb):

apt-get install mariadb-server

6) Создать на сервере БД пользователя, от имени которого будет работать сервер СКУД. Дать ему полные права на базы TC-DB-MAIN и TC-DB-LOG. Например так:

# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON `TC-DB-MAIN`.* TO 'skud' IDENTIFIED BY 'xxx';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON `TC-DB-LOG`.* TO 'skud';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Далее для запуска программы управления сервером СКУД (в частности, для настроек IP-параметров контроллеров): sudo spnxadmin
Для запуска клиентского места СКУД: spnxclient

Ссылка | Ответ

Оставьте комментарий:

обязательно

обязательно (не публикуется)

необязательно

обязательно

обязательно