THIS PROJECT IS STILL IN AN ALPHA STATE AND SHOULD NOT BE USED IN PRODUCTION ENVIRONMENTS.
Neith was an early Egyptian deity who was the first god and creator of the universe. It is also said she controlled and knew all that was within it. The scope of this dashboard is to give visibility and control to any desired remotely connectable systems.
Project Neith aspires to be an easily extensible dashboard which allows for the monitoring and control of virtually any remotely accessible technology. It's primary target for its initial release is to hook in to common infrastructure and security tooling which exists in most enterprises. These include systems such as Active Directory, VMware, antivirus, backup, endpoints, and more.
This project is in very very early stages, please feel free to comment, open issues, and make any suggestions. I do not come from a software background so this is all new territory for me and I know there are many aspects of the programs design which can be improved. (encrypted tables for credentials/keys, breaking up the dbconfig.ps1 file, etc.)
Universal Dashboard Universal Dashboard is a module made by Adam Driscoll which allows for the easy creation of webpages using PowerShell. More information can be found here, I highly recommend checking out this awesome project!
SQL Server Express (Postgres and others to come later!) SQL Server Express is used to store the results of the various integrations and data-pulls performed from the different integrations. Some integrations require no use of the database but many do.
Required
Optional
Install-Module -Name VMware.PowerCLI
Import-Module -Name SQLPS
Within the pages
directory new integration folders are created. Each folder should have a couple files, a README explaining the ingegration, a ps1 file for the pages which will be made avaialble in the webserver, an optional file to create the database tables required. A scheduled_tasks
file should be provided if periodic data collections are required or needed for the technology.
Project Neith has a simple workflow where integrations are selected from a list of available modules, once activated they create the appropriate database tables and scheduled tasks to retreive data if required, the pages associated with each integration are then added to the website navigation menus. Additionally, because of it's highly modular design, it is often a matter of tweaking a single file or two in order to add new visualizations, or change how the various pages look.
From a PowerShell Prompt:
1) Install Universal Dashboard
Install-Module -Name UniversalDashboard -AcceptLicense -Confirm
2) Clone the code
git clone https://github.com/theabraxas/UltimateDashboard
3) Prepare the database
Run the ./dbconfig.ps1
script
4) Launch Dashboard
./main.ps1
_Note: The data collection scripts are not yet running automatically, to load the data, navigate to the /pages/integrationname directory and run the sqlimporter.ps1 scripts
Menu with a few integrations enabled:
Integration selection menu:
AD Summary Information Page:
AD Computer Information:
AD Computer Live Information:
AD User Summary Page:
Cylance Information:
VMware Information:
This project is based on a web server which leverages both a database and live calls to various datasources to produce visualizations, tables, health checks, and interactive capabilities.
The database is populated both by the activites performed in the web interface as well as through a series of data collection scripts which can be set as cron jobs or schedule tasks.
These collecters are located included in the scheduled_jobs folder, a separate README will be provided in that folder to describe configurations and recommended ways to implement.
A SQL Express server is used in the documentation here although a full SQL server can be leveraged if available. The server will store various data depending on what is enabled in the dashboard. These will allow for longer-term analysis of the environment's health.
The webserver is, as mentioned previously, utilizing PowerShell UniversalDashboard and requires no additional services or technologies to be running in order to run. It can only run on Windows systems and binds to a port specified in dashboard.ps1