Skip to main content

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.

CI build License Python version Downloads Downloads

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: image

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

checkmaster-0.9.6.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

checkmaster-0.9.6-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file checkmaster-0.9.6.tar.gz.

File metadata

  • Download URL: checkmaster-0.9.6.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

Hashes for checkmaster-0.9.6.tar.gz
Algorithm Hash digest
SHA256 568b1bf7aa2f4d0a548ac98b7dd8b05830642910ddc4998e6f8ea8c66424e3d5
MD5 0b1aec9f0a61538738773179d2764c7e
BLAKE2b-256 6ceaf7a1a4d9b5f6c415f6efa80f62bf175514b5ac40704872cb71c47c9c0bdd

See more details on using hashes here.

File details

Details for the file checkmaster-0.9.6-py3-none-any.whl.

File metadata

  • Download URL: checkmaster-0.9.6-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

Hashes for checkmaster-0.9.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c9a713fbc43052926aa9e46f132a351c4892a1d53cf0bd5464ff9c7bbbc544ce
MD5 baadf07648a325fa765ce99c5fa4005e
BLAKE2b-256 1bfcfa9aaafe4773b41fd93b0314fca4a05c1878cbf25b7f762b65e2357f091a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page