SkillAgentSearch skills...

Pcpo

PC Park observer

Install / Use

/learn @constantinekg/Pcpo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PC park observer - система учёта комплектующих компьютеров парка, базирующегося на MS Windows

PC park observer

Для чего эта система

Данная система предназначена для учёта комплектующих в компьютерном парке, базирующемся на Windows. Я выложил систему под GNU/GPL v. 3 лицензией, так что денег не прошу, можете использовать как угодно... Все пожелания и т.п. обсуждаются отдельно... Особенности и возможности

Система работает под управлением ОС GNU Linux (на данный момент успешно обкатана на ubuntu 20.04). Система собирает информацию и создаёт оповещения в случае изменений в необходимых хостах (в частности информацию об:

  • мак адрес сетевого адаптера
  • ip адрес
  • имя хоста
  • информацию о мат. плате (по возможности и её серийный номер)
  • информацию о процессоре (по возможности и её серийный номер)
  • информацию об оперативной памяти (по возможности серийный номер, тип памяти - ECC или не ECC, объём)
  • видеоадаптер (с указанием PNP Device id)
  • жёсткие диски (можно опционально включить проверку тех, что подключены по USB или iSCSI) - серийный номер, модель, объём

).

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

Доступ к системе регулируется на основе двух ролей - администраторов (могут менять системные настройки и менять перечень проверяемых сетей/хостов); менеджеров - могут просматривать статистику и аналитику по проверяемым хостам.

Реальные кейсы применения:

  1. Воруют периодически железо - если настроить обходчик на довольно частый период, то можно вполне поймать вора (так уже было обкатано и в ментуру система отправила свою пачку крыс). В этом случае одной данной системы мало, лучше ещё запастись системой видео наблюдения и/или СКУДом...

  2. Надо держать актуализированную информацию о железе в парке конторы, т.к. бывает её запрашивает бухгалтерия.

  3. Контролировать непонятные периодически возникающие в сети флешки с хер понятными линуксами. Если (положим по ИБ) запрещено совать в компьютеры флешки с кали...

В целом на реальном кейсе данная система работает вне пределов проверяемой локальной сети, так что тамошние админы в сути не могут повлиять на данные, находящиеся в БД системы. Для такого достаточно виртуалку с данной системой расположить ~~у себя на балконе~~ на каком нибудь хостинге и пробросить VPN до проверяемой сети. При этом на клиентских машинах ничего устанавливать НЕ НУЖНО. Единственными условиями успеха проверки выступают открытый 135 tcp порт на проверяемых машинках и ваше знание о паре логина/пароля для авторизации на них. В реальном кейсе, на текущий момент обход и сбор информации с 370 хостов производится примерно за 2 минуты с тонко подкрученными настройками.

Как всё пашет под капотом

  1. Запускается nmap, в который передаются для проверки необходимые сети/хосты (к примеру 192.168.0.0/24 и заодно отдельно скажем проверить 192.168.22.2/32).

  2. Nmap быстренько проверяет открытость портов по указанным диапазонам и формирует список "живых" хостов.

  3. Далее по живым хостам начинается сбор информации о железе и прочем через протокол WMI.

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

  5. По мере получения инфы с хостов они сразу заносятся в БД и сопоставляются с ранее полученными данными по данному хосту. Опорной точкой сравнения является MAC адрес сетевого адаптера хоста.

  6. По желанию в случае появления информации о новых, изменённых хостах может формироваться отправка сообщения о событии в телеграм (для этого нужно вам будет завести бота и выяснить id чата, куда кидать уведомления).

  7. Также по желанию может быть сформирован сводный отчёт, который полетит на почту.

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

  1. Необходимо установить ssh сервер на клиентские машины
  2. Необходимо установить powershell 7 в директорию, предлагаемую установщиком по умолчанию

Минимальные системные требования к серверу

Вполне подойдёт виртуалка со скромными параметрами (скажем пара ядер на проце, хотя бы 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

Такая строчка позволит нам начинать проверку каждую третью минуту каждого часа.

Если необходимо производить проверки в бесконечном цикле (режим демона), то демона можно завезти выполнив:

sudo /opt/pcpo/daemon/daemon_install.sh

Проверка на выключенные хосты:

Выполняется отдельным сценарием вызовом на исполнение файла (по умолчанию - /opt/pcpo/scanner/checkrunnedhosts.py)

Чтобы вызывать в периодическом режиме в крон можно например добавить:

1 * * * * /opt/pcpo/scanner/checkrunnedhosts.py

Все параметры проверки на выключенные хосты устанавливаются в системных настройках.

Ресурсы:

Проект на гитхабе: https://github.com/constantinekg/pcpo

Готовый образ машины в формате qcow2: https://cloud.mail.ru/public/rtyj/D81UpPHXW

Обсуждение на хабре: https://habr.com/ru/post/570190/

Отдельные благодарности:

Александру (в миру Михалыч) за площадку для обкатки и воплощение старой идеи 
 Димону за отладку и терпение
Артёму за крутой логотип

Related Skills

View on GitHub
GitHub Stars17
CategoryDevelopment
Updated26d ago
Forks4

Languages

Python

Security Score

85/100

Audited on Mar 13, 2026

No findings