Skip to content

Repository files navigation

NetTools Logo

NetTools

Plateforme complète de gestion réseau et d'audit de conformité pour administrateurs IT

GitHub release License Go Version React Platform

TéléchargerDocumentationFonctionnalitésContribution


🚀 À propos

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

✨ Fonctionnalités principales

🔗 Découverte Réseau

  • Scan SNMP v1/v2c/v3 USM rapide et fiable
  • Niveaux SNMPv3 : noAuthNoPriv, authNoPriv, authPriv
  • Authentification MD5, SHA-1 et SHA-2 ; chiffrement DES et AES-128/192/256
  • Saisie manuelle ou import d'IPs
  • Collecte automatique de métadonnées
  • Export Excel formaté et professionnel
  • Progression en temps réel
  • Bouton STOP pour arrêt instantané

💾 Gestion des Backups

  • Backup SSH des configurations
  • Support multi-vendor (Cisco, Aruba, HP, etc.)
  • Terminal SSH intégré pour commandes customs
  • Historique avec hash SHA256
  • Export ZIP des sauvegardes
  • Visualisation des configurations

✅ Audit de Conformité

  • 22 règles prédéfinies personnalisables
  • Sévérités : critique → faible
  • Score en % avec barre de progression
  • Diagnostic enrichi des écarts
  • Détection automatique des patterns
  • Filtrage par fabricant

🔄 Comparateur de Configuration (v1.3.2)

  • Vue Split avec scroll synchronisé
  • Diff sémantique : détecte changements vs insertions
  • Code couleur : 🟢 insertion · 🔴 suppression · 🟡 modification
  • Diff only : masque les lignes inchangées
  • Toggle Split/Unifié pour vue alignée
  • Stats enrichies : +/−/~/= lignes
  • Ignorer des patterns (regex)
  • Comparaison entre deux backups
  • Export HTML standalone

🎯 Playbooks SSH

  • Exécution multi-équipements
  • Modèles YAML prêts à l'emploi
  • Terminal temps réel intégré
  • 4 templates : inventaire, sécurité, VLAN, diagnostic
  • Smart Syntax Agent : Auto-correction intelligente (ex: vlan database automatique)
  • Gestion d'erreurs et expectations
  • Résultats pas-à-pas

📅 Planificateur

  • Interface calendrier + horloge
  • Fréquences : horaire → mensuel
  • Mode avancé (expressions cron)
  • Activation/désactivation à la volée
  • Tâches : Backup, Scan
  • Aperçu en français

📊 Topologie Réseau

  • Visualisation graphique (ReactFlow)
  • Couleurs par fabricant
  • Icônes PoE automatiques
  • Détection LLDP
  • Layout interactif

📝 Journaux & Inventaire (v1.3.2)

  • Inventaire stateless : vide à chaque lancement
  • Import/Export JSON explicites (boutons ↑↓)
  • Événements cliquables avec contexte modal
  • Lecteur de fichiers .log mensuels
  • Gestion CRUD équipements + test SSH
  • Nettoyage rapide (Eraser) avec confirmation

🔐 Gestion des Credentials (v1.4.0)

  • Auto-activation : nouveau credential complet = automatiquement actif
  • Badge ACTIF dans la liste des credentials
  • Support multi-protocoles : SSH, password, SNMP v1/v2c/v3 USM
  • Secrets SNMPv3 chiffrés utilisés par le scan, LLDP et le diagnostic ciblé
  • Chiffrement DPAPI (Windows) ou AES-256-GCM
  • Suppression du credential actif = réinitialisation propre
  • Édition et rotation simplifiées

🛠️ Stack Technologique

┌─────────────────────────────────────────────┐
│           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

📥 Téléchargement

Windows 10/11 • 64-bit • ~20 MB

Installation

  1. Téléchargez NetTools.exe depuis la page Releases
  2. Double-cliquez sur l'exécutable
  3. 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.

Prérequis


🚀 Démarrage rapide

1️⃣ Découvrir des équipements

Scan → Entrer plage CIDR (10.0.0.0/24) → Lancer → Export Excel

2️⃣ Sauvegarder les configurations

Backups → Sélectionner équipements → Récupérer depuis scan → Exécuter

3️⃣ Auditer la conformité

Audit → Choisir règles → Sélectionner configurations → Analyser → Voir résultats

4️⃣ Comparer deux configurations

Comparateur → Sélectionner 2 backups → Configurer filtres → Exporter HTML

📖 Documentation

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

Supports Multi-Vendor

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)

🏗️ Architecture

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

💻 Développement

Prérequis

  • Go 1.26.5+
  • Node.js 22.22+
  • Wails CLI v2 : go install github.com/wailsapp/wails/v2/cmd/wails@latest
  • Git

Installer les dépendances

# Go + dépendances
go mod download

# Frontend
cd frontend && npm install --legacy-peer-deps

Mode développement (hot-reload)

wails dev

L'application se lance avec accès aux DevTools (F12).

Build production

wails build

Binaire généré : build/bin/NetTools.exe

Tests

# Tests unitaires
go test ./internal/... -v

# Avec couverture
go test ./internal/... -coverprofile=coverage.out
go tool cover -html=coverage.out

Linting

# Go
golangci-lint run ./...

# Frontend TypeScript
cd frontend && npx tsc --noEmit

🔐 Sécurité

Stockage des Credentials

  • Windows : DPAPI (Data Protection API) - chiffrement au niveau du système
  • Fallback : AES-256-GCM avec seed dérivée du hostname

Bonnes pratiques

✅ 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


📊 Cas d'usage

🏢 Inventaire Réseau

Découvrir et documenter automatiquement tous les équipements d'un site :

Scan SNMP → Export Excel → Import dans CMDB

🔒 Audit de Sécurité

Vérifier la conformité de 22 règles de sécurité :

Audit → Générer rapport → Identifier écarts → Corriger → Re-auditer

🔄 Migration de Configuration

Comparer avant/après une mise à jour :

Backup T0 → Mise à jour → Backup T1 → Comparateur → Rapport HTML

🤖 Automatisation

Exécuter des tâches répétitives via playbooks :

Créer playbook → Définir étapes → Sélectionner équipements → Exécuter → Résultats

🐛 Signaler un bug

  1. Vérifiez que le bug n'existe pas déjà dans Issues
  2. Créez une nouvelle Issue avec :
    • Description claire du problème
    • Étapes pour reproduire
    • Logs (dans %APPDATA%\NetTools\logs\)
    • Équipements affectés

💡 Contribuer

Les contributions sont bienvenues ! Pour contribuer :

  1. Fork le projet
  2. Créez une branche feature : git checkout -b feature/ma-fonctionnalité
  3. Commitez vos changements : git commit -m "feat: description"
  4. Poussez vers la branche : git push origin feature/ma-fonctionnalité
  5. 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é ! 🙌


📜 Licence & Dépendances

Ce projet utilise plusieurs bibliothèques open source. Voir NOTICE.md pour la liste complète des dépendances et licences.


💬 Questions ?

Consultez la documentation ou créez une Issue


Fait avec ❤️ par neosoda

Wails • Go • React • TypeScript

About

NetTools - Application desktop de gestion réseau et d'audit. Scan SNMP, backup SSH, conformité, comparateur de configuration.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages