Sentinel is a machine learning-based Intrusion Detection System (IDS) designed to provide real-time threat detection. It integrates the following components:
- 🕵️ Sniffer Module (C++): Captures and analyzes network traffic.
- ⚙️ Backend Server (Golang): Manages data flow and communication between modules.
- 💻 Frontend Interface (React + Vite): User-friendly app for visualization and threat inspection.
- 🧠 Machine Learning Module (Python): Enhances threat detection using AI.
- 🔔 Notification System: Alerts users about detected threats.
- Sniffer Module: Captures and analyzes network traffic.
- Backend Server: Ensures smooth communication between modules.
- Frontend Interface: Provides an intuitive interface for users.
- Machine Learning Module: Implements AI to detect threats.
- Notification System: Real-time alerts to users.
Ensure the following tools are installed:
- C++ Compiler (e.g., GCC or MSVC)
- CMake
- Golang
- Node.js & npm
or follow steps below
-
Clone the repository:
git clone https://github.com/your-username/sentinel.git cd sentinel
-
Run the configuration script:
-
Linux/Mac:
sh scripts/config.sh
or
bash scripts/config.sh
-
Windows: Right click on
scripts/config.bat
file and open it as administor
-
-
Build the Sniffer Module:
cd sniffer-mod mkdir build cd build
- For Linux/Mac:
cmake .. make
- For Windows:
cmake -G "Unix Makefiles" .. make
- For Linux/Mac:
-
Open other console and install dependencies:
npm install
-
Run backend and frontend concurrently:
npm start
OR manually start each:
Run the Backend Server: Open a new terminal and navigate to the src-go directory:
cd sentinel/src-go
go run main.go
Start the Frontend: Open another terminal in the sentinel directory:
npm run dev
- Access the Application: After starting the frontend, a URL will be displayed in the terminal (e.g., http://localhost:3000). Open it in your browser to use the app.
- Dashboard: View an overview of network activity and detected threats.
- Inspector: Analyze specific data points for deeper insights.
- Notifications: Stay informed of potential threats in real-time.