Aller au contenu

(Cours/TP) Windows Server

Cours et TP

Lien vers le cours et les TP en PDF

Atelier Windows Server en mode Core

Cet atelier vous permet de configurer deux serveurs ADDS/DHCP/DNS en redondance.

ADDS: Il est crucial de garantir la continuité des services de l'annuaire AD pour assurer l'authentification et l'accès aux ressources. La réplication entre les contrôleurs de domaine permet de maintenir l'intégrité de la base d'annuaire et de répartir les requêtes entre les différents contrôleurs de domaine, assurant ainsi un équilibrage de charge.

DHCP/DNS : Il en va de même pour les services DHCP et DNS. Si un serveur DHCP est hors service, les postes clients en adresse IP automatique ne pourront pas se connecter au réseau local, à l'exception de ceux qui sont déjà connectés et qui ont un bail en cours. Si le serveur DNS est hors service, la résolution de nom DNS ne fonctionnera plus depuis vos postes clients qui utilisent ce serveur DNS.

Cet atelier vous permet également d'installer votre premier Windows Server, ADDS, DNS et DHCP en mode core. Vous y trouverez toutes les opérations nécessaires !

  • Vous allez installer Windows Server en mode Core, le mettre en réseau et le nommer.

  • Vous allez le promouvoir contrôleur de domaine (DC) Active Directory (AD) d'un domaine existant.

  • Vous allez l'administrer depuis un poste client Windows via les outils d’administration adéquats tel que PowerShell...MMC et Windows Admin Center (WAC) pour bénéficier d'une interface graphique. 😅

  • Vous allez configurer vos deux serveurs DHCP avec équilibrage de charge.

Prérequis

  • Un contrôleur de domaine ADDS déjà installé dont le niveau fonctionnel est Windows Server 2016 (le plus élevé à ce jour).

  • Ce premier Windows Server doit également être configuré comme serveur DNS et DHCP avec une étendue active.

  • Une ISO Windows Server 2016, 2019 ou 2022.

Pour vérifier le niveau fonctionnel du domaine et de la forêt, vous pouvez utiliser ces commandes PowerShell :

# Niveau fonctionnel du domaine :
Get-ADDomain | fl Name,DomainMode

# Niveau fonctionnel de la forêt :
Get-ADForest | fl Name,ForestMode

Etape 1 : Installer Windows Server en mode Core

1) Démarrez le serveur à partir du support d'installation.

2) Suivez les instructions à l'écran pour installer Windows Server.

3) L'installation en mode core est l'option par défaut, l'installation avec interface graphique est l'option mentionnée "...(expérience utlisateur)". Lorsque vous êtes invité à choisir l'option d'installation, sélectionnez alors Windows Server... (Datacenter ou Standard suivant votre licence).

Etape 2 : Mettre en réseau et nommer le serveur via PowerShell ou l'utilitaire sconfig

Via Powersell

Depuis le serveur

New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "IP_du_serveur" -PrefixLength 24 -DefaultGateway "IP_du_routeur_si_applicable"

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "127.0.0.1", "adresse_IP_du_premier_serveur"

Rename-Computer -NewName "SRV02-iladucore" -Restart

Via sconfig

Depuis le serveur.

1) Tapez sconfig dans le terminal et appuyez sur Entrée pour ouvrir l'utilitaire de configuration du serveur.

2) Dans le menu sconfig, tapez 8 et appuyez sur Entrée pour accéder à la configuration réseau.

3) Une liste des interfaces réseau disponibles s'affichera. Tapez le numéro correspondant à l'interface que vous souhaitez configurer et appuyez sur Entrée.

4) Tapez 1 pour configurer l'adresse IP et appuyez sur Entrée.

5) Entrez l'adresse IP statique que vous souhaitez attribuer au serveur (exemple : 192.168.1.10).

6) Entrez le masque de sous-réseau (exemple : 255.255.255.0).

7) Entrez la passerelle par défaut si applicable (adresse Ip du routeur).

8) Tapez 2 pour configurer le DNS et appuyez sur Entrée.

9) Entrez l'adresse IP du serveur DNS principal (adresse IP du premier serveur).

10) Entrez l'adresse IP du serveur DNS secondaire (127.0.0.1).

11) Revenez dans le menu principal de sconfig, tapez 2 et appuyez sur Entrée pour accéder à la configuration du nom de l'ordinateur.

