Tool that checks the system capabilities
Project description
checkmaster
Quick validation tool to check the prerequisites for a typical Server or workstation; configurable, extensible and fast.
Setup
yum install python3 python3-devel
# OR
apt install python3 python3-dev
pip install checkmaster
Usage
If executed without a configuration file, checkmaster returns some general information on the specific environment where it's been executed.
{
"base": "debian",
"name": "ubuntu",
"codename": "jammy",
"version": "22.04",
"cores": 16,
"free_ram": 20.43,
"user": "wert",
"uid": 1000,
"public ip": "153.50.22.250",
"private ip": "192.168.0.65",
"private hostname": "pro.hub",
"other private ips": "",
"other private ipv6": [
"::1",
"fe80::686:1117:8a81:4015",
"fe80::42:f4ff:fe30:6622",
"fe80::dcac:dcff:fe33:3bbc"
]
}
Adding the parameter --debug ERROR
will show only errors and not the all logs.
checkmaster -c example_conf.json --debug ERROR --log-style raw
Example of checkmaster output with only errors:
ERROR checkmaster.sockets.ingoing_port {'kind': 'tcp', 'port': 8080, 'addrs': ['0.0.0.0']}
ERROR checkmaster.sockets.ingoing_port {'kind': 'tcp', 'port': 8443, 'addrs': ['0.0.0.0']}
ERROR checkmaster.sockets.ingoing_port {'kind': 'tcp', 'port': 5044, 'addrs': ['0.0.0.0']}
ERROR checkmaster.sockets.ingoing_port {'kind': 'udp', 'port': 1514}
ERROR checkmaster.sockets.ingoing_port {'kind': 'tcp', 'port': 1515, 'addrs': ['0.0.0.0']}
ERROR checkmaster.sockets.outgoing_port {'addr': 'that-host.net', 'port': 5150, 'kind': 'tcp', 'timeout': 2}
ERROR checkmaster.sockets.outgoing_port {'addr': 'that-host.net', 'port': 443, 'kind': 'tcp', 'timeout': 2}
ERROR checkmaster.sockets.outgoing_port {'addr': 'that-host.net', 'port': 5986, 'kind': 'tcp', 'timeout': 2}
ERROR checkmaster.sockets.outgoing_port {'addr': 'that-host.net', 'port': 22, 'kind': 'tcp', 'timeout': 2}
Normal checkmaster output:
To convert the configuration file format:
checkmaster -c examples/example_conf.yaml --yaml-to-json
checkmaster -c examples/example_conf.json --json-to-yaml
To filter by rules on the execution tag basis:
checkmaster -c examples/example_conf.json --tags mine
2021-10-24 15:37:32 INFO checkmaster.sockets.ingoing_port {'kind': 'tcp', 'port': 22, 'addrs': ['0.0.0.0'], 'tag': 'mine'}
Configuration file
- Example json configuration file: this example
- Example yaml configuration file: this example
Contribute
Open to contribution, please feel free to open new issues and pull requests.
For Developers
As you can see each checkmaster rule in the example configuration json file, has a python package and a function named something like checkmaster.sockets.ingoing_port
where checkmaster.sockets
is the python package and the function is ingoing_port
.
This means that you can use your custom package.function
and load into checkmaster without performing any changes on the checkmaster code!
Compiling checkmaster for windows
sudo apt install wine
wget https://www.python.org/ftp/python/3.7.6/python-3.7.6-amd64.exe
wine msiexec /i python-3.7.6-amd64.exe /qb
wine /home/$USER/.wine/drive_c/users/$USER/Local\ Settings/Application\ Data/Programs/Python/Python37/Scripts/pip install checkmaster pyinstaller
wine /home/$USER/.wine/drive_c/users/$USER/Local\ Settings/Application\ Data/Programs/Python/Python37/Scripts/pyinstaller \
-F --clean \
--hidden-import checkmaster.filesystems \
--hidden-import checkmaster.distribution \
--hidden-import checkmaster.hardware \
--hidden-import checkmaster.sockets \
--hidden-import checkmaster.commands \
--paths /home/$USER/.wine/drive_c/users/$USER/Local\ Settings/Application\ Data/Programs/Python/Python37/site-packages /home/$USER/.wine/drive_c/users/$USER/Local\ Settings/Application\ Data/Programs/Python/Python37/Scripts/checkmaster
Expect number of false positives with VirtusTotal with the above compilation process, so to bypass that proceed as follow:
pip uninstall pyinstaller
Then download and install VS Cpp Community Edition.
Download pyInstaller package and unzip it in C:\Pyinstaller
then
cd C:\Pyinstaller\bootloader
python ./waf all --target-arch=64bit
set PYPATH="c:\users\utente\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\roaming\python\python39"
pyinstaller -F --hidden-import checkmaster.filesystems --hidden-import checkmaster.distribution --hidden-import checkmaster.hardware --hidden-import checkmaster.sockets --hidden-import checkmaster.commands --paths $PYPATH\site-packages $PYPATH\\Scripts\checkmaster
If you are still having false positive from virus total consider sending your checkmaster.exe to antivirus vendors!
Authors
- Giuseppe De Marco
- 4Securitas ACSIA Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file checkmaster-0.9.7.tar.gz
.
File metadata
- Download URL: checkmaster-0.9.7.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 511be1ecce80884f12f87861b9edcdd4706ef91d466313e5e00dbd13c14d2d47 |
|
MD5 | 959b56cc8bfeb7f40b1ea8c5a41eabe7 |
|
BLAKE2b-256 | 366911abbf90add2ddff03c983ee73b6a0de0273feb2b13c1284dabbf6d9d17d |
File details
Details for the file checkmaster-0.9.7-py3-none-any.whl
.
File metadata
- Download URL: checkmaster-0.9.7-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b793080a43f1d256125c12b3fcd16b58f25cb9aa86e77293998d12c9c21141f |
|
MD5 | 06e9965e6a9640746333c37f36f52b51 |
|
BLAKE2b-256 | 65d8cb8d7e20967691973a3ce8799ec5858b929ca6bcda0d79ca268b7bd2cd8d |