|
1 | | -# 🚨 NetAlert-3.0 |
| 1 | +# 🎯 YODA - Voice Activated IDS |
2 | 2 |
|
3 | | -NetAlert-3.0 is a LAN **Intrusion Detection System** (soon to become an Intrusion Prevention System) 🛡️ that continuously monitors your network for connected devices. |
4 | | -It identifies and displays key details for each device, including: |
| 3 | +> **Formerly NetAlert-3.0** |
5 | 4 |
|
6 | | -- 💻 **IP Address** |
7 | | -- 🏷️ **Hostname** |
8 | | -- 🔑 **MAC Address** |
9 | | -- 🏢 **Vendor** |
| 5 | +YODA is a voice-activated **Intrusion Detection System** designed for real-time LAN monitoring. Built with a hacker-themed dashboard and live network visualization, YODA tracks every device on your network and provides instant status updates. |
10 | 6 |
|
11 | | -⚡ **Coming Soon:** automatic open port scanning for each device, giving you deeper visibility into potential security risks. |
12 | | - |
13 | | -All monitoring data is served to a live 🌐 browser-based frontend for easy management and real-time awareness. |
14 | | - |
15 | | ---- |
16 | | - |
17 | | -## 📂 Directory Structure |
18 | | -``` |
19 | | -nsm_modules/ # Backend Python modules |
20 | | -web_modules/ # Frontend files |
21 | | -cpp_modules/ # (Optional) C++ modules |
22 | | -``` |
23 | | - |
24 | | ---- |
25 | | - |
26 | | -## ⚙️ How It Works |
27 | | -- **🧵 Background Threads** |
28 | | - - **📊 Summary Updater** – Updates stats like total nodes and currently online nodes. |
29 | | - - **🔍 ARP Scanner** – Runs interval-based ARP scans to discover all devices on the subnet. |
30 | | - |
31 | | -- **📡 Per-Device Monitoring** |
32 | | - - Each discovered device gets its own monitoring thread. |
33 | | - - Monitors whether the device is online or offline using repeated ARP checks. |
34 | | - |
35 | | -- **💻 HTTP Server** |
36 | | - - Hosts the web frontend. |
37 | | - - Dynamically loads `nodes.json` to display live device data. |
| 7 | +**🤖 AI-Powered (Coming Soon)** - We're working on integrating AI for intelligent threat detection and anomaly analysis. Contributions welcome! |
38 | 8 |
|
39 | 9 | --- |
40 | 10 |
|
41 | 11 | ## ✨ Features |
42 | | -- ⚡ Real-time LAN device discovery using ARP. |
43 | | -- 📶 Per-device status tracking. |
44 | | -- 🌐 Web interface for easy viewing of network activity. |
45 | | -- 🛡️ IDS core ready for future IPS features. |
46 | | -- 📋 Device information: IP, hostname, MAC, vendor. |
47 | | -- 🔮 (Planned) Per-device open port scanning. |
| 12 | + |
| 13 | +- 🔍 **Real-time device discovery** via ARP scanning |
| 14 | +- 🎨 **Hacker-themed web dashboard** with Matrix effects |
| 15 | +- 📊 **Live monitoring** of IP, MAC, hostname, vendor info |
| 16 | +- 🗣️ **Voice commands** (hold spacebar to activate) |
| 17 | +- 🔴 **Online/Offline tracking** for all network nodes |
| 18 | +- ⚡ **No symlinks required** - data served directly from memory |
| 19 | +- 🌐 **Cross-platform** support (Linux, macOS, Windows) |
48 | 20 |
|
49 | 21 | --- |
50 | 22 |
|
51 | | -## 🚀 Setup & Running |
| 23 | +## 🚀 Quick Start |
52 | 24 |
|
53 | | -1. **Navigate to the backend folder** |
| 25 | +1. **Clone and navigate** |
54 | 26 | ```bash |
55 | 27 | cd nsm_modules |
56 | 28 | ``` |
57 | 29 |
|
58 | | -2. **Create and activate a virtual environment** |
| 30 | +2. **Setup virtual environment** |
59 | 31 | ```bash |
60 | | - python3 -m venv .venv |
61 | | - source .venv/bin/activate |
| 32 | + python3 -m venv venv |
| 33 | + source venv/bin/activate # On Windows: venv\Scripts\activate |
62 | 34 | ``` |
63 | 35 |
|
64 | | -3. **Install dependencies** |
| 36 | +3. **Install dependencies** |
65 | 37 | ```bash |
66 | 38 | pip install -r ../requirements.txt |
67 | 39 | ``` |
68 | 40 |
|
69 | | -4. **Run the backend + frontend server** |
| 41 | +4. **Run YODA** |
70 | 42 | ```bash |
71 | | - sudo .venv/bin/python nsm_main.py |
| 43 | + sudo venv/bin/python nsm_main.py |
72 | 44 | ``` |
73 | 45 |
|
74 | | -5. **📝 CLI Startup Prompts** |
75 | | - When starting, the program will ask for: |
76 | | - - **Interface** (`iface`) – Example: `eth0` or `wlan0` |
77 | | - - **Subnet** – Example: `192.168.1.0/24` |
78 | | - - **Mode** – Choose **GUI** unless you specifically want to test the unfinished CLI version. |
| 46 | +5. **Access the dashboard** |
| 47 | + - The program will prompt you for: |
| 48 | + - **Interface** (e.g., `eth0`, `wlan0`) |
| 49 | + - **Subnet** (e.g., `192.168.1.0/24`) |
| 50 | + - **Mode** (choose **GUI**) |
| 51 | + - Open your browser to the URL displayed in terminal (typically `http://localhost:8000/yoda.html`) |
79 | 52 |
|
80 | | -6. **🌍 Access the Frontend** |
81 | | - Once started, the terminal will print a link to open in your browser for the live GUI view. |
| 53 | +--- |
| 54 | + |
| 55 | +## 🎮 Usage |
| 56 | + |
| 57 | +- **Auto-refresh**: Dashboard updates every 2 seconds (configurable) |
| 58 | +- **Search & Filter**: Find nodes by IP, hostname, vendor, or MAC |
| 59 | +- **Voice Commands**: Hold spacebar and say "refresh", "lockdown", or "clear" |
| 60 | +- **Inspect Nodes**: Click INSPECT to view detailed device information |
| 61 | +- **Emergency Lockdown**: Visual alert system (future: actual network blocking) |
82 | 62 |
|
83 | 63 | --- |
84 | 64 |
|
85 | | -## 🔗 Optional: Symlink for `nodes.json` in `web_modules` |
| 65 | +## 🤝 Contributing |
86 | 66 |
|
87 | | -If you want the frontend in `web_modules` to directly use the live `nodes.json` file from the backend without copying it, create a symbolic link: |
| 67 | +Contributions are **welcome**, especially for: |
| 68 | +- 🤖 **AI integration** for threat detection |
| 69 | +- 🔒 **Automated blocking/prevention** features |
| 70 | +- 🎤 **Enhanced voice commands** |
| 71 | +- 📡 **Port scanning integration** |
88 | 72 |
|
89 | | -```bash |
90 | | -cd web_modules |
91 | | -ln -s ../../.data/netalert3/nodes.json . |
92 | | -``` |
| 73 | +Submit PRs to [github.com/nsm-barii/netalert-3.0](https://github.com/nsm-barii/netalert-3.0) |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## 📋 Requirements |
| 78 | + |
| 79 | +- Python 3.x |
| 80 | +- Scapy |
| 81 | +- Rich (for CLI) |
| 82 | +- See `requirements.txt` for full dependencies |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## 📁 Project Structure |
93 | 87 |
|
94 | | -Alternatively, you can point the frontend to read from: |
95 | 88 | ``` |
96 | | -~/Documents/nsm_tools/.data/netalert3/nodes.json (NOT RECOMMENDED) |
| 89 | +nsm_modules/ # Backend Python modules |
| 90 | +web_modules/ # Frontend (HTML/CSS/JS) |
| 91 | + ├── yoda.html # Main dashboard |
| 92 | + ├── css/ # Styles |
| 93 | + └── js/ # JavaScript + Matrix effects |
97 | 94 | ``` |
98 | 95 |
|
99 | | -This ensures the web interface always displays the latest device data. |
100 | | - |
101 | 96 | --- |
102 | 97 |
|
103 | | -## 📦 Requirements |
104 | | -- 🐍 Python 3.x |
105 | | -- [📡 Scapy](https://scapy.net/) |
106 | | -- 📄 `requirements.txt` dependencies |
| 98 | +**Built by NSM Barii** | [GitHub](https://github.com/nsm-barii/netalert-3.0) | Contributions Welcome |
0 commit comments