Данная система предназначена для учёта комплектующих в компьютерном парке, базирующемся на Windows. Я выложил систему под GNU/GPL v. 3 лицензией, так что денег не прошу, можете использовать как угодно... Все пожелания и т.п. обсуждаются отдельно... Особенности и возможности
Система работает под управлением ОС GNU Linux (на данный момент успешно обкатана на ubuntu 20.04). Система собирает информацию и создаёт оповещения в случае изменений в необходимых хостах (в частности информацию об:
- мак адрес сетевого адаптера
- ip адрес
- имя хоста
- информацию о мат. плате (по возможности и её серийный номер)
- информацию о процессоре (по возможности и её серийный номер)
- информацию об оперативной памяти (по возможности серийный номер, тип памяти - ECC или не ECC, объём)
- видеоадаптер (с указанием PNP Device id)
- жёсткие диски (можно опционально включить проверку тех, что подключены по USB или iSCSI) - серийный номер, модель, объём
).
Система позволяет производить анализ изменений, а также выгрузку данных в различные форматы и т.п.
Доступ к системе регулируется на основе двух ролей - администраторов (могут менять системные настройки и менять перечень проверяемых сетей/хостов); менеджеров - могут просматривать статистику и аналитику по проверяемым хостам.
-
Воруют периодически железо - если настроить обходчик на довольно частый период, то можно вполне поймать вора (так уже было обкатано и в ментуру система отправила свою пачку крыс). В этом случае одной данной системы мало, лучше ещё запастись системой видео наблюдения и/или СКУДом...
-
Надо держать актуализированную информацию о железе в парке конторы, т.к. бывает её запрашивает бухгалтерия.
-
Контролировать непонятные периодически возникающие в сети флешки с хер понятными линуксами. Если (положим по ИБ) запрещено совать в компьютеры флешки с кали...
В целом на реальном кейсе данная система работает вне пределов проверяемой локальной сети, так что тамошние админы в сути не могут повлиять на данные, находящиеся в БД системы. Для такого достаточно виртуалку с данной системой расположить у себя на балконе на каком нибудь хостинге и пробросить VPN до проверяемой сети. При этом на клиентских машинах ничего устанавливать НЕ НУЖНО. Единственными условиями успеха проверки выступают открытый 135 tcp порт на проверяемых машинках и ваше знание о паре логина/пароля для авторизации на них. В реальном кейсе, на текущий момент обход и сбор информации с 370 хостов производится примерно за 2 минуты с тонко подкрученными настройками.
-
Запускается nmap, в который передаются для проверки необходимые сети/хосты (к примеру 192.168.0.0/24 и заодно отдельно скажем проверить 192.168.22.2/32).
-
Nmap быстренько проверяет открытость портов по указанным диапазонам и формирует список "живых" хостов.
-
Далее по живым хостам начинается сбор информации о железе и прочем через протокол WMI.
-
Если не получилось в ходе забора информации с хоста получить данные (ну может отключили компик именно в это время), то он помечается как недоступный и съём инфы идёт дальше.
-
По мере получения инфы с хостов они сразу заносятся в БД и сопоставляются с ранее полученными данными по данному хосту. Опорной точкой сравнения является MAC адрес сетевого адаптера хоста.
-
По желанию в случае появления информации о новых, изменённых хостах может формироваться отправка сообщения о событии в телеграм (для этого нужно вам будет завести бота и выяснить id чата, куда кидать уведомления).
-
Также по желанию может быть сформирован сводный отчёт, который полетит на почту.
Вполне подойдёт виртуалка со скромными параметрами (скажем пара ядер на проце, хотя бы 1024 мгб ОЗУ и места на диске гигов так в 15).
Перед установкой на боевую машинку достаточно на ней сконфигурировать правильно сеть, после чего:
sudo -s
wget https://raw.githubusercontent.com/constantinekg/pcpo/main/doc/INSTALL.txt -O install.sh && chmod +x install.sh && ./install.sh
Администратор по умолчанию:
login: pcpoadmin
password: pcpoadmin1
Перед первым запуском необходимо войти в систему, открыв в браузере айпишник/доменное имя машинки, на которую была произведена установка. Далее перейти в раздел Настройки->Проверяемые сети/хосты и добавить необходимые диапазоны с указанием логина-пароля:
Далее идём в командную строку и выполняем первую проверку:
root@pcpo:~# /opt/pcpo/scanner/rerun.sh
Как только первая проверка завершится - можем идти в системные настройки и выставлять там параметры согласно нашим пожеланиям. После того, как все настройки будут выставлены - мы можем запланировать проверку на периодическую основу. Для этого откроем crontab (crontab -e) и добавим примерно такое:
#exec main data fetching process
3 */1 * * * /opt/pcpo/scanner/rerun.sh
Такая строчка позволит нам начинать проверку каждую третью минуту каждого часа.
Проект на гитхабе: https://github.com/constantinekg/pcpo
Готовый образ машины в формате qcow2: https://cloud.mail.ru/public/1EkR/b3DGfh2de
Обсуждение на хабре: https://habr.com/ru/post/570190/
Александру (в миру Михалыч) за площадку для обкатки и воплощение старой идеи
Димону за отладку и терпение
Артёму за крутой логотип