Optimiser la sécurité Windows : pourquoi et comment désactiver NetBIOS ?
Introduction
Vous êtes administrateur système ou simplement soucieux de renforcer la sécurité de vos machines Windows ? 🛡️ Alors vous avez peut-être déjà entendu parler de NetBIOS. Ce protocole ancien, bien qu’encore présent sur nos postes, est aujourd’hui considéré comme une faille de sécurité et un gouffre en performances.
Dans cet article, découvrons ensemble pourquoi et comment désactiver NetBIOS proprement sur vos interfaces réseau Windows, à l’aide de PowerShell et de bonnes pratiques Microsoft.
🧯 NetBIOS : un protocole d’un autre temps
📜 Qu’est-ce que NetBIOS ?
Le Network Basic Input/Output System, ou NetBIOS, est un protocole des années 80 conçu pour faciliter la communication entre ordinateurs Windows sur des petits réseaux.
À l’époque : très utile.
Aujourd’hui : largement obsolète.
🚨 Les risques de le conserver activé
- Sécurité : utilisé dans plusieurs techniques d’attaque (interception de trafic, spoofing).
- Bruit réseau : NetBIOS utilise des broadcasts constants.
- Redondance : remplacé efficacement par DNS et Active Directory.
➡️ À moins de dépendre d’un très vieux système, vous n’en avez plus besoin.
⚙️ Comment désactiver NetBIOS avec PowerShell
Voici un script PowerShell en plusieurs étapes pour nettoyer votre système de NetBIOS et services associés.
🛑 1. Désactiver NetBIOS sur toutes les interfaces
Get-CimInstance -ClassName 'Win32_NetworkAdapterConfiguration' |
Invoke-CimMethod -MethodName 'SetTcpipNetbios' -Arguments @{ 'TcpipNetbiosOptions' = 2 }
👉 Cela applique la désactivation complète du protocole NetBIOS sur toutes les interfaces réseau actives.
🧹 2. Supprimer les serveurs WINS configurés
Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" |
Invoke-WmiMethod -Name SetWINSServer -ArgumentList @('','')
👋 Exit les résolutions de noms WINS ! Ce système est dépassé depuis longtemps.
🗂️ 3. Désactiver les recherches LMHOSTS
$nicall = [wmiclass]'Win32_NetworkAdapterConfiguration'
$nicall.enablewins($false,$false)
🧠 Les fichiers LMHOSTS sont encore moins utiles aujourd’hui. Cette commande désactive leur utilisation.
🔌 4. Arrêter et désactiver le service « TCP/IP NetBIOS Helper »
Set-Service -Name "lmhosts" -StartupType Disabled
Stop-Service -Name "lmhosts"
🛑 Un service de moins qui tourne inutilement !
🚀 Bonus : éviter l’épuisement des ports réseau
Certaines machines Windows, très sollicitées (serveurs, proxies…), peuvent manquer de ports dynamiques TCP/UDP.
Ajoutez ces lignes :
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv4 set dynamic udp start=49152 num=16384
📊 Cela applique les bonnes pratiques Microsoft pour les environnements intensifs.
🔁 Et si je dois revenir en arrière ?
Pas de panique ! Voici le script PowerShell de restauration :
Get-CimInstance -ClassName 'Win32_NetworkAdapterConfiguration' |
Invoke-CimMethod -MethodName 'SetTcpipNetbios' -Arguments @{ 'TcpipNetbiosOptions' = 0 }
$DisableLMHosts_Class = Get-WmiObject -list Win32_NetworkAdapterConfiguration$DisableLMHosts_Class.EnableWINS($true,$true)
Set-Service -Name « lmhosts » -StartupType ManualStart-Service -Name « lmhosts »
🔄 Cette version réactive NetBIOS, LMHOSTS et le service lmhosts
.
🧑💻 Admin DHCP ? Vous pouvez aussi désactiver NetBIOS côté serveur !
✅ Si vous utilisez un serveur DHCP Windows, vous pouvez également imposer la désactivation NetBIOS aux clients via l’option DHCP 001.
📚 Lien vers la documentation Microsoft
📌 En résumé
🧩 Action | 🎯 Objectif |
---|---|
Désactiver NetBIOS | Renforce la sécurité, réduit le bruit réseau |
Supprimer les serveurs WINS | Supprime un mécanisme de résolution dépassé |
Désactiver LMHOSTS | Nettoyage complémentaire des anciens résolveurs |
Couper le service « lmhosts » | Libère des ressources, élimine un vecteur d’attaque |
Réajuster la plage de ports | Prévenir les erreurs réseau sur machines actives |
📣 Conclusion
NetBIOS n’a plus sa place dans un environnement Windows moderne. En quelques lignes PowerShell, vous pouvez gagner en sécurité, en performance et en tranquillité.