Réduire la surface d’attaque
Introduction
Ce chapitre est consacré à la sécurisation de Windows Server 2016. La sécurité est au cœur de ce système d’exploitation, pour laquelle la mise en œuvre la plus flagrante est l’installation dite « minimale », dont le nom anglais « Core » est utilisé pour la nommer. À travers ce chapitre, vous allez découvrir comment gérer cette version si particulière, et si utile en environnement hostile.
Principes du serveur Core
Cette section présente les principales caractéristiques du serveur Core, les domaines de prédilection pour lesquels il a été prévu, ainsi que ceux pour lesquels il n’est pas possible de l’utiliser.
1. Restrictions liées à une installation minimale
Avec l’option d’installation par défaut, l’interface utilisateur standard (à savoir l’interpréteur de commandes graphique de serveur) n’est pas installée. Par conséquent, les tâches de gestion du serveur s’effectuent à l’aide des outils d’interface utilisateur distants (RSAT pour Remote Server Administration Toolkit), de Windows PowerShell ou, s’il y a lieu, localement à partir de la ligne de commandes (ou de Windows PowerShell).
Par analogie, cette installation minimale continue d’être appelée Core, comme dans Windows Server 2008 et 2008 R2, par ses utilisateurs, même si lors de l’installation c’est devenu l’option par défaut.
L’intérêt d’une installation Core est de réduire la surface d’attaque, ce qui a un impact sur les rôles pouvant être installés sur le serveur. L’application des mises à jour étant également réduite, ceci facilite le cycle de vie du serveur.
Les rôles suivants...
Configurer localement un serveur Core
L’absence des consoles d’administration n’incite pas à administrer localement un serveur Core, ce qui est une partie de l’objectif. Une fois la configuration minimum effectuée, il suffit de s’y connecter depuis un hôte distant qui lui possède les consoles d’administration permettant de s’affranchir de ces contraintes. Cette section couvre la configuration initiale pour autoriser une administration décentralisée.
Avec Windows Server 2016, il est même possible d’utiliser la console Gestionnaire de serveur pour gérer un serveur Core (en activant winrm sur le serveur Core au préalable).
En mode Core, lorsqu’on ouvre une session, c’est l’invite de commandes qui sert d’interface et s’ouvre automatiquement. Pour faire de PowerShell l’invite de commandes par défaut sous Windows Server 2016, suivez la méthode suivante en invite de commandes PowerShell :
$RegPath = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon"
Set-ItemProperty -Confirm -Path $RegPath -Name Shell -Value
'PowerShell.exe -noExit -Command "$psversiontable'
Restart-Computer
1. Sconfig
Afin de simplifier la configuration initiale d’un serveur Core, on utilise l’outil sconfig. Il permet de configurer les éléments suivants à travers un menu interactif :
-
Joindre un domaine ou un groupe de travail.
-
Changer le nom de l’ordinateur.
-
Ajouter un administrateur local.
-
Configurer l’administration à distance.
-
Se connecter à Windows Update.
-
Définir des paramètres réseau.
-
Configurer la date et l’heure.
Appeler cet outil est aussi simple que taper son nom dans l’invite de commande : sconfig.
Grâce à cet utilitaire, vous pouvez réaliser facilement certains paramétrages. Nous allons voir ensemble les autres à mettre en place pour configurer votre serveur.
2. Paramètres régionaux
Si vous souhaitez modifier les paramètres...
Gestion à distance
1. Activation du Bureau à distance
Comme pour la version avec expérience utilisateur de Windows Server 2016, l’accès à distance n’est pas activé par défaut. Vous pouvez vérifier l’état de l’activation avec la commande suivante :
cscript.exe c:\windows\system32\scregedit.wsf /AR /v
Comme expliqué au chapitre Services Bureau à distance, la clé fDenyTSConnections désactive la prise de main à distance lorsqu’elle est positionnée à 1, comme c’est le cas. Le même script permet de passer la clé à zéro afin d’autoriser les connexions :
cscript.exe c:\windows\system32\scregedit.wsf /AR 0
À ce stade, seuls les clients exécutant au moins Windows Vista ou Windows Server 2008 pourront se connecter. Pour autoriser les clients antérieurs à s’y connecter :
cscript.exe c:\windows\system32\scregedit.wsf /cs 0
La capture ci-dessous illustre les commandes citées précédemment et permet via la commande netstat et son filtre sur la valeur 3389 (port TCP des services de Bureau à distance) de se rendre compte que le service Bureau à distance n’était pas activé avant l’exécution des commandes.
2. Activation de WinRM
WinRM est l’implémentation par Microsoft du protocole WS-Management....
Sécuriser le serveur Core
1. Gestion du pare-feu
Comme dans la version avec expérience utilisateur, le pare-feu Windows est actif par défaut dans l’édition minimale. Cela est très visible car le serveur ne répond pas au fameux ping, alors que l’adresse MAC correspondant à l’IP est visible depuis la commande arp -a. La gestion des règles du pare-feu peut s’avérer complexe, aussi est-il plus aisé de les gérer à distance. Cela peut se faire via les stratégies de groupes, mais aussi en utilisant la console adéquate de manière déportée. Avant cela, il faut autoriser la gestion des règles du pare-feu à distance sur le serveur, en exécutant la commande suivante :
netsh advfirewall set currentprofile settings remotemanagement enable
La console Pare-feu Windows avec fonctions avancées de sécurité ne permet pas directement de choisir un ordinateur distant. Pour cela, il faut d’abord lancer le gestionnaire de console mmc, puis y ajouter la console Pare-feu Windows avec fonctions avancées de sécurité, et à ce moment-là vous aurez la possibilité de choisir l’ordinateur cible. Vous trouverez davantage d’informations sur la configuration du pare-feu en mode graphique dans le chapitre Sécuriser votre architecture.
Les autres consoles mmc peuvent...
Mise en place d’un serveur Core et des applications associées
1. Installation des rôles et des fonctionnalités
L’installation de rôles se réalise à travers les cmdlets PowerShell Get-WindowsFeature et Add-WindowsFeature. La première faisant un listing des rôles installés ou non, et la seconde permettant de les installer. Pour supprimer un rôle ou une fonctionnalité il faudra utiliser la cmdlet PowerShell Remove-WindowsFeature.
Exemple de sortie écran avec Get-WindowsFeature :
a. Les rôles réseau
L’installation des rôles réseau se limite à une simple commande. Voici les commandes permettant l’installation des différents rôles réseau disponibles. Ces rôles sont peu consommateurs en ressources système mais sont nécessaires en permanence. Utiliser une installation minimale permet de les sécuriser, et limiter les coupures de services grâce à la réduction du nombre de mises à jour de sécurité à installer.
Installer le rôle DHCP Server
Pour installer le rôle DHCP Server, utilisez les commandes suivantes :
Add-WindowsFeature DHCP
Pour autoriser le serveur DHCP, exécutez :
Add-DhcpServerInDC -DnsName dc2016.MaSociete.Priv
Si le serveur devient contrôleur de domaine par la suite, il faudra l’autoriser de nouveau.
Pour créer une étendue sur le serveur DHCP incluant la plage d’adresses 172.16.0.100 à 172.16.0.250 :
Add-DhcpServerv4Scope -Name "Etendue de ma societe" -StartRange
172.16.0.100 -EndRange 172.16.0.250 -SubnetMask 255.255.255.0
Pour définir une plage d’exclusions :
Add-DHCPServerV4ExclusionRange -ScopeId 172.16.0.0 -StartRange
172.16.0.100 -EndRange 172.16.0.120
Pour fournir l’adresse IP de la passerelle par défaut et les serveurs DNS dans les baux DHCP :
Set-DhcpServerv4OptionDefinition -OptionId 3 -DefaultValue 172.16.0.254
Set-DhcpServerv4OptionDefinition -OptionId 6 -DefaultValue 172.16.0.1
Pour fournir le suffixe DNS dans le bail DHCP :
Set-DhcpServerv4OptionDefinition -OptionId 15 -DefaultValue MaSociete.Priv
Pour activer l’étendue :
Set-DhcpServerv4Scope -ScopeId 172.16.0 -Name "Etendue de ma societe"
-State Active
La commande netsh est toujours présente...
Nano Server
1. Principe
L’utilisation du Core Server permet d’avoir un système allégé pour améliorer la sécurité. Microsoft a introduit une version encore plus allégée du serveur Core, le Nano Server.
Le Core Server est une version très allégée de Windows Server, mais vous pouvez, comme vu précédemment, toujours l’administrer de manière indépendante, ce qui signifie que vous pouvez toujours y ouvrir une session interactive graphique pour l’installer et le configurer. Cela veut dire qu’il existe toujours des librairies (graphiques par exemple) de configuration sur le serveur pour pouvoir l’administrer. L’idée derrière le Nano Server est de retirer toutes ces librairies et d’utiliser un autre serveur pour effectuer la configuration du Nano Server.
Ainsi, ce serveur est encore plus léger que le serveur Core.
Il peut être utilisé comme un serveur physique, mais l’optique principale est de l’utiliser comme une machine virtuelle et c’est l’hôte hyperviseur qui fera la configuration.
Cela veut dire par exemple qu’il n’y a pas de système de configurations, toutes les configurations se font à travers l’hôte hyperviseur. Vous serez dans l’obligation d’installer les consoles d’administration (RSAT) sur l’hyperviseur...
Conclusion
Grâce à toutes les étapes de configuration suivies précédemment, vous disposez maintenant d’un serveur Core complètement fonctionnel dans votre environnement. Certains usages ont été présentés, d’autres comme Hyper-V sont décrits dans le chapitre Consolider vos serveurs.
L’option d’installation minimale requiert moins d’espace disque, diminue la surface exposée aux attaques et facilite considérablement les opérations de maintenance et de redémarrage du serveur. Pour toutes ces raisons, il est recommandé de choisir l’installation minimale si vous n’avez pas besoin d’utiliser les éléments d’interface utilisateur et les outils de gestion graphique supplémentaires inclus dans l’option Serveur avec une interface graphique utilisateur et si les rôles et/ou fonctionnalité manquants dans cette version ne vous sont pas nécessaires.
Les avantages de cette installation minimum sont réels, la difficulté principale étant d’appréhender son administration au quotidien. Server Core signe-t-il la fin du clivage entre interface Windows et shell Unix ?
En revanche, l’arrivée du Nano Server ouvre une nouvelle voie dans l’utilisation des serveurs à petite surface d’attaque qui est celle de la virtualisation...