12) Entrez le nouveau nom du serveur (exemple : SRV02-iladucore) et confirmez le changement de nom.

13) sconfig vous demandera de redémarrer le serveur pour appliquer les changements de nom. Tapez Y et appuyez sur Entrée pour redémarrer le serveur.

Etape 3 : Promouvoir le serveur en tant que contrôleur de domaine (DC)

Installez les outils de gestion AD :

Install-WindowsFeature -Name AD-Domain-Services
Promouvoir le serveur en tant que DC d'un domaine existant :

Install-ADDSDomainController -DomainName "domainexistant.home" -InstallDns -Credential (Get-Credential) -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
Promouvoir le serveur en tant que DC d'un nouveau domaine :
Install-ADDSDomain -DomainName "nouveaudomaine.home" -InstallDns -Credential (Get-Credential) -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

Etape 4 : Administrer le serveur depuis un poste client Windows 11

WinRM

WinRM (Windows Remote Management) est un service de gestion à distance pour Windows qui permet de gérer des serveurs et des postes de travail à distance. Il utilise le protocole HTTP ou HTTPS pour la communication entre le client et le serveur. Par défaut, WinRM utilise le port 5985 pour HTTP et le port 5986 pour HTTPS. Le protocole HTTPS est évidemement recommandé pour des raisons de sécurité, car il chiffre les communications entre le client et le serveur.

WinRM est utilisé pour l'exécution de de commandes distantes PowerShell, la gestion via la console MMC (Microsoft Management Console) et l'administration via Windows Admin Center (WAC) depuis un poste client, de manière similaire à SSH pour les systèmes Linux.

Assurer que PSRemoting via WinRM (Gestion à distance de Windows) est activé sur le serveur :

Enable-PSRemoting

Par défaut, WinRM bloque les connexions depuis une machine distantes sauf si l'authentification est effectuée via :

  • HTTPS (WinRM HTTPS n’est pas configuré par défaut);
  • ou depuis un poste dans le domaine AD;
  • ou que l'hôte distant est déclaré en tant qu'hôte de confiance (TrustedHosts).

Si votre poste client n'est pas dans le même domaine AD que votre serveur, vous devez déclarer les Trustedhosts :

Sur le serveur :

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "IP_du_client”

Sur le client :

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "IP_du_serveur"

Pensez à redémarrer le service WinRM pour la prise en compte des modifications :

Restart-Service winrm

Vous pouvez vérifier la configuration de WinRM :

# Vérifier si le service WinRM est en cours d'exécution
Get-Service -Name WinRM

# Démarrer le service WinRM s'il n'est pas en cours d'exécution
if ((Get-Service -Name WinRM).Status -ne 'Running') {
    Start-Service -Name WinRM
}

# Vérifier la configuration de WinRM
winrm get winrm/config

# Vérifier les écouteurs WinRM
winrm enumerate winrm/config/Listener

# Vérifier les règles de pare-feu pour WinRM
Get-NetFirewallRule -DisplayName "Windows Remote Management*"

# Vérifier les certificats WinRM
dir Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*CN=WinRM*" }

# Tester la connexion WinRM depuis un poste client
Test-WSMan -ComputerName "NomDuServeur"

Via PowerShell

Pour vous connecter à un serveur ou poste distant Windows où WinRM est activé, la commande PowerShell est celle-ci :

Enter-PSSession -ComputerName "IP_ou_nom_du_serveur" -Credential "utilisateur@domaine.home"

Pour se déconnecter de votre session distante et revenir à votre session locale :

Exit-PSSession

Via les consoles MMC

1) Cliquez avec le bouton droit sur le menu Démarrer et sélectionnez Windows PowerShell (Admin) ou Windows Terminal (Admin).

2) Exécutez la commande suivante pour installer les outils d'administration à distance :

Install-WindowsFeature -Name RSAT

3) Appuyez sur Win + R, tapez mmc et appuyez sur Entrée pour ouvrir la console MMC.

4) Dans la console MMC, allez dans le menu Fichier et sélectionnez Ajouter/Supprimer un composant logiciel enfichable....

5) Dans la fenêtre qui s'ouvre, sélectionnez le composant que vous souhaitez utiliser pour gérer le serveur, par exemple Gestion de l'ordinateur.

6) Après avoir ajouté le composant, cliquez dessus avec le bouton droit et sélectionnez Connecter à un autre ordinateur....

7) Entrez le nom ou l'adresse IP du serveur auquel vous souhaitez vous connecter et cliquez sur OK.

via Windows Admin Center

1) Téléchargez le fichier d'installation de Windows Admin Center depuis le site officiel de Microsoft.

2) Exécutez le fichier d'installation et suivez les instructions à l'écran pour installer Windows Admin Center.

3) Ouvrez un navigateur web et accédez à l'URL de Windows Admin Center (par défaut, https://:443).

4) Suivez les instructions à l'écran pour configurer les paramètres initiaux de Windows Admin Center.

5) Pour ajouter votre serveur à la console, cliquez sur Ajouter dans le tableau de bord de Windows Admin Center.

6) Sélectionnez  Serveur et entrez le nom ou l'adresse IP du serveur ainsi que les informations d'identification de l'administrateur.

7) Cliquez sur Ajouter pour ajouter le serveur.

8) Cliquez sur le serveur ajouté pour accéder à ses paramètres et utilisez les outils de gestion de Windows Admin Center.

Etape 5 : Configurer un cluster de basculement DHCP

Prérequis
  • Rôle DHCP installé : Le rôle DHCP doit être installé sur les deux serveurs.
Install-WindowsFeature -Name DHCP -IncludeManagementTools
  • Autorisation DHCP : Les deux serveurs doivent être autorisés dans Active Directory.
Add-DhcpServerInDC
  • Sur le premier serveur, une étendue DHCP doit être active. Vous pouvez vérifier avec les commandes suivantes:
Get-DhcpServerv4Scope

Get-DhcpServerv4ScopeStatistics -ScopeId "ID_réseau"

1) Sur le premier serveur DHCP, ouvrez une console MMC et chargez le composant DHCP. A faire de préférence depuis votre poste client ! 🤡

2) Clic droit sur l'étendue, puis Configurer un basculement.

3) L'assistant de configuration s'ouvre, sélectionnez l'étendue ou laissez cocher sélectionner tout.

4) Depuis l'écran Spécifier le serveur partenaire, cliquez sur Ajouter un serveur, cochez Ce serveur DHCP autoriséet sélectionnez le deuxième serveur DHCP.

5) Depuis l'écran configurer un basculement, vous allez configurer les paramètres suivants :

  • Nom de la relation : comme vous voulez !

  • MCLT : Ce paramètre spécifie la durée pendant laquelle un bail DHCP peut être renouvelé par l'un des partenaires de basculement sans contacter l'autre, ce qui est utile en cas de panne. Il joue également un deuxième rôle en spécifiant la durée pendant laquelle le serveur actif restera dans l'état "partenaire en panne" avant de prendre le contrôle de la totalité de la plage d'adresses IP de l'étendue. C'est particulièrement intéressant pour assurer une continuité de service en cas de panne prolongée.

  • Mode : Vous allez choisir le scénario que vous voulez.

Mode Basculement (Failover)

Un serveur DHCP principal gère les baux DHCP, tandis qu'un serveur secondaire reste en veille. Si le serveur principal tombe en panne, le serveur secondaire prend le relais pour assurer la continuité de service DHCP. Il faut alors préciser le pourcentage d'adresses IP réservées pour le serveur de secours au sein de la plage d'adresse, idéalement 20% (règle 80/20). Dans ce cas, le serveur de secours est assuré d'avoir 20% d'adresses IP disponibles qu'il peut attribuer aux postes clients.

Mode Equilibrage de charge (Load Balancing)

Les deux serveurs DHCP partagent la charge de distribution des adresses IP. Chaque serveur gère une partie de la plage d'adresses IP. Les deux serveurs DHCP distribuent des adresses IP aux clients de manière équilibrée. Il faut alors définir le Pourcentage d'équilibrage de charge, ce qui correspond au pourcentage d'adresses IP de la plage de l'étendue que devra gérer chaque serveur, idéalement 50/50.

  • Activer l'authentification du message : Saisissez un "Secret partagé" complexe qui sera utilisé pour chiffrer les échanges entre les deux serveurs DHCP du cluster.

  • Intervalle de basculement d'état : Cette option permet de spécifier le délai après lequel un partenaire est considéré comme hors service si la communication avec lui est perdue. Il est important de spécifier cette option, sans quoi le basculement peut subvenir sans délai. 5 minutes est un bon compromis.

6) Poursuivez jusqu'au bout de l'assistant et obtenez le message "Réussite de la configuration du basculement"!

