Skip to main content

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

Release files for checkmaster 0.9.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for checkmaster 0.9.7
File Size Uploaded
checkmaster-0.9.7.tar.gz 23.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for checkmaster 0.9.7
File Interpreter ABI Platform
checkmaster-0.9.7-py3-none-any.whl Python 3 none any Details

Total release size: 47.4 kB

Release files / checkmaster-0.9.7.tar.gz

Download URL checkmaster-0.9.7.tar.gz
Size 23.0 kB
Tags Source
SHA-256 checksum
How to use checksums
511be1ecce80884f12f87861b9edcdd4706ef91d466313e5e00dbd13c14d2d47
BLAKE2b-256 checksum
How to use checksums
366911abbf90add2ddff03c983ee73b6a0de0273feb2b13c1284dabbf6d9d17d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / checkmaster-0.9.7-py3-none-any.whl

Download URL checkmaster-0.9.7-py3-none-any.whl
Size 24.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b793080a43f1d256125c12b3fcd16b58f25cb9aa86e77293998d12c9c21141f
BLAKE2b-256 checksum
How to use checksums
65d8cb8d7e20967691973a3ce8799ec5858b929ca6bcda0d79ca268b7bd2cd8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.9.7 This release

2 release files

0.9.6

2 release files

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.10

1 release file

0.7.9

1 release file

0.7.8

1 release file

0.7.7

1 release file

0.7.6

1 release file

0.7.5

1 release file

0.7.4

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page