13 KiB
🤖 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 IAmac_vendor_db.py- Module de détection de fabricants (base OUI IEEE)web_dashboard.py- Dashboard web avec interface modernenmap_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éerequirements.txt- Dépendances Python
Scripts Utilitaires
install.sh- Script d'installation automatiquedemo.py- Démonstration du bot sans scan réel
Interface Web
templates/dashboard.html- Interface HTML du dashboardstatic/css/dashboard.css- Design cybersécurité/tech noirstatic/js/dashboard.js- Logique frontend complète
Documentation
README.md- Ce fichier (vue d'ensemble)QUICKSTART.md- Guide de démarrage rapideWEB_DASHBOARD_GUIDE.md- Guide du dashboard webOUI_DATABASE_GUIDE.md- Guide d'utilisation de la base OUIPORT_SCAN_GUIDE.md- Guide du scan de portsOS_DETECTION_GUIDE.md- Guide de détection d'OSTIMEOUT_FIX.md- Résolution des problèmes de timeout
🚀 Installation Rapide
Méthode 1 : Installation Automatique (Recommandé)
# 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
# 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
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
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)
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
# 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 :
ports_config.txt- Ports à scanner (73 ports par défaut)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
# 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
-
Scan Réseau
- Détection automatique du réseau local
- Scan parallèle rapide (50 threads)
- Détection IP, Hostname, MAC
-
Détection OS (4 méthodes)
- Analyse TTL (Linux/Windows/Network Device)
- Banner Grabbing (SSH, HTTP)
- Pattern Hostname
- Fabricant MAC (via base OUI)
-
Identification Fabricant
- Base IEEE OUI complète (30 000+ fabricants)
- Apple, Samsung, Dell, HP, Cisco, TP-Link, etc.
- Cache JSON pour chargement ultra-rapide
-
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
# 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
sudo python3 network_ai_bot.py
Windows
Exécutez PowerShell ou CMD en tant qu'Administrateur.
🎯 Cas d'Usage
1. Audit Réseau
# Scan complet avec rapport IA
python3 network_ai_bot.py > audit_$(date +%Y%m%d).txt
2. Monitoring Serveurs
# Surveillance continue
python3 network_ai_bot.py --continuous --interval 300
3. Détection Intrusions
# Dashboard web avec alertes
python3 web_dashboard.py
# Activer auto-scan dans l'interface
4. Inventaire Matériel
# 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
$ 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
$ 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
$ 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:
# 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 :
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 :
- Consultez les guides dans
/Documentation - Vérifiez la section FAQ ci-dessus
- Testez avec
demo.pypour 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
# Installation complète en 3 commandes
bash install.sh
ollama pull llama3.2
python3 network_ai_bot.py
C'est parti ! 🚀