LibreNet Scanner
Scanner réseau graphique libre, rapide et orienté équipements pour Linux.
Découverte, inventaire, services, identification et diagnostic dans une interface Qt pensée pour KDE Plasma.
LibreNet Scanner 1.0.0 est la version stable de référence. Le moteur Standard privilégie la rapidité et la prédictibilité sur les petits réseaux, tout en pouvant accélérer les grands ensembles d'hôtes avec Naabu.
✨ Points forts
- Découverte rapide du LAN avec
arp-scan, Nmap et la table de voisinage Linux. - Moteur Standard adaptatif : Nmap sur les petits ensembles d'hôtes actifs, Naabu sur les ensembles importants lorsqu'il apporte un réel gain.
- Scan approfondi avec versions de services et estimation du système d'exploitation.
- Mode Administrateur via Polkit : la GUI reste non-root ; seul un helper strictement contrôlé reçoit les privilèges nécessaires.
- Identification orientée équipements : poste, serveur, hyperviseur, NAS, pare-feu, routeur, switch, point d'accès, imprimante…
- Identification OS avec pictogrammes Linux, BSD, Windows, Apple et Android.
- Résultats progressifs et scan interruptible avec terminaison propre des processus.
- Historique local SQLite, comparaison entre scans, favoris, groupes et notes.
- Actions contextuelles : Web, SSH, SMB, RDP, Ping, Traceroute, Wake-on-LAN, copie IP/MAC.
- Interface compacte ou détaillée, compatible Breeze clair/sombre sans thème graphique imposé.
🚀 Installation
Paquet Debian 13
sudo apt install ./librenet-scanner_1.0.0_amd64.deb
Puis lance LibreNet Scanner depuis le menu KDE ou avec :
librenet-scanner
Le paquet cible Debian 13 (Trixie) amd64 et installe les dépendances principales via APT.
Exécution depuis les sources
./run-from-source.sh
Le projet nécessite Python 3.11+ et PySide6/Qt6.
🧭 Les trois modes de scan
| Mode | Objectif | Moteur principal |
|---|---|---|
| ⚡ Rapide | Trouver les machines présentes | ARP + découverte Nmap |
| 🔎 Standard | Trouver les machines et leurs ports usuels | Moteur adaptatif Nmap / Naabu |
| 🧬 Approfondi | Enrichir services, versions et OS | Socle Standard + Nmap -sV / OS |
Le bouton principal Scanner lance le mode Standard. Le menu attenant permet de choisir Rapide ou Approfondi.
Standard : moteur adaptatif
LibreNet commence par identifier les hôtes réellement actifs, puis ne scanne les ports que sur ceux-ci.
Cible réseau
│
├── poste local
├── arp-scan
└── découverte Nmap courte
│
▼
hôtes actifs
│
┌──────┴────────┐
│ │
< 32 hôtes ≥ 32 hôtes
│ │
Nmap borné Naabu par lots
│ │
└──────┬────────┘
▼
ports ouverts
Pour un /24 avec seulement quelques machines actives, LibreNet ne lance pas un scan de ports sur les 254 adresses : les hôtes sont d'abord découverts, puis seuls ceux qui répondent sont analysés.
Garde-fous de performance
arp-scanest borné à 8 secondes ;- découverte Nmap sans DNS (
-n) et avec un retry maximum ; - scan Standard Nmap limité aux hôtes actifs et aux ports usuels ;
- Naabu réservé aux ensembles d'au moins 32 hôtes actifs ;
- Naabu exécuté par lots de 32 hôtes, avec plafond de temps par lot ;
- repli Nmap limité aux hôtes déjà découverts si Naabu est indisponible ou trop lent ;
- aucun résultat incomplet n'est enregistré comme scan réussi lorsqu'une phase essentielle échoue.
🛡️ Mode Administrateur
Le mode Admin s'appuie sur Polkit. LibreNet Scanner ne lance jamais toute l'interface en root.
Le helper privilégié est installé ici :
/usr/libexec/librenet-scanner-helper
La politique Polkit est installée ici :
/usr/share/polkit-1/actions/org.librenet.scanner.policy
Le mode Admin permet notamment :
arp-scanprivilégié ;- scans TCP SYN (
-sS) ; - détection OS lors des scans Approfondi et Détaillé.
La découverte Standard reste volontairement cohérente entre le mode utilisateur et le mode Admin afin d'éviter que l'activation des privilèges modifie artificiellement la liste d'hôtes détectés.
🛑 Annulation propre
Le bouton Arrêter ne se contente pas d'interrompre l'interface : LibreNet supervise le processus réseau en cours.
- en mode utilisateur, le groupe de processus est terminé proprement ;
- en mode Admin, l'UI envoie un ordre
STOPau helper privilégié ; - le helper applique une escalade
TERM → KILLsi nécessaire ; - un scan interrompu n'est pas enregistré comme un résultat complet.
🖥️ Vue équipements
Vue compacte
pve01.local 192.168.10.10 Hyperviseur Proxmox
nas01.local 192.168.10.20 NAS
printer01.local 192.168.10.30 Imprimante
Vue détaillée
pve01.local 192.168.10.10 Hyperviseur Proxmox
SSH 22/tcp OpenSSH
NFS 2049/tcp
Proxmox VE 8006/tcp
Un double-clic sur un service compatible peut ouvrir directement HTTP/HTTPS, SSH, SMB ou RDP.
🧠 Identification et mémoire locale
LibreNet sépare volontairement :
- les résultats visibles ;
- l'historique des scans ;
- les identifications mémorisées ;
- les métadonnées utilisateur : favoris, groupes et notes.
Quand une MAC fiable est disponible, les métadonnées peuvent suivre l'équipement lors d'un changement d'adresse IP. La logique d'identité évite autant que possible les fusions dangereuses liées aux MAC virtuelles, clonées, partagées ou localement administrées.
Les données sont conservées localement dans :
~/.local/share/librenet-scanner/history.sqlite3
🌐 Constructeurs et confidentialité
Par défaut, LibreNet s'appuie sur les bases OUI locales.
Une recherche constructeur en ligne peut être activée dans :
Paramètres → Identification des constructeurs…
Cette fonction est désactivée par défaut, car une recherche distante transmet la MAC complète au fournisseur choisi. Les résultats peuvent être mis en cache localement pendant 30 jours.
⚙️ Naabu optionnel
LibreNet Scanner fonctionne sans Naabu. L'installation du .deb n'effectue aucun téléchargement réseau obligatoire.
Naabu 2.6.1 peut être ajouté comme accélérateur pour les grands ensembles d'hôtes :
sudo /usr/libexec/librenet-scanner-install-naabu --ensure
Le binaire validé est placé dans :
/usr/lib/librenet-scanner/bin/naabu
LibreNet n'utilise pas arbitrairement un autre naabu trouvé dans le $PATH. L'installateur vérifie la version et le SHA-256 de l'archive officielle avant installation.
🧰 Dépendances
Obligatoires
- Python 3
- PySide6 / Qt6
- Nmap
- arp-scan
- iproute2
- iputils-ping
- xdg-utils
- pkexec / Polkit
Recommandées ou optionnelles
polkit-kde-agent-1sous KDE Plasma- Konsole
- Remmina
- traceroute
- libcap2-bin
- Naabu 2.6.1 pour l'accélération des grands ensembles
⌨️ Raccourcis utiles
| Raccourci | Action |
|---|---|
F5 |
Scan Standard |
Ctrl+F5 |
Scan Rapide |
Shift+F5 |
Scan Approfondi |
Ctrl+F |
Recherche |
🔐 Sécurité
- aucune commande utilisateur n'est exécutée via un shell ;
- les cibles sont validées avant exécution ;
- la taille des scans est limitée ;
- le helper privilégié n'accepte que des opérations prédéfinies ;
- les moteurs privilégiés sont lancés avec des profils contrôlés ;
- les scans sont conçus pour être interrompus proprement.
Utilise LibreNet Scanner uniquement sur des réseaux que tu possèdes ou que tu es autorisé à analyser.
✅ Validation de la release stable
La base 1.0.0 est couverte par 191 tests automatisés portant notamment sur :
- parsing Nmap / arp-scan / Naabu ;
- validation des cibles ;
- moteur adaptatif petit/grand réseau ;
- délais maximaux et annulation ;
- helper privilégié ;
- identité des équipements et systèmes ;
- historique et persistance ;
- non-régression de l'interface et du packaging.
Lancer la suite :
PYTHONPATH=src python3 -m unittest discover -s tests -v
📁 Arborescence
librenet-scanner-1.0.0/
├── assets/ logo, badges et icônes
├── packaging/ paquet Debian, helper et Polkit
├── src/librenet_scanner/ application Python
├── tests/ suite automatisée
├── README.md
├── LICENSE
└── THIRD_PARTY_ASSETS.md
📜 Licence
LibreNet Scanner est distribué sous GPL-3.0-or-later.
Nmap, arp-scan, Naabu et les pictogrammes tiers conservent leurs licences respectives. Les détails sont documentés dans THIRD_PARTY_ASSETS.md et NAABU-LICENSE.txt.
LibreNet Scanner 1.0.0 — Stable
Voir le réseau. Comprendre les équipements. Garder le contrôle.