Skip to main content

A production-ready Linux security auditing toolkit with a Typer CLI.

Project description

Sentinel

Sentinel is a local-first Linux security auditing and hardening toolkit designed to give developers and system administrators clear, actionable insight into their system’s security posture.

It combines a CLI with a lightweight local dashboard to make Linux security simple, visible, and actionable without relying on cloud services or telemetry.


Features

  • Security Scanning

    • Open ports and exposed services
    • SSH configuration auditing
    • Firewall status and rules
    • File permission checks
    • Authentication log analysis
  • System Hardening (WIP)

    • Safe, reversible security configurations
    • SSH hardening (disable root login, password auth)
    • Firewall setup and defaults
    • Secure system recommendations
  • Security Scoring

    • Simple, understandable score (0–100)
    • Severity-based issue classification
    • Clear recommendations for improvement
  • Auth Log Monitoring

    • Failed login detection
    • Brute-force attempt indicators
  • Permission Auditing

    • World-writable file detection
    • Sensitive file misconfigurations
  • Local Dashboard (Planned)

    • Visualize system security in real-time
    • Track trends and historical data
    • Fully local — no external connections
  • JSON Reporting

    • Machine-readable reports
    • Easy integration with other tools
  • Privacy First

    • No telemetry
    • No cloud dependency
    • Runs entirely on your machine

Philosophy

Sentinel is built around a few core principles:

  • Local-first security — your data stays on your system
  • Transparency over automation — nothing changes without your consent
  • Secure defaults — highlight real risks, not noise
  • Developer-friendly — simple CLI, clean output, easy to extend

Installation

python3 -m pip install -e .

Install as a CLI

From the project root:

python3 -m pip install -e .
sentinel scan

Install (Recommended)

Using pipx

After publishing to PyPI:

sudo apt install pipx -y
pipx ensurepath
pipx install sentinel-linux
sentinel scan

Local development with pipx

From the project root:

pipx install --editable .
sentinel scan

Usage

Run a full security scan

sentinel scan

Show detailed per-module results

sentinel scan --verbose

Emit JSON for automation

sentinel scan --json

View system security status

sentinel status

Output full JSON report

sentinel report

Run in module mode

python3 -m sentinel scan
python3 -m sentinel status
python3 -m sentinel report

Report storage

Sentinel writes the latest JSON report to a user-writable location:

$XDG_DATA_HOME/sentinel/latest_report.json

If XDG_DATA_HOME is unset, Sentinel falls back to:

~/.local/share/sentinel/latest_report.json

Example Output

[+] Checking firewall...
[+] Checking SSH configuration...
[+] Checking open ports...
[+] Checking auth logs...
[+] Checking file permissions...

Security Score: 72/100

Warnings:
- Firewall is disabled
- SSH password authentication is enabled
- Port 3306 is exposed

Recommendations:
- Enable UFW
- Disable SSH password authentication
- Restrict database ports to localhost

Project Structure

sentinel/
├── sentinel/
│   ├── cli.py
│   ├── scanner.py
│   ├── scorer.py
│   ├── reporter.py
│   ├── utils.py
│   ├── modules/
│   │   ├── ports.py
│   │   ├── firewall.py
│   │   ├── ssh_audit.py
│   │   ├── auth_logs.py
│   │   └── permissions.py
│   └── dashboard/
│       └── app.py
├── tests/
├── requirements.txt
└── README.md

Dashboard (Coming Soon)

Sentinel will include a lightweight local dashboard that provides:

  • Security score visualization
  • Detailed findings by category
  • Historical trends
  • Real-time alerts

The dashboard will run locally and consume the same reports generated by the CLI from Sentinel's user data directory.


Roadmap

  • Hardening commands (sentinel harden)
  • Fail2Ban integration
  • Docker/container security checks
  • Systemd service auditing
  • CVE/package vulnerability checks
  • Dashboard UI
  • Historical tracking and scoring trends

Contributing

Contributions are welcome!

If you'd like to contribute:

  • Open an issue for bugs or feature requests
  • Submit a pull request with improvements
  • Help expand detection modules

Disclaimer

Sentinel provides security insights and recommendations, but it does not guarantee complete system security. Always review changes before applying hardening actions.


License

MIT License


Support

If you find this project useful, consider giving it a star.

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

sentinel_linux-0.1.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sentinel_linux-0.1.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file sentinel_linux-0.1.0.tar.gz.

File metadata

  • Download URL: sentinel_linux-0.1.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sentinel_linux-0.1.0.tar.gz
Algorithm Hash digest
SHA256 92f86696126b9c1e3d1dcfab48d573799c4b30b2a38acecfd878402eeefdaa7a
MD5 6e7cec0d412e36969a5912d862f81c7e
BLAKE2b-256 c7320ecc82011c2ff27ac943c08c089d1c3f06d7520168157fbfac249896daed

See more details on using hashes here.

File details

Details for the file sentinel_linux-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sentinel_linux-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sentinel_linux-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09b048d8d7f73960ae04343c2742c404d7b0593ba8fcc76eb79af4db550ae728
MD5 c993f028e319d3a362cb1f54ce3b4f9b
BLAKE2b-256 5c8c830421ad2492e5aef321e73a18cbadaeb3409b5206c91fe8a88ac8457931

See more details on using hashes here.

Supported by

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