7) Ce n'est pas fini ! Toujours depuis votre premier serveur, faites un clic droit sur l'étendue puis Répliquer l'étendue pour permettre de synchroniser les paramètres entre les deux serveurs (options d'étendue, baux DHCP,...). Cette synchronisation n'est pas automatique, c'est pourquoi il faut penser à la lancer dès que vous modifiez la configuration de l'étendue.

8) C'est tout bon ! Vous pouvez vérifier la configuration du basculement avec ces commandes PowerShell :

# Obtenir des informations sur le cluster DHCP.
Get-DhcpServerv4Failover -ComputerName "Nom_du_serveur_DHCP"

# Obtenir des informations détaillées sur une étendue spécifique.
Get-DhcpServerv4ScopeStatistics -ComputerName "nom_du_serveur_DHCP" -ScopeId "ID_réseau"

Etape 6 : Vérifier et tester que la redondance des services ADDS, DHCP et DNS est assurée.

Option d'étendue DCHP pour déclarer le deuxième serveur DNS

Bien entendu, vous avez pensé à ajouter votre deuxième serveur DNS dans les options d'étendue DHCP ! De façon à ce que les postes clients puissent contacter l'un ou l'autre.

Set-DhcpServerv4OptionValue -ComputerName "Nom_du_serveur_DHCP" -ScopeId "ID_réseau" -DnsServer "Adresse_IP_du_serveur_DNS_primaire", "Adresse_IP_du_serveur_DNS_secondaire"

Pensez à répliquer la configuration vers l'autres serveur DCHP de votre cluster de basculement en cas de modfication sur l'étendue !

Eteignez un des serveurs (ou arrêtez les services), puis :

Test AD : Ouvrez une invite de commandes en tant qu'administrateur sur le poste client et exécutez la commande suivante pour vérifier la connectivité au contrôleur de domaine :

nltest /dsgetdc:Nom_Du_Domaine

Test DHCP : Ouvrez une invite de commandes en tant qu'administrateur sur le poste client et exécutez les commandes suivantes pour libérer et renouveler le bail DHCP :

ipconfig /release

ipconfig /renew

ipconfig /all

Vérifiez que le poste client a obtenu une adresse IP et les options DHCP correctes (comme les serveurs DNS) depuis le serveur DHCP restant.

Test DNS : Utilisez la commande nslookup pour vérifier que le poste client peut résoudre des noms de domaine via le serveur DNS restant :

nslookup <NomDeDomaine>

FIN ! 🥳

Commandes utiles

nslookup

La commande nslookup permet d'interroger un serveur DNS pour obtenir des informations sur un nom de domaine ou une adresse IP. Pour utiliser nslookup en mode non interactif avec le serveur DNS 9.9.9.9 (Quad9), voici quelques exemples de commandes :

Résolution d'un nom de domaine en adresse IP :

nslookup domaine.fr 9.9.9.9

Recherche d'un enregistrement MX pour les serveurs de messagerie :

nslookup -query=MX domaine.fr 9.9.9.9

Recherche des enregistrements NN pour les serveurs de nom DNS :

nslookup -query=NS domaine.fr 9.9.9.9

Recherche de l'adresse inverse (résolution d'une IP en nom de domaine) :

nslookup 93.184.216.34 9.9.9.9

Recherche d'un enregistrement TXT (souvent utilisé pour SPF, DKIM, etc.) :

nslookup -query=TXT domaine.fr 9.9.9.9

Rôles Windows Server

Lister les rôles disponibles :

Get-WindowsFeature

Lister les rôles installés :

Get-WindowsFeature | Where Installed

Installation ADDS,DNS et DHCP

Install-WindowsFeature -Name AD-Domain-Services, DHCP

Promotion contrôleur de domaine avec installation DNS :

Install-ADDSForest -DomainName maboite.home -InstallDNS

Tests de connectivité Active Directory

Commandes PowerShell

  • Test-ComputerSecureChannel

Cette commande teste la connexion sécurisée entre un ordinateur et un contrôleur de domaine :

Test-ComputerSecureChannel -Server <NomDuServeur>
  • Get-ADDomainController

Cette commande récupère une liste de tous les contrôleurs de domaine dans le domain :

Get-ADDomainController -Filter *
  • Get-ADUser

Cette commande récupère les informations sur un utilisateur spécifique :

Get-ADUser -Identity <NomUtilisateur>
  • Test-ADServiceAccount

Cette commande teste l'état d'un compte de service géré :

Test-ADServiceAccount -Identity <NomDuCompteDeService>

Commandes CMD

  • nltest

Cette commande liste tous les contrôleurs de domaine dans le domaine spécifié :

nltest /dclist:<NomDuDomaine>

Afficher des informations sur un utilisateur, telles que le contrôleur de domaine d'authentification :

nltest /user:<username>

Afficher des informations de configuration telles que le nom de domaine et le nom NetBIOS :

nltest /config
  • dcdiag

Cette commande exécute des tests de diagnostic sur les contrôleurs de domaine :

dcdiag

Vérifier la topologie Active Directory :

dcdiag /test:topology
  • repadmin

Cette commande affiche un résumé de la réplication Active Directory :

repadmin /replsummary

Afficher des détails spécifiques sur la réplication entre les contrôleurs de domaine :

repadmin /showrepl
  • netdiag

Cette commande exécute des tests de diagnostic réseau :

netdiag /v

Outils Graphiques

  • Active Directory Users and Computers (ADUC)

Ouvrez dsa.msc pour accéder à l'outil de gestion des utilisateurs et des ordinateurs.

  • Active Directory Sites and Services

Ouvrez dssite.msc pour gérer les sites et les services Active Directory.

  • Active Directory Administrative Center (ADAC)

Ouvrez dsac.exe pour une interface graphique plus moderne pour gérer Active Directory.

Outils de Diagnostic

  • ADSI Edit

Ouvrez adsiedit.msc pour éditer les objets Active Directory directement.

  • Event Viewer

Ouvrez eventvwr.msc et vérifiez les journaux d'événements pour les erreurs ou les avertissements liés à Active Directory.

Scripts PowerShell

Vous pouvez également utiliser des scripts PowerShell pour automatiser les tests et les diagnostics. Voici un exemple de script simple pour vérifier l'état des contrôleurs de domaine. Ce script récupère tous les contrôleurs de domaine et teste la connexion sécurisée pour chacun d'eux :

$domainControllers = Get-ADDomainController -Filter *
foreach ($dc in $domainControllers) {
    Write-Host "Testing $($dc.Name)"
    Test-ComputerSecureChannel -Server $dc.Name
}

Active Directory

Importer le module active directory pour obtenir les commandes liées à l'AD :

Import-Module ActiveDirectory

Création d'un utilisateur AD

# Définition du mot de passe dans une variable :

$motdepasse = "SuperM@tdePasse!" | ConvertTo-SecureString -AsPlainText -Force

# Création du compte avec rappel de la variable :

New-ADUser -Name "Super POWER" -Surname "POWER" -GivenName "Super" -DisplayName "Super POWER" -UserPrincipalName "super.power@devrig.lcl" -SamAccountName "superpower" -path "OU=Informatique, OU=Ma_boite, DC=devrig, DC=lcl" -PasswordNeverExpires $true -Enabled $true -AccountPassword $motdepasse

WSUS

Installation WSUS :

Install-WindowsFeature -Name UpdateServices -Restart

Installation WSUS avec WID :

Install-WindowsFeature -Name UpdateServices-Services,UpdateServices-WidDB -IncludeManagementTools

Installation WSUS avec SQL :

Install-WindowsFeature -Name UpdateServices-Services,UpdateServices-DB -IncludeManagementTools

Postinstall :

Set-Location "C:\Program Files\Update Services\Tools" | .\wsusutil.exe postinstall CONTENT_DIR=e:\wsus 

Correctif autoriser IIS à utiliser toute la mémoire vive disponible :

Set-WebConfiguration -Filter "/system.applicationHost/applicationPools/add[@name='WsusPool']/recycling/periodicRestart/@privateMemory" -Value 0

Correctif autoriser IIS à lancer plusieurs processus :

Set-WebConfiguration -Filter "/system.applicationHost/applicationPools/add[@name='WsusPool']/processModel/@maxProcesses" -Value 0

WDS

Pour initialiser un serveur Windows Deployment Services (WDS). Vous pouvez utiliser l'utilitaire en ligne de commande wdsutil

wdsutil /initialize-server /Reminst:Z:WDS

:: /initialize-server : Cette option intialise le serveur WDS.
:: /Reminst:Z:WDS : Cette option spécifie l'emplacement du répetoire partagé "Reminst" où se trouveront les fichiers et les images de démarrage/installation.