Содержание статьи
Поздравляем участника конкурса
Этот текст был прислан на конкурс авторов, который мы запустили весной. Мы разобрались с большим количеством пришедших материалов, подвели итоги и наградили победителей. Автор этой заметки получил приз — трехмесячную подписку на «Хакер». Поздравляем!
Ключевые особенности:
- удобный веб-интерфейс;
- расширение возможностей плагинами;
- поддержка 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
- Мы уверены и хотим продолжить. [ENTER]
- Наш MySQL-сервер запущен на локальном хосте. [ENTER]
- И работает он на порте 3306. [ENTER]
- Бинарник демона apache2 находится в
/usr/sbin/apache2ctl
. [ENTER] - Конфигурационный файл лежит тут:
/etc/apache2/apache2.conf
. [ENTER] - Apache2 работает от пользователя
www-data
. [ENTER] - Который входит в группу www-data. [ENTER]
- Программа установки поместит конфигурационный файл OCS Inventory NG в директорию
/etc/apache2/conf-available
. [ENTER] - Бинарник PERL расположен тут:
/usr/bin/perl
. [ENTER] - Да, мы хотим настроить конфигурационный сервер на этом компьютере. [ENTER]
- Размещаем логи сервера OCS в
/var/log/ocsinventory-server
. [ENTER] - Конфигурационные файлы плагинов будут лежать тут: /etc/ocsinventory-server/plugins. [ENTER]
- Задаем расположение модулей Perl:
/etc/ocsinventory-server/perl
. [ENTER] - Модуль PERL Apache2::SOAP не установлен, хотите продолжить? [ENTER] (Это опциональная функция OCS, без нее все будет корректно работать.)
- Чтобы Apache 2 загружал модули Perl до старта OCS, программа установки переименует
ocsinventory-server.conf
вz-ocsinventory-server.conf
. [ENTER] - Да, мы хотим настроить Web Administration Console. [ENTER]
- Наша версия OCS устанавливается впервые, поэтому продолжаем. [ENTER]
- Куда копировать статические файлы PHP Web Console
/usr/share/ocsinventory-reports
. [ENTER] - Каталоги с возможностью записи/кеширования для пакетов развертывания, а также журналы консоли администрирования, IpDiscover и SNMP будут находиться в
/var/lib/ocsinventory-reports
. [ENTER] - Готово! Рестарт веб-сервера пока не делаем. Журнал установки лежит в
/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.
Проверяем результат!
Конкурс продолжается
Мы решили продлить конкурс и превратить его в постоянную акцию. Прислав нам описание хака, полезный совет или описание клевой неизвестной проги, ты по-прежнему можешь получить подписку на месяц, три месяца или, если постараешься, на год. Следуй рекомендациям и присылай свой текст!