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


Администрирование операционных систем на базе Linux (Debian/Ubuntu и Centos/RedHat)
cv deb sigursys sigursys.com sphinxd сервер скуд скуд sigur установка и настройка сервера установка серверной части
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 1 месяц)

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

Официальный сайт 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 на современном дистрибутиве, правда с костылями, но работает же.

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

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

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

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

Моя официальная страница на FaceBook
Мой микроблог в твиттер

Установка облачного хранилища NextCloud в окружение Nginx+PHP-FPM

Установка облачного хранилища NextCloud в окружение Nginx+PHP-FPM

Представляем вашему вниманию подробную инструкцию по настройке NextCloud (с установкой плагинов и ssl-сертификатов для реализации защищенного https-протокола). Nextcloud - пакет клиент-серверного программного обеспечения для создания облачного хранилища. Фактически, программное обеспечение аналогично DropBox, Яндекс.Диск и GoogleDrive, но при этом является отрытым ПО и может быть установлено на вашем сервере и интегрироваться с сервисами компании, такими как Active Directory. Функционал облачного хранилища может быть расширен при помощи плагинов и при некотором желании из облачного хранилища можно построить небольшую CRM.


Обновление PHP до версии 7.2 в Debian Jessie (Debian GNU/Linux 8.11)

Обновление PHP до версии 7.2 в Debian Jessie (Debian GNU/Linux 8.11)

Сегодня рассмотрим довольно типовую задачу которую приходится решать довольно часто последнее время и я решил ее задокументировать, чтобы в дальнейшем просто следовать подготовленному плану. Как вы наверное поняли, я буду обновлять PHP в Debian Jessie до текущей стабильной версии.


Подготовка Nginx и PHP-FPM окружения для запуска Wordpress-сайта

Подготовка Nginx и PHP-FPM окружения для запуска Wordpress-сайта

И это видимо самая типовая задача из тех с которыми мне приходится сталкиваться, но я на всякий случай ее опишу.


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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .