Téléverser les fichiers vers "/"
This commit is contained in:
557
README.md
Normal file
557
README.md
Normal file
@@ -0,0 +1,557 @@
|
||||
# 🤖 NetWatch AI - Bot de Surveillance Réseau Intelligent
|
||||
|
||||
**Projet complet de surveillance réseau avec IA, détection d'OS, identification de fabricants et dashboard web moderne.**
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## 📦 Contenu du Projet
|
||||
|
||||
### Scripts Principaux
|
||||
|
||||
- **`network_ai_bot.py`** - Bot principal de scan réseau avec IA
|
||||
- **`mac_vendor_db.py`** - Module de détection de fabricants (base OUI IEEE)
|
||||
- **`web_dashboard.py`** - Dashboard web avec interface moderne
|
||||
- **`nmap_os_detector.py`** - Module optionnel pour détection OS avancée avec nmap
|
||||
|
||||
### Fichiers de Configuration
|
||||
|
||||
- **`ports_config.txt`** - Configuration des 73+ ports à scanner (auto-chargé)
|
||||
- **`config.example.json`** - Exemple de configuration avancée
|
||||
- **`requirements.txt`** - Dépendances Python
|
||||
|
||||
### Scripts Utilitaires
|
||||
|
||||
- **`install.sh`** - Script d'installation automatique
|
||||
- **`demo.py`** - Démonstration du bot sans scan réel
|
||||
|
||||
### Interface Web
|
||||
|
||||
- **`templates/dashboard.html`** - Interface HTML du dashboard
|
||||
- **`static/css/dashboard.css`** - Design cybersécurité/tech noir
|
||||
- **`static/js/dashboard.js`** - Logique frontend complète
|
||||
|
||||
### Documentation
|
||||
|
||||
- **`README.md`** - Ce fichier (vue d'ensemble)
|
||||
- **`QUICKSTART.md`** - Guide de démarrage rapide
|
||||
- **`WEB_DASHBOARD_GUIDE.md`** - Guide du dashboard web
|
||||
- **`OUI_DATABASE_GUIDE.md`** - Guide d'utilisation de la base OUI
|
||||
- **`PORT_SCAN_GUIDE.md`** - Guide du scan de ports
|
||||
- **`OS_DETECTION_GUIDE.md`** - Guide de détection d'OS
|
||||
- **`TIMEOUT_FIX.md`** - Résolution des problèmes de timeout
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation Rapide
|
||||
|
||||
### Méthode 1 : Installation Automatique (Recommandé)
|
||||
|
||||
```bash
|
||||
# 1. Extraire l'archive
|
||||
tar -xzf netwatch-complete-project.tar.gz
|
||||
cd netwatch-complete-project/
|
||||
|
||||
# 2. Lancer l'installation automatique
|
||||
bash install.sh
|
||||
```
|
||||
|
||||
Le script va :
|
||||
- ✅ Vérifier Python 3
|
||||
- ✅ Installer les dépendances
|
||||
- ✅ Installer et démarrer Ollama
|
||||
- ✅ Télécharger le modèle IA
|
||||
- ✅ Configurer les permissions
|
||||
|
||||
### Méthode 2 : Installation Manuelle
|
||||
|
||||
```bash
|
||||
# 1. Installer les dépendances
|
||||
pip install -r requirements.txt --break-system-packages
|
||||
|
||||
# 2. Installer Ollama
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
ollama serve
|
||||
|
||||
# 3. Télécharger un modèle IA
|
||||
ollama pull llama3.2
|
||||
|
||||
# 4. (Optionnel) Télécharger la base OUI
|
||||
wget https://standards-oui.ieee.org/oui/oui.txt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Utilisation
|
||||
|
||||
### 1. Scan Simple
|
||||
|
||||
```bash
|
||||
python3 network_ai_bot.py
|
||||
```
|
||||
|
||||
**Résultat :**
|
||||
```
|
||||
🌐 Réseau détecté: 192.168.1.0/24
|
||||
✅ Configuration ports chargée: 73 ports depuis ports_config.txt
|
||||
✅ Base MAC Vendor chargée (30456 fabricants)
|
||||
|
||||
🔍 Scan du réseau 192.168.1.0/24...
|
||||
✅ 192.168.1.1 router [Network Device] (TP-Link Corp.) Ports: 80/HTTP, 443/HTTPS
|
||||
✅ 192.168.1.10 proxmox [Linux/Unix] (Dell Inc.) Ports: 22/SSH, 8006/Proxmox-Web, 8086/InfluxDB
|
||||
✅ 192.168.1.25 iphone-jean [iOS] (Apple, Inc.)
|
||||
✅ Scan terminé: 3 appareil(s) trouvé(s)
|
||||
|
||||
🧠 ANALYSE IA EN COURS...
|
||||
.................................
|
||||
|
||||
📊 État général :
|
||||
Votre réseau compte 3 appareils : 1 routeur TP-Link, 1 serveur Proxmox Dell, et 1 iPhone.
|
||||
|
||||
⚠️ Points d'attention :
|
||||
Proxmox expose les ports 8006 et 8086 - vérifiez la sécurité.
|
||||
|
||||
💡 Recommandations :
|
||||
Activez l'authentification forte sur l'interface Proxmox.
|
||||
```
|
||||
|
||||
### 2. Dashboard Web
|
||||
|
||||
```bash
|
||||
python3 web_dashboard.py
|
||||
```
|
||||
|
||||
Accédez à : **http://localhost:5000**
|
||||
|
||||
**Fonctionnalités :**
|
||||
- 📊 Vue d'ensemble en temps réel
|
||||
- 💻 Liste de tous les appareils
|
||||
- 📈 Graphiques et analytics
|
||||
- 🤖 Chat IA interactif
|
||||
- ⚙️ Configuration
|
||||
|
||||
### 3. Mode Interactif (Chat IA)
|
||||
|
||||
```bash
|
||||
python3 network_ai_bot.py --interactive
|
||||
```
|
||||
|
||||
Posez des questions :
|
||||
- "Quels appareils Windows sont connectés ?"
|
||||
- "Y a-t-il des ports suspects ouverts ?"
|
||||
- "Identifie les appareils par fabricant"
|
||||
|
||||
### 4. Monitoring Continu
|
||||
|
||||
```bash
|
||||
# Scan toutes les 5 minutes
|
||||
python3 network_ai_bot.py --continuous --interval 300
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Fichiers Auto-Chargés
|
||||
|
||||
Le bot charge **automatiquement** ces fichiers s'ils existent :
|
||||
|
||||
1. **`ports_config.txt`** - Ports à scanner (73 ports par défaut)
|
||||
2. **`oui.txt`** - Base IEEE des fabricants MAC (30 000+ entrées)
|
||||
|
||||
**Pas besoin de les spécifier en ligne de commande !**
|
||||
|
||||
### Options de Ligne de Commande
|
||||
|
||||
```bash
|
||||
# Réseau spécifique
|
||||
python3 network_ai_bot.py --network 10.0.0.0/24
|
||||
|
||||
# Modèle IA différent
|
||||
python3 network_ai_bot.py --model mistral
|
||||
|
||||
# Config ports personnalisée
|
||||
python3 network_ai_bot.py --ports-config my_ports.txt
|
||||
|
||||
# Mode continu
|
||||
python3 network_ai_bot.py --continuous --interval 600
|
||||
```
|
||||
|
||||
### Personnalisation des Ports
|
||||
|
||||
Éditez `ports_config.txt` pour ajouter vos ports :
|
||||
|
||||
```
|
||||
# Mes services
|
||||
8086 = InfluxDB/Proxmox
|
||||
9000 = Portainer
|
||||
3000 = Grafana
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Fonctionnalités Principales
|
||||
|
||||
### ✅ Détection Multi-Niveau
|
||||
|
||||
1. **Scan Réseau**
|
||||
- Détection automatique du réseau local
|
||||
- Scan parallèle rapide (50 threads)
|
||||
- Détection IP, Hostname, MAC
|
||||
|
||||
2. **Détection OS (4 méthodes)**
|
||||
- Analyse TTL (Linux/Windows/Network Device)
|
||||
- Banner Grabbing (SSH, HTTP)
|
||||
- Pattern Hostname
|
||||
- Fabricant MAC (via base OUI)
|
||||
|
||||
3. **Identification Fabricant**
|
||||
- Base IEEE OUI complète (30 000+ fabricants)
|
||||
- Apple, Samsung, Dell, HP, Cisco, TP-Link, etc.
|
||||
- Cache JSON pour chargement ultra-rapide
|
||||
|
||||
4. **Scan de Ports**
|
||||
- 73+ ports par défaut
|
||||
- Proxmox (8006, 8086)
|
||||
- Docker, Kubernetes, Monitoring
|
||||
- Bases de données, Web, Windows, etc.
|
||||
|
||||
### 🧠 Analyse IA
|
||||
|
||||
- **Génération de rapports** en langage naturel
|
||||
- **Détection de changements** (nouveaux/déconnectés)
|
||||
- **Recommandations de sécurité**
|
||||
- **Chat interactif** pour questions
|
||||
|
||||
### 💾 Base de Données
|
||||
|
||||
- **SQLite** pour historique complet
|
||||
- Suivi des appareils dans le temps
|
||||
- Statistiques et évolution
|
||||
- Export CSV
|
||||
|
||||
### 🌐 Dashboard Web
|
||||
|
||||
- **Design moderne** cybersécurité
|
||||
- **5 vues** : Dashboard, Appareils, Analytics, IA Chat, Paramètres
|
||||
- **Graphiques** Chart.js
|
||||
- **Auto-scan** configurable
|
||||
- **API REST** complète
|
||||
|
||||
---
|
||||
|
||||
## 📁 Structure du Projet
|
||||
|
||||
```
|
||||
netwatch-complete-project/
|
||||
├── network_ai_bot.py # Bot principal ⭐
|
||||
├── mac_vendor_db.py # Détection fabricants
|
||||
├── web_dashboard.py # Dashboard web 🌐
|
||||
├── nmap_os_detector.py # Détection OS avancée
|
||||
├── demo.py # Démonstration
|
||||
│
|
||||
├── ports_config.txt # Config ports (auto-chargé)
|
||||
├── config.example.json # Config avancée
|
||||
├── requirements.txt # Dépendances Python
|
||||
├── install.sh # Installation auto
|
||||
│
|
||||
├── templates/
|
||||
│ └── dashboard.html # Interface web
|
||||
├── static/
|
||||
│ ├── css/
|
||||
│ │ └── dashboard.css # Design
|
||||
│ └── js/
|
||||
│ └── dashboard.js # Logique frontend
|
||||
│
|
||||
└── Documentation/
|
||||
├── README.md # Ce fichier
|
||||
├── QUICKSTART.md # Démarrage rapide
|
||||
├── WEB_DASHBOARD_GUIDE.md # Guide dashboard
|
||||
├── OUI_DATABASE_GUIDE.md # Guide base OUI
|
||||
├── PORT_SCAN_GUIDE.md # Guide ports
|
||||
├── OS_DETECTION_GUIDE.md # Guide détection OS
|
||||
└── TIMEOUT_FIX.md # Résolution timeout
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Guides Détaillés
|
||||
|
||||
### Pour Débuter
|
||||
- 📖 **QUICKSTART.md** - Installation et premiers scans en 5 minutes
|
||||
|
||||
### Fonctionnalités Avancées
|
||||
- 🌐 **WEB_DASHBOARD_GUIDE.md** - Tout sur le dashboard web
|
||||
- 🏷️ **OUI_DATABASE_GUIDE.md** - Utiliser la base de fabricants
|
||||
- 🔍 **PORT_SCAN_GUIDE.md** - Scanner vos ports personnalisés
|
||||
- 🖥️ **OS_DETECTION_GUIDE.md** - Méthodes de détection d'OS
|
||||
|
||||
### Dépannage
|
||||
- ⏱️ **TIMEOUT_FIX.md** - Résoudre les problèmes de timeout Ollama
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Sécurité & Permissions
|
||||
|
||||
### Linux
|
||||
|
||||
```bash
|
||||
# Option 1 : Exécuter avec sudo
|
||||
sudo python3 network_ai_bot.py
|
||||
|
||||
# Option 2 : Donner les permissions (permanent)
|
||||
sudo setcap cap_net_raw+ep $(which python3)
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
```bash
|
||||
sudo python3 network_ai_bot.py
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
Exécutez PowerShell ou CMD en tant qu'**Administrateur**.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Cas d'Usage
|
||||
|
||||
### 1. Audit Réseau
|
||||
|
||||
```bash
|
||||
# Scan complet avec rapport IA
|
||||
python3 network_ai_bot.py > audit_$(date +%Y%m%d).txt
|
||||
```
|
||||
|
||||
### 2. Monitoring Serveurs
|
||||
|
||||
```bash
|
||||
# Surveillance continue
|
||||
python3 network_ai_bot.py --continuous --interval 300
|
||||
```
|
||||
|
||||
### 3. Détection Intrusions
|
||||
|
||||
```bash
|
||||
# Dashboard web avec alertes
|
||||
python3 web_dashboard.py
|
||||
# Activer auto-scan dans l'interface
|
||||
```
|
||||
|
||||
### 4. Inventaire Matériel
|
||||
|
||||
```bash
|
||||
# Export CSV des appareils
|
||||
# Via le dashboard : Appareils → Exporter CSV
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Performance
|
||||
|
||||
### Ressources Recommandées
|
||||
|
||||
- **CPU** : 4+ cœurs (votre i9 12 cœurs est parfait ✅)
|
||||
- **RAM** : 8-16 Go
|
||||
- **Stockage** : ~500 MB (scripts + cache + DB)
|
||||
|
||||
### Vitesse de Scan
|
||||
|
||||
- **Scan rapide** (9 ports) : ~2-5s par appareil
|
||||
- **Scan complet** (73 ports) : ~10-20s par appareil
|
||||
- **Réseau /24** (254 IPs) : ~2-5 minutes
|
||||
|
||||
### Modèles IA
|
||||
|
||||
| Modèle | RAM | Vitesse | Qualité |
|
||||
|--------|-----|---------|---------|
|
||||
| llama3.2:1b | 2 GB | ⚡⚡⚡ | ⭐⭐⭐ |
|
||||
| llama3.2 | 3 GB | ⚡⚡ | ⭐⭐⭐⭐ |
|
||||
| mistral | 5 GB | ⚡ | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Dépendances
|
||||
|
||||
### Python (requirements.txt)
|
||||
|
||||
```
|
||||
requests>=2.31.0
|
||||
flask>=3.0.0
|
||||
flask-cors>=4.0.0
|
||||
```
|
||||
|
||||
### Système
|
||||
|
||||
- **Ollama** - Moteur IA local
|
||||
- **Python 3.8+**
|
||||
- **arp** - Détection MAC (préinstallé Linux/macOS)
|
||||
- **ping** - Test connectivité (préinstallé)
|
||||
|
||||
### Optionnel
|
||||
|
||||
- **nmap** - Détection OS avancée
|
||||
- **oui.txt** - Base fabricants IEEE (auto-téléchargeable)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Exemples d'Utilisation
|
||||
|
||||
### Exemple 1 : Premier Scan
|
||||
|
||||
```bash
|
||||
$ python3 network_ai_bot.py
|
||||
|
||||
🌐 Réseau détecté: 192.168.1.0/24
|
||||
✅ Configuration ports chargée: 73 ports
|
||||
✅ Base MAC Vendor chargée (30456 fabricants)
|
||||
|
||||
🔍 Scan du réseau 192.168.1.0/24...
|
||||
✅ 192.168.1.1 livebox [Network Device] (Sagemcom SAS) Ports: 80/HTTP
|
||||
✅ 192.168.1.10 nas-synology [Linux/Unix] (Synology Inc.) Ports: 22/SSH, 5000/Web, 5001/HTTPS
|
||||
✅ 192.168.1.50 rpi-homeassistant [Linux] (Raspberry Pi) Ports: 22/SSH, 8123/Home-Assistant
|
||||
✅ Scan terminé: 3 appareil(s) trouvé(s)
|
||||
```
|
||||
|
||||
### Exemple 2 : Chat IA
|
||||
|
||||
```bash
|
||||
$ python3 network_ai_bot.py --interactive
|
||||
|
||||
💬 MODE INTERACTIF
|
||||
Posez des questions sur votre réseau (tapez 'exit' pour quitter)
|
||||
|
||||
🔹 Votre question: Quels appareils ont des ports web ouverts ?
|
||||
|
||||
🤔 Réflexion...
|
||||
|
||||
🤖 Réponse:
|
||||
Deux appareils ont des ports web ouverts :
|
||||
1. La Livebox (192.168.1.1) - port 80 (HTTP)
|
||||
2. Le NAS Synology (192.168.1.10) - ports 5000 (HTTP) et 5001 (HTTPS)
|
||||
|
||||
Le Raspberry Pi exécute Home Assistant sur le port 8123.
|
||||
```
|
||||
|
||||
### Exemple 3 : Dashboard Web
|
||||
|
||||
```bash
|
||||
$ python3 web_dashboard.py
|
||||
|
||||
============================================================
|
||||
🌐 DASHBOARD WEB - BOT AI DE SURVEILLANCE RÉSEAU
|
||||
============================================================
|
||||
|
||||
📡 Serveur démarré sur: http://localhost:5000
|
||||
🔗 Accédez au dashboard: http://localhost:5000
|
||||
|
||||
Appuyez sur Ctrl+C pour arrêter
|
||||
============================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❓ FAQ
|
||||
|
||||
### Q: Pourquoi certains appareils ne sont pas détectés ?
|
||||
|
||||
**R:** Vérifiez :
|
||||
- Que vous êtes sur le bon réseau
|
||||
- Les permissions (sudo sur Linux)
|
||||
- Que le pare-feu n'est pas actif
|
||||
- Que les appareils répondent au ping
|
||||
|
||||
### Q: Comment ajouter mes propres ports ?
|
||||
|
||||
**R:** Éditez `ports_config.txt` :
|
||||
```
|
||||
9999 = Mon-Service
|
||||
```
|
||||
|
||||
### Q: Ollama ne démarre pas ?
|
||||
|
||||
**R:**
|
||||
```bash
|
||||
# Vérifier l'installation
|
||||
ollama --version
|
||||
|
||||
# Redémarrer
|
||||
pkill ollama
|
||||
ollama serve
|
||||
```
|
||||
|
||||
### Q: La détection de fabricant ne fonctionne pas ?
|
||||
|
||||
**R:** Téléchargez la base OUI :
|
||||
```bash
|
||||
wget https://standards-oui.ieee.org/oui/oui.txt
|
||||
```
|
||||
|
||||
### Q: Comment accéder au dashboard depuis une autre machine ?
|
||||
|
||||
**R:** Le serveur écoute sur `0.0.0.0:5000`
|
||||
|
||||
Accédez via : `http://IP_DU_SERVEUR:5000`
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Contribution
|
||||
|
||||
Ce projet est open source. Améliorations bienvenues !
|
||||
|
||||
**Idées de fonctionnalités :**
|
||||
- [ ] Notifications push/email
|
||||
- [ ] Détection d'anomalies ML
|
||||
- [ ] Scan de vulnérabilités
|
||||
- [ ] Intégration MQTT
|
||||
- [ ] Export Grafana
|
||||
- [ ] Mode WiFi sniffer
|
||||
|
||||
---
|
||||
|
||||
## 📄 Licence
|
||||
|
||||
MIT License - Libre d'utilisation et modification
|
||||
|
||||
---
|
||||
|
||||
## 🙏 Remerciements
|
||||
|
||||
- **IEEE** - Base OUI des fabricants MAC
|
||||
- **Ollama** - Moteur IA local
|
||||
- **Flask** - Framework web Python
|
||||
- **Chart.js** - Graphiques JavaScript
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Pour toute question :
|
||||
1. Consultez les guides dans `/Documentation`
|
||||
2. Vérifiez la section FAQ ci-dessus
|
||||
3. Testez avec `demo.py` pour valider l'installation
|
||||
|
||||
---
|
||||
|
||||
**NetWatch AI - Surveillance Réseau Intelligente** 🤖🔍
|
||||
|
||||
*Détection complète • Analyse IA • Dashboard moderne*
|
||||
|
||||
**Créé avec ❤️ pour la sécurité réseau**
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Démarrage Immédiat
|
||||
|
||||
```bash
|
||||
# Installation complète en 3 commandes
|
||||
bash install.sh
|
||||
ollama pull llama3.2
|
||||
python3 network_ai_bot.py
|
||||
```
|
||||
|
||||
**C'est parti ! 🚀**
|
||||
Reference in New Issue
Block a user