Netavis Observer — ПО IP-видеонаблюдения на базе Linux. Установка, настройка и небольшой взлом

в 8:56, , рубрики: linux, видеонаблюдение, Работа с видео, системное администрирование, метки: ,

Netavis Observer — программный продукт для организации видеонаблюдения с помощью IP-камер на базе Linux-сервера.

Netavis Observer написан на Java, так же используются такие продукты как Apache Tomcat, Webmin, Munin, Mysql.

Существует два варианта Netavis Observer — Bundled(поставляется в виде установочного iso-образа на базе Centos5 или Centos6) и Unbundled — набора rpm-пакетов для самостоятельной установки на сервер под управлением Centos или RedHat.

основные функциональные возможности и особенности:
— Поддержка популярных IP-камер и видеосерверов, таких как AXIS, ArecontVision, D-link, ACTi, Sanyo, Samsung и других (полный список можно посмотреть на сайте Netavis).
— Поддержка разделения прав доступа к камерам, просмотру архива, экспорту видео, управлению PTZ (управление поворотными камерами) с возможностью создания групп и пользователей под конкретную ситуацию(только просмотр онлайн-видео, просмотр онлайн-видео и архива, но без права экспорта видеоматериала из архива и т.д.)
— Наличие клиента под Windows, IPhone/IPad.
— Возможность работать через браузер (требуется установка JAVA).
— Возможность создания кластера для работы с большим количеством камер.
— Поддержка Active Directory (в редакции Enterprise).
— Поддержка Анализа видео ( iCAT — обнаружение движения с вариациями, обнаружение саботажа, обнаружение удаленного объекта, маска конфиденциальности).
— Настройка качества отображения видео онлайн и при записи в архив.
— Настройка расположения камер и формирование пользовательских наборов с возможностью копирования этих наборов другим пользователям.
— Возможность ограничения полосы пропускания для камер и клиентов при просмотре живого видео и архива.
— Экспорт архива в AVI или SAFE (создается исполняемый файл .EXE c примитивным плеером и собственно видео, можно экспортировать сразу нужное количество камер за один промежуток времени, будет создан один EXE-шник).
— Возможность запуска графической оболочки непосредственно на сервере — запускается сессия LXDE, после чего запускается клиент Netavis.

А теперь приступим к установке

Идем по ссылке и скачиваем Bundled-версию Netavis Observer в виде iso, записываем на болванку и вставляем ее в привод чтения компакт-дисков сервера.
Сразу после загрузки мы видим экран приветствия с вариантами дальнейших действий, и их не очень много:
image
install options где options:
без опций — стандартная установка на один жесткий диск.Все данные с жесткого диска будут удалены.
hwraid — установка на железный RAID.
nus — установка сервера событий и без архива.
part — установка с возможностью ручной разметки дисков.
nlis — установка без хранения архива на локальных дисках.Хранилища архивов монтируются по NFS или SAMBA.
repair — восстановление системы после сбоя.

Наш выбор — boot: install Далее — стандартная процедура установки Centos5. После окончания установки соглашаемся перезагрузиться. После загрузки операционной системы видим приглашение ввести логин admin для завершения установки системы.
image
После чего нажимаем Enter, и далее 0 для подтверждения завершения установки.Соглашаемся с условиями лицензионного соглашения, введя yes.

Далее вводим пароль для пользователя admin:
image

Далее по списку:

— Выбираем, в какой файловой системе будут отформатированы жесткие диски для хранения архивов (по умолчанию это xfs).
— Вводим имя сервера.
— Сохраняем параметры, введя Save.
— Вводим название конфигурации (я оставил значение по умолчанию — Default configuration).
— Выбираем, использовать ли DHCP для настройки сети или задать параметры статически.
— Вводим IP-адрес, маску сети, IP-адрес шлюза, IP-адрес DNS сервера (только если выбрана статическая настройка сети).
— Вводим IP-адрес почтового сервера (для отсылки событий системы на почту).
— Вводим доменное имя.
— Сохраняем параметры, введя Save.
— Выбираем, будет ли сервер являться еще и сервером времени.
image
— Определяемся с серверами времени для синхронизации и сохраняем параметры, введя Save.
— Вводим почтовый адрес администратора.
— Вводим учетные данные т.н. customer-пользователя (имя, адрес, название организации).
— Определяемся, запускать ли клиент для просмотра видео и архива на сервере (по умолчанию — не запускать).

На этом установка закончена и можно перезагрузиться, предварительно запомнив или записав, по какому адресу находится интерфейс администратора и клиента:
192.168.0.5:8000 — интерфейс администратора — сильно обрезанный вариант WEBMIN ( для входа используем логин admin и заданный в начале установке пароль).
image
192.168.0.5/ -интерфейс клиента Netavis Observer ( для входа используем логин admin и заданный в начале установке пароль).

Запускаем браузер (проверено в свежих Firefox и Chrome, а также в IE7) и вводим адрес клиента Netavis Observer — в данном случае — 192.168.0.5
Важно! — для работы клиента требуется установленная Java и ее поддержка должна быть активирована в настройках браузера.
Соответственно при входе в интерфейс Netavis сначала появится вот такая страница:
image
и если с Явой все в порядке можно выбрать язык интерфейса и нажать Start
image
На следующем скриншоте все понятно — можно запустить клиент из браузера, установить клиента на локальный компьютер под управлением Windows, а так же на смартфоны под iOS(эту возможность не тестировал), а так же посмотреть документацию или зайти в интерфейс Настройщика под логином admin и паролем admin.
image
Но вернемся назад и запустим( или поставим локально) клиент Netavis Observer.И первое что мы видим — окно, в котором предлагается лицензировать программу — и в нем четыре пункта:
— Запуск без лицензии — обрезанный функционал, даже камеру не добавить.
— Запуск с демо-лицензией — можно добавить камеру, но периодически будет выкидывать из программы.
— Запрос лицензии в зависимости от количества камер, пользователей и прочих плюшек с официального сайта.
— Непосредственный ввод лицензионного ключа.
image

Нас интересует последний пункт, так как лицензионный ключ в наличии.Вводим ключ, нажимаем ОК и под полями ввода ключа появляется сообщение что ключ сохранен на сервере.Закрываем окно лицензирования и запускаем клиент повторно.
После запуска появляется окно авторизации — логин и пароль согласно документации: admin/admin
и вот наконец интерфейс клиента Netavis Observer:
image

В какой то момент выяснилось, что установленных в сервер жестких дисков не хватает для постоянной записи архива по каждой камере на 1 месяц.
Были приобретены жесткие диски требуемой емкости и после прочтения документации был уяснен процесс добавления и замены жестких дисков в систему.Для этого недостаточно иметь доступ к интерфейсу клиента, необходим доступ к консоли управления системой — согласно документации нужно зайти по SSH на сервер под пользователем admin и установленным для него паролем.

Это можно выполнить командой ssh -l admin 192.168.0.5 и ввести пароль.Также можно просто залогиниться в консоль локально.

image

Согласно документации процедура добавления проста как три рубля — выключаем сервер, подключаем чистый, неформатированный жесткий диск, включаем сервер и залогиниваемся в систему.
Далее набираем 27 для проверки на предмет, определился ли жесткий диск или нет, потом набираем 23 и дожидаемся окончания процедуры создания файловой системы, создания точки монтирования и пр.
После рестарта сервера и запуска системы новый жесткий диск виден в системе и готов к записи на него архива.
А на случай, если один из жестких дисков вышел из строя и его необходимо заменить, следуем другой процедуре: выключаем сервер, меняем неисправный жесткий диск на исправный, включаем сервер и логинимся в консоль.там сначала смотрим статус жестких дисков, а потом набираем 24 — Configure replaced disk и ждем окончания процедуры.

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

Ищем проблему — и находим ее

Однажды нужно было добавить два жестких диска и изъять один малой емкости.И так как сервер уже был в практически в производственной эксплуатации, захотелось совместить две процедуры — добавления жесткого диска и замены одного жесткого диска другим.
После загрузки системы и логина в консоль по запарке решил начать с процедуры добавления жесткого диска вместо замены одного жесткого диска на другой.Система добавила два новых жестких диска в систему, а менять жесткий диск уже было не на что.
Результатом таких поспешных действий стала ошибка, отображающаяся в интерфейсе клиента рядом с нагрузкой на процессор — Degraded recording, и ошибочное значение пространства, доступного системе ровно на столько, сколько было гигабайт на замененном жестком диске. При этом в консоли этот жесткий диск отображался как неиспользуемый — пункт 25 — Show unusable disks.
Никакие действия в консоли управления, откат к прежней конфигурации и попытки восстановить систему с установочного диска к успеху не приводили. Документация на этот счет советовала переставить систему с нуля или обратиться к дилеру.

Решение проблемы

Было решено создать аналогичную проблему на виртуальной машине. Это с легкостью удалось.
Под рутом зайти в консоли не получилось — пароль не известен. Загружаемся с live-cd Xubuntu на этой виртуальной машине и начинаем изучение внутренностей системы.

В системе обнаружились следующие интересные разделы:
— / — собственно корневой раздел.
— /netavis — раздел, где собственно находится система Netavis
— /var/lib/mysql — раздел, где находится каталог базы данных.
Так же есть разделы Images1, Images3, Images4 которые монтируются в /Images

Первым делом смотрим файл /etc/shadow на предмет списка пользователей и их паролей.

Нам интересны следующие пользователи:
root:$1$UEe5kAv4$nWyqBmcmg3P.kM/ZB/s/2.:16086:0:99999:7:::
arms:$1$gKURq9W3$oYJWwNw9hKtJBmoVpkFju/:16086:0:99999:7:::
admin:$1$0.3jcW1k$i6QabIE2yN0hCcTmrQ7j80:16086:0:99999:7:::
netavis:$1$SQ4LOu8J$Gp6PEphFVKucMyQbkm55f1:16086:0:99999:7:::
chpass:$1$CWDhlmfR$b/IoN0Inx/A6eT04hivM/.:16086:0:99999:7:::

Видно что пароль рута есть, но не совпадает с установленным нами паролем для admin-а.
Единственный выход — поменять пароль root-а на известный нам пароль admin-а.Поэтому стираем хэш пароля рута и меняем на хэш пароля admin-а, после чего сохраняем файл, отмонтируем все файловые системы и перезагружаемся в Netavis.
Далее логинимся под root-ом с известным нам паролем от admin-а и начинаем осматриваться уже из под живой системы с правами root-а.

Смотрим, какие жесткие диски подключены:

[root@videosystem ~]# fdisk -l
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 664 5229157+ 83 Linux
/dev/sda3 665 1315 5229157+ 83 Linux
/dev/sda4 1316 2635 10602900 5 Extended
/dev/sda5 1316 1966 5229126 83 Linux
/dev/sda6 1967 2097 1052226 82 Linux swap / Solaris
/dev/sda7 2098 2635 4321453+ 83 Linux
/dev/sdb1 1 1045 8388607+ ee EFI GPT
/dev/sdc1 1 1045 8388607+ ee EFI GPT

Подключено 3 жестких диска — системный (dev/sda) и два архивных (dev/sdb dev/sdc) и смонтированы они соответственно так:

Скрытый текст

[root@videosystem ~]# mount
/dev/sda7 on /Images/Images1 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)
/dev/sdb1 on /Images/Images3 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)
/dev/sdc1 on /Images/Images4 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)

А вот что у нас в fstab:

LABEL=Images1 /Images/Images1 xfs noauto 1 0
LABEL=Images2 /Images/Images2 xfs noauto 1 0
LABEL=Images3 /Images/Images3 xfs noauto 1 0
LABEL=Images4 /Images/Images4 xfs noauto 1 0

То есть присутствует запись о замененном жестком диске, которого фактически нет в сервере. Удаляем точку монтирования Images2 из fstab, сохраняем и перезагружаемся.
После загрузки запускаем клиент и идем в раздел System administration — System information и видим что ошибка не исчезла, значит информация о используемых дисках хранится где то… и это наверняка Mysql.

Разбираемся с Mysql.

Значит нужно подключиться к серверу базы данных, а для этого нужно знать логины и пароли для доступа. Для этого идем в /var/lib/mysql и смотрим какие базы есть в наличии.

Вот список баз:
— arms
— mysql
— test

База mysql — системная, в ней можно посмотреть список пользователей сервера и хэши паролей. Итак — окончательный путь до файла с интересующей нас информацией — /va/lib/mysql/mysql/user.MYD — открываем файл в любимом редакторе и видим что пользователей не так уж и много — root и arms и хэш пароля у них одинаковый — 2f36c5e96b75ee48, к тому же старого типа, что подтверждается просмотром конфига Mysql-сервера, который расположен по пути /etc/my.cnf:

old_passwords=1

Дело за малым — или угадать пароль или брутфорсить, что могло занять некоторое время. Начал с попытки угадывания пароля, подставляя известные пароли, пустые пароли, пароли, совпадающие с логинами… удача улыбнулась почти сразу.
Для обоих логинов (root и arms) пароль — arms

Далее настроим SSH-туннель между сервером Netavis и компьютером, на котором запустим один из графических инструментов для администрирования базы данных Mysql, например MySQL Workbench или Emma или любой другой, которым вы обычно пользуетесь.

Итак, создаем туннель:
— На Linux — командой ssh -L 3306:localhost:3306 root@192.168.0.5, вводим пароль, который мы скопировали с пользователя admin.
— Универсальный вариант — с помощью Putty:

image

image

Далее запускаем например Emma, настраиваем на соединение с localhost:3306 и логином/паролем arms/arms и идем прямиком в базу, с которой и работает Netavis — arms.
Пользуясь поиском текста по всей базе по ключевому слову «Images2» (ведь именно этот раздел мы и пытаемся убрать из настроек программы) получаем результат в виде таблицы Directories, в которой и хранится искомая информация:
image

Удаляем запись с информацией о Images2 и перезагружаем сервер.
После загрузки запускаем клиент и идем в раздел System administration — System information и видим что ошибка исчезла!
Архив пишется монолитно, ошибка Degraded recording из интерфейса клиента исчезла, как и информация о неиспользуемом жестком диске в консоли управления. Доступное файловое пространство отображается корректно.

Спасибо за внимание.

Автор: timerbulatov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js