OCS Inventory NG расшифровывается как Open Computers and Software Inventory. Это ПО предназначено для инвентаризации компьютеров в сети, сбора информации о программном обеспечении и установленном оборудовании.

 

Поздравляем участника конкурса

Этот текст был прислан на конкурс авторов, который мы запустили весной. Мы разобрались с большим количеством пришедших материалов, подвели итоги и наградили победителей. Автор этой заметки получил приз — трехмесячную подписку на «Хакер». Поздравляем!

Ключевые особенности:

  • удобный веб-интерфейс;
  • расширение возможностей плагинами;
  • поддержка IpDiscover и SNMP;
  • продвинутый поиск;
  • сбор ключей Windows и Office;
  • удаленное развертывание пакетов.

Этот продукт поддерживает все популярные ОС: Windows, Linux, BSD, Sun Solaris, IBM AIX, HP-UX, macOS, Android.

Устанавливать будем с официального сайта, так как в репозиториях Debian старые версии.

На такой конфигурации железа сервер спокойно может собирать информацию со 150 агентов с интервалом обновления четыре часа.

  • Софт: Debian Jessie (8.7.1) x64, OCSNG_UNIX_SERVER-2.3.1, OCSNG-Windows-Agent-2.3.0.0
  • VPS: OpenVZ, 2 vCPU, 512 Мбайт, 15 Гбайт SSD

Устанавливать OCS Inventory NG будем в связке с Apache 2 и MariaDB.

 

Подготовка

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

date
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Подключаем репозиторий. Открываем список зеркал и добавляем репозиторий DotDeb.

nano /etc/apt/sources.list
DotDeb
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Импортируем ключ DotDeb’а:

wget http://www.dotdeb.org/dotdeb.gpg -O - -q | apt-key add -

Обновляем список зеркал и пакеты:

apt-get update && apt-get upgrade

Установим необходимые пакеты:

apt-get install make apache2 php7.0-mbstring php7.0-soap php7.0-common libapache2-mod-php7.0 php-pear php7.0-cli php7.0-ldap php7.0-gd php7.0-zip mariadb-server php7.0-mysqlnd php7.0-curl

Во время установки задаем пароль для пользователя root MySQL.

Ставим модули Perl:

apt-get install libxml-simple-perl libio-compress-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl
cpan -i XML::Entities

После этого устанавливаем MariaDB и создаем пользователя ocs и БД ocsweb.

Логинимся к БД:

mysql -u root -p

Создаем пользователя:

mysql> create user 'ocs'@'localhost' identified by 'pass_mysql';

Создаем БД:

mysql> create database `ocsweb` character set = 'utf8';

Присваиваем права:

mysql> GRANT ALL PRIVILEGES ON `ocsweb`.* to `ocs`@localhost;
mysql> FLUSH PRIVILEGES;
mysql> quit;
 

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

Скачиваем OCS-NG Server:

wget -P /tmp https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.3.1/OCSNG_UNIX_SERVER-2.3.1.tar.gz
tar -xf /tmp/OCSNG_UNIX_SERVER-2.3.1.tar.gz -C /tmp
cd /tmp/OCSNG_UNIX_SERVER-2.3.1/

Запускаем скрипт установки (все настройки оставляем по умолчанию):

./setup.sh
  1. Мы уверены и хотим продолжить. [ENTER]
  2. Наш MySQL-сервер запущен на локальном хосте. [ENTER]
  3. И работает он на порте 3306. [ENTER]
  4. Бинарник демона apache2 находится в /usr/sbin/apache2ctl. [ENTER]
  5. Конфигурационный файл лежит тут: /etc/apache2/apache2.conf. [ENTER]
  6. Apache2 работает от пользователя www-data. [ENTER]
  7. Который входит в группу www-data. [ENTER]
  8. Программа установки поместит конфигурационный файл OCS Inventory NG в директорию /etc/apache2/conf-available. [ENTER]
  9. Бинарник PERL расположен тут: /usr/bin/perl. [ENTER]
  10. Да, мы хотим настроить конфигурационный сервер на этом компьютере. [ENTER]
  11. Размещаем логи сервера OCS в /var/log/ocsinventory-server. [ENTER]
  12. Конфигурационные файлы плагинов будут лежать тут: /etc/ocsinventory-server/plugins. [ENTER]
  13. Задаем расположение модулей Perl: /etc/ocsinventory-server/perl. [ENTER]
  14. Модуль PERL Apache2::SOAP не установлен, хотите продолжить? [ENTER] (Это опциональная функция OCS, без нее все будет корректно работать.)
  15. Чтобы Apache 2 загружал модули Perl до старта OCS, программа установки переименует ocsinventory-server.conf в z-ocsinventory-server.conf. [ENTER]
  16. Да, мы хотим настроить Web Administration Console. [ENTER]
  17. Наша версия OCS устанавливается впервые, поэтому продолжаем. [ENTER]
  18. Куда копировать статические файлы PHP Web Console /usr/share/ocsinventory-reports. [ENTER]
  19. Каталоги с возможностью записи/кеширования для пакетов развертывания, а также журналы консоли администрирования, IpDiscover и SNMP будут находиться в /var/lib/ocsinventory-reports. [ENTER]
  20. Готово! Рестарт веб-сервера пока не делаем. Журнал установки лежит в /tmp/OCSNG_UNIX_SERVER-2.3.1/ocs_server_setup.log.

Задаем в z-ocsinventory-server.conf директиву PerlSetVar OCS_DB_PWD, то есть пароль пользователя ocs.

nano /etc/apache2/conf-available/z-ocsinventory-server.conf

PerlSetVar OCS_DB_PWD pass_mysql
 

Включаем конфиги

Отключим дефолтные и включим новые. Далее сделаем рестарт демона apache2.

a2dissite 000-default
a2enconf ocsinventory-reports
a2enconf z-ocsinventory-server
/etc/init.d/apache2 restart

Предоставляем пользователю www-data права на директории:

chown -R www-data:www-data /usr/share/ocsinventory-reports/
chmod 0755 /var/lib/ocsinventory-reports/

Теперь подключаемся по адресу http://domen_or_ip/ocsreports. Нас уведомят о том, что следовало бы избавиться от install.php. Удаляем его:

rm /usr/share/ocsinventory-reports/ocsreports/install.php

Дополнительно можно отключить AccessLog в Apache 2:

nano /etc/apache2/sites-available/000-default.conf

Комментируем эту строчку:

CustomLog ${APACHE_LOG_DIR}/access.log combined

Убрать версию Apache 2:

nano /etc/apache2/apache2.conf

Добавляем:

Hide version
ServerTokens ProductOnly
ServerSignature Off

Рестартуем:

/etc/init.d/apache2 restart

Убрать версию PHP 7.0:

nano /etc/php/7.0/apache2/php.ini

Добавляем:

expose_php = Off

И снова рестартуем Apache.

 

Установка агента в Windows 10

Скачиваем последний установщик и запускаем. От типа установки зависит, как будет производиться инвентаризация. Есть два варианта:

  • Network inventory — работает через сеть;
  • Local inventory может потребоваться для локального импорта, когда у хоста нет сети.

Настройку параметров прокси оставляем как есть.

Пишем адрес сервера — домен или IP-адрес. Безопасность обмена между агентом и сервером будет обеспечиваться сертификатом cacert.pem.

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

 

Установка плагинов

Ссылки на скачивание лучше брать с GitHub, так как на официальном сайте встречаются старые версии. Устанавливать будем на примере Office Pack. Этот плагин позволяет получать ключи от Microsoft Office.

Для установки нам понадобится положить скачанный плагин в /usr/share/ocsinventory-reports/ocsreports/download. Приступим.

wget -P /usr/share/ocsinventory-reports/ocsreports/download https://github.com/PluginsOCSInventory-NG/officepack/releases/download/1.1.1/officepack.zip

Далее в веб-интерфейсе нашего сервера открываем Plugins —> Plugins Manager, выбираем скачанный плагин и жмем Install. После успешной установки рестартуем демон Apache.

Осталось скачать плагин на компьютере с установленным агентом и распаковать файлик msofficekey.vbs (он лежит в officepack.zipagent) в C:Program Files (x86)OCS Inventory AgentPlugins.

В трее ищем наш агент, нажимаем правой кнопкой мыши и выбираем Run OCS Inventory NG Agent now.

Проверяем результат!

 

Конкурс продолжается

Мы решили продлить конкурс и превратить его в постоянную акцию. Прислав нам описание хака, полезный совет или описание клевой неизвестной проги, ты по-прежнему можешь получить подписку на месяц, три месяца или, если постараешься, на год. Следуй рекомендациям и присылай свой текст!

1 комментарий

  1. john_

    13.10.2017 at 05:41

    Интересна статья

Оставить мнение

Check Also

Скрытая сила пробела. Эксплуатируем критическую уязвимость в Apache Tomcat

В этой статье мы поговорим о баге в Apache Tomcat, популярнейшем веб-сервере для сайтов на…