Plateforme complète de gestion réseau et d'audit de conformité pour administrateurs IT
Télécharger • Documentation • Fonctionnalités • Contribution
NetTools est une application desktop puissante conçue pour simplifier la gestion réseau et l'audit de conformité. Avec une interface moderne et intuitive, elle offre aux administrateurs IT tous les outils nécessaires pour :
- 🔍 Découvrir les équipements réseau automatiquement
- 💾 Sauvegarder les configurations en un clic
- ✅ Auditer la conformité avec 22 règles prédéfinies
- 📊 Comparer et analyser les configurations
- 🎯 Automatiser les tâches avec des playbooks
- 📈 Visualiser la topologie réseau
|
|
|
|
|
|
|
|
|
┌─────────────────────────────────────────────┐
│ NetTools Architecture │
├─────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────┐ │
│ │ Frontend (React 19 + TypeScript) │ │
│ │ • TailwindCSS │ │
│ │ • React Router │ │
│ │ • React Query │ │
│ │ • ReactFlow (topologie) │ │
│ └──────────────────────────────────────┘ │
│ ↕️ │
│ ┌──────────────────────────────────────┐ │
│ │ Wails v2 (Desktop Framework) │ │
│ │ • WebView2 Runtime │ │
│ │ • IPC Bridge │ │
│ └──────────────────────────────────────┘ │
│ ↕️ │
│ ┌──────────────────────────────────────┐ │
│ │ Backend (Go 1.26.5) │ │
│ │ • SNMP (gosnmp) │ │
│ │ • SSH (x/crypto/ssh) │ │
│ │ • SQLite + GORM │ │
│ │ • Scheduler (robfig/cron) │ │
│ │ • Excelize (Excel export) │ │
│ └──────────────────────────────────────┘ │
│ ↕️ │
│ ┌──────────────────────────────────────┐ │
│ │ SQLite (Database) │ │
│ │ • Mode WAL │ │
│ │ • Chiffrement DPAPI (Windows) │ │
│ └──────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────┘
| Composant | Technologie | Rôle |
|---|---|---|
| Frontend | React 19 + TypeScript | Interface moderne et réactive |
| Desktop | Wails v2 | Framework de distribution |
| Backend | Go 1.26.5 | Logique métier et communications |
| Database | SQLite + GORM | Persistance des données |
| Réseau | gosnmp, x/crypto/ssh | SNMP et SSH |
| UI Framework | TailwindCSS | Design responsive |
| Export | excelize v2 | Génération Excel |
| Scheduling | robfig/cron v3 | Planification des tâches |
| Chiffrement | DPAPI / AES-256-GCM | Sécurisation des credentials |
| Logs | zerolog | Journalisation structurée |
Windows 10/11 • 64-bit • ~20 MB
- Téléchargez
NetTools.exedepuis la page Releases - Double-cliquez sur l'exécutable
- L'application crée automatiquement ses dossiers de données dans :
%APPDATA%\NetTools\ ├── nettools.db (Base de données SQLite) ├── backups/ (Configurations sauvegardées) ├── logs/ (Journaux mensuels) └── settings.json (Préférences utilisateur)
L'inventaire est stateless : il repart vide à chaque lancement. Utilisez les boutons d'export/import JSON de la page Inventaire si vous voulez conserver une liste d'équipements entre deux sessions.
- Windows 10/11 (64-bit)
- WebView2 Runtime (inclus dans Windows 11, télécharger pour W10)
Scan → Entrer plage CIDR (10.0.0.0/24) → Lancer → Export Excel
Backups → Sélectionner équipements → Récupérer depuis scan → Exécuter
Audit → Choisir règles → Sélectionner configurations → Analyser → Voir résultats
Comparateur → Sélectionner 2 backups → Configurer filtres → Exporter HTML
| Document | Description |
|---|---|
| NOTICE.md | Source de la notice utilisateur complète |
| tools/notice_rendered.html | Rendu HTML de la notice prêt à relire dans un navigateur |
| go.mod | Dépendances Go |
| Architecture | Structure du projet |
Pour régénérer les notices après modification :
python tools/generate_notice_pdf.py| Vendor | Commande Backup | Support |
|---|---|---|
| Cisco IOS/XE | show running-config |
✅ Exec (préféré) |
| Aruba AOS-S | show running-config |
✅ Interactive PTY |
| HP ProCurve | show running-config |
✅ Interactive |
| HPE Comware | display current-configuration |
✅ Interactive |
| Huawei VRP | display current-configuration |
✅ Interactive |
| Fortinet FortiOS | show full-configuration |
✅ Exec |
| Allied Telesis | show running-config |
✅ Smart CLI (Auto-fix) |
nettools/
├── 📄 app.go # API principale (méthodes Wails exposées)
├── 📄 main.go # Point d'entrée
│
├── 📁 internal/
│ ├── db/ # SQLite + modèles GORM
│ ├── snmp/ # Scanner SNMP + mapping OID (70+ équipements)
│ ├── ssh/ # Pool de workers SSH
│ ├── backup/ # Gestionnaire de backups
│ ├── audit/ # Moteur de conformité
│ ├── diff/ # Comparateur de configurations
│ ├── playbook/ # Exécuteur de playbooks YAML
│ ├── scheduler/ # Planificateur cron
│ ├── topology/ # Constructeur de topologie
│ ├── logger/ # Logs fichier + base de données
│ └── secret/ # Chiffrement credentials (DPAPI/AES)
│
├── 📁 frontend/
│ ├── src/
│ │ ├── pages/ # Pages React (Scan, Backup, Audit, etc.)
│ │ ├── components/ # Composants réutilisables
│ │ ├── context/ # Context API (gestion d'état global)
│ │ └── assets/ # Logo, icône
│ └── index.html # Point d'entrée HTML
│
├── 📁 build/
│ └── bin/
│ └── NetTools.exe # Binaire production
│
├── 📄 go.mod # Dépendances Go
├── 📄 wails.json # Configuration Wails
└── 📄 Makefile # Commandes build/test
- Go 1.26.5+
- Node.js 22.22+
- Wails CLI v2 :
go install github.com/wailsapp/wails/v2/cmd/wails@latest - Git
# Go + dépendances
go mod download
# Frontend
cd frontend && npm install --legacy-peer-depswails devL'application se lance avec accès aux DevTools (F12).
wails buildBinaire généré : build/bin/NetTools.exe
# Tests unitaires
go test ./internal/... -v
# Avec couverture
go test ./internal/... -coverprofile=coverage.out
go tool cover -html=coverage.out# Go
golangci-lint run ./...
# Frontend TypeScript
cd frontend && npx tsc --noEmit- Windows : DPAPI (Data Protection API) - chiffrement au niveau du système
- Fallback : AES-256-GCM avec seed dérivée du hostname
✅ Les mots de passe ne sont jamais stockés en clair ✅ Communication SSH chiffrée (crypto/ssh standard) ✅ Base de données SQLite locale (pas de cloud) ✅ Logs sensibles masqués en production
Découvrir et documenter automatiquement tous les équipements d'un site :
Scan SNMP → Export Excel → Import dans CMDB
Vérifier la conformité de 22 règles de sécurité :
Audit → Générer rapport → Identifier écarts → Corriger → Re-auditer
Comparer avant/après une mise à jour :
Backup T0 → Mise à jour → Backup T1 → Comparateur → Rapport HTML
Exécuter des tâches répétitives via playbooks :
Créer playbook → Définir étapes → Sélectionner équipements → Exécuter → Résultats
- Vérifiez que le bug n'existe pas déjà dans Issues
- Créez une nouvelle Issue avec :
- Description claire du problème
- Étapes pour reproduire
- Logs (dans
%APPDATA%\NetTools\logs\) - Équipements affectés
Les contributions sont bienvenues ! Pour contribuer :
- Fork le projet
- Créez une branche feature :
git checkout -b feature/ma-fonctionnalité - Commitez vos changements :
git commit -m "feat: description" - Poussez vers la branche :
git push origin feature/ma-fonctionnalité - Ouvrez une Pull Request
Avant de contribuer, consultez CONTRIBUTING.md.
##🙏 Crédits
NetTools est l'évolution du script original decouverte2.4.py créé par Emmanuel. Merci pour cette base solide qui m'a inspiré ! 🙌
Ce projet utilise plusieurs bibliothèques open source. Voir NOTICE.md pour la liste complète des dépendances et licences.
Consultez la documentation ou créez une Issue
Fait avec ❤️ par neosoda
Wails • Go • React • TypeScript