Skip to content

Network Sentinel is a modular, protocol-aware port scanner designed for architects, SOC teams, and security engineers. It scans TCP ports across defined targets, flags known vulnerabilities via CVE-style mapping, and visualizes results through a Flask dashboard.

License

Notifications You must be signed in to change notification settings

vooradis/network-sentinel

Repository files navigation

🛡️ Network Sentinel (Python)

A protocol-aware, enterprise-grade TCP port scanner built in Python. Designed to detect open ports, flag risky services, and log results in structured formats. Includes YAML configuration, CVE-based risk scoring, Flask dashboard, unit tests, and CI-ready architecture.


🚀 Features

✅ TCP port scanning via socket
🧠 CVE-aware risk flagging using YAML map
📄 YAML-based configuration for targets and timeouts
📜 Structured logging in CSV or JSON
🌐 Flask dashboard for scan visualization
🧪 Unit tests for core modules
🔁 CI-ready with semantic commit flow
📦 Modular codebase for future integrations


🧰 Installation

git clone https://github.com/vooradis/network-sentinel.git
cd network-sentinel
pip install -r requirements.txt

⚙️ Configuration Edit data/config.yaml to define scan targets and parameters:

targets:
  - ip: "192.168.1.1"
    ports: [22, 443]
  - ip: "10.0.0.5"
    ports: [23, 3389]
    timeout: 2
    log_format: "csv"

Edit data/port_risks.yaml to define risk levels:

22: "Medium - SSH exposure"
23: "High - Telnet vulnerability"
3389: "High - RDP risk"
443: "Safe - TLS"

🧪 Usage

Run TCP scan:

python run.py

Run unit tests:

python -m unittest discover tests

Launch dashboard:

python network_sentinel/dashboard.py

Visit http://localhost:5000 to view scan results.


📦 Project Structure

network-sentinel/
├── run.py
├── requirements.txt
├── README.md
├── data/
│ ├── config.yaml
│ └── port_risks.yaml
├── templates/
│ └── index.html
├── network_sentinel/
│ ├── **init**.py
│ ├── scanner.py
│ ├── utils.py
│ ├── logger.py
│ ├── risk_engine.py
│ └── dashboard.py
└── tests/
├── **init**.py
├── test_utils.py
└── test_risk_engine.py

☁️ Cloud Architecture Use Case

This tool can be deployed across internal nodes or cloud VMs:

  • Validates open TCP ports across defined IPs
  • Flags risky services using CVE-style mapping
  • Logs structured metrics for dashboards and alerts
  • Modular design supports cloud-native extensions
  • Ideal for CI pipelines and security audits

🧠 Design Philosophy

Built with clarity, modularity, and observability in mind. Reflects principles of testability, deployment readiness, and real-world applicability.


👨‍💻 Author

Samrat Vooradi
From Code to Cloud | Architecting What's Next.


📜 License

This project is licensed under the MIT License

About

Network Sentinel is a modular, protocol-aware port scanner designed for architects, SOC teams, and security engineers. It scans TCP ports across defined targets, flags known vulnerabilities via CVE-style mapping, and visualizes results through a Flask dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published