Skip to content

ozzf1ghter/InventoryLinux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InventoryLinux

GUI-утилита для Windows: инвентаризация установленных пакетов на парке Linux/FreeBSD-серверов по SSH. Параллельный опрос, автоопределение дистрибутива и пакетного менеджера, отчёты в CSV/JSON/XLSX.

InventoryLinux is a Windows GUI tool (PowerShell 5.1 / WinForms) for IT infrastructure engineers: it inventories installed packages across fleets of Linux/FreeBSD servers over SSH in parallel, auto-detects the distribution and package manager (dpkg/rpm/pacman/apk/pkg) and produces CSV/JSON/XLSX reports.

Возможности

  • Список целей: одиночные IP, диапазоны (10.0.0.5-10.0.0.20), CIDR (10.0.0.0/24), до 50000 адресов на запись.
  • Параллельный опрос (runspace pool, число потоков настраивается), пауза и остановка на ходу.
  • Автоопределение ОС и пакетного менеджера: dpkg, rpm, pacman, apk, pkg. Проверено на Debian/Ubuntu/Astra, RHEL/CentOS/Oracle Linux/Rocky/Alma/RED OS/ROSA/ALT/openSUSE, Arch/Manjaro, Alpine, FreeBSD.
  • Полный список пакетов или поиск по регулярному выражению (например, nginx|docker|postgresql).
  • Пул паролей с перебором до первого подходящего и кэшем успешных подключений (по IP+логину).
  • Отчёты: CSV, JSON и XLSX (лист Summary с подсветкой проблемных статусов + лист на каждый базовый дистрибутив), папки по дате скана, автоочистка старых отчётов.
  • Экспорт/импорт списка серверов (CSV) для переноса между машинами.

Требования

  • Windows с PowerShell 5.1 (поддерживается вплоть до Windows Server 2008 R2 с WMF 5.1).
  • Модуль Posh-SSH - ставится автоматически при первом тесте/скане (нужен доступ к PowerShell Gallery); для XLSX-отчётов так же автоматически ставится ImportExcel, без него будут только CSV/JSON.
  • На целевых серверах: доступ по SSH с парольной аутентификацией.

Запуск

Вариант 1 - собрать один exe (переносится на целевую машину единственным файлом):

powershell -ExecutionPolicy Bypass -File .\Build-Exe.ps1

Сборка использует модуль ps2exe (ставится автоматически, нужен интернет). Результат - InventoryLinux.exe рядом со скриптом.

Вариант 2 - запустить без сборки (файлы Inventory-Gui.ps1 и Common.ps1 должны лежать рядом):

powershell -ExecutionPolicy Bypass -File .\Inventory-Gui.ps1

Хранение данных и безопасность

  • Список серверов, настройки и пароли хранятся в профиле пользователя (%LOCALAPPDATA%\InventoryLinux), рядом с exe никаких файлов не создаётся.
  • Пароли шифруются DPAPI (привязка к учётной записи Windows и машине) и не покидают компьютер. При переносе на другую машину или запуске под другим пользователем пароли нужно ввести заново - это свойство DPAPI, а не недоработка.
  • Отчёты сохраняются в Документы\InventoryLinux\<дата скана>\.
  • Пароли не логируются и не попадают в отчёты и экспорт списка серверов.

Известные ограничения

  • Аутентификация только по паролю (поддержка SSH-ключей в планах).
  • Для очень старых sshd (RHEL/CentOS 5.x и ровесники) современному SSH.NET может не хватить поддержки старых алгоритмов обмена ключами - проверяйте такие серверы кнопкой "Тест соединения".
  • Учитывайте fail2ban/pam_tally на целевых серверах: большой пул паролей при большом числе потоков - это много неудачных попыток входа подряд.
  • Exe, собранный ps2exe, может вызывать ложные срабатывания антивирусов - это известная особенность упаковщика. Исходный код открыт, exe воспроизводится из него одной командой.

Файлы проекта

Файл Назначение
Inventory-Gui.ps1 Окно программы: весь UI и логика теста/скана
Common.ps1 Движок: IP/CIDR, DPAPI-хранилище, SSH, runspace pool
Build-Exe.ps1 Сборка обоих скриптов в один InventoryLinux.exe
README.txt Инструкция пользователя, прикладывается к exe

Обратная связь

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

Поддержать проект

Проект развивается в свободное время. Если утилита сэкономила вам пару часов рутины - можно закинуть на кофе, чтобы разработчик держал аптайм:

yoomoney.ru/to/4100110210023035

На доступность и функциональность это никак не влияет - программа была и остаётся бесплатной под лицензией MIT.

Подпись кода

This project uses free code signing provided by SignPath.io, certificate by SignPath Foundation.

Готовый InventoryLinux.exe публикуется в разделе Releases.

Лицензия

MIT

About

Windows GUI-утилита: инвентаризация пакетов на Linux/FreeBSD-серверах по SSH

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors