Déploiement d'un serveur Windows Core sur un serveur dédié OVH
Lorsque vous déployez un serveur dédié chez OVH et décidez d'utiliser le template Windows Core, il est nécessaire d'automatiser certaines étapes dès l'installation de Windows par le template OVH pour renforcer la sécurité et vous octroyer un accès SSH.
Voici comment procéder à l'installation d'un serveur Windows Server 2025 Standard/Datacenter (Core) avec un script de post-installation adapté à l'environnement OVH.
Étape 1 : Préparation depuis l'interface OVH
- Connectez-vous sur votre interface client OVH :
- Rendez-vous dans le menu Serveurs dédiés.
- Sélectionnez votre serveur (exemple : ns1234567.ip-ab-cde-fgh.e).
- Lancez l'installation :
- Cliquez sur Installer mon serveur.
- Choisissez l'OS Windows Server 2025 Standard (Core) (win2025core-std).
- Sélectionnez la langue d'affichage (fr-fr).
- Intégrez le script de Post-Installation :
- Adaptez, puis copiez-collez le script PowerShell suivant dans le champ prévu par OVH.
(Voir à l'étape 2 pour les explications et ce qu'il faut modifier dans le script)
- Adaptez, puis copiez-collez le script PowerShell suivant dans le champ prévu par OVH.
# Définir le mot de passe Administrateur Windows
$AdminUser = Get-LocalUser | Where-Object { $_.Sid.Value.EndsWith('-500') }
$AdminUser | Enable-LocalUser
$Password = ConvertTo-SecureString "MOT2PASSE-ADMINISTRATEUR-BALAISE" -AsPlainText -Force
$AdminUser | Set-LocalUser -Password $Password
# Désactiver sconfig au démarrage du serveur
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name "Shell" -Value "powershell.exe"
# Installer & Configurer le serveur OpenSSH
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Add-WindowsCapability -Online
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
$authorizedKey = 'ssh-ed25519 VOTRE-CLEF-PUBLIQUE utilisateur@VOTRE-PC'
Add-Content -Force -Path C:\ProgramData\ssh\administrators_authorized_keys -Value $authorizedKey
icacls.exe C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r /grant *S-1-5-32-544:F /grant SYSTEM:F
# Renforcer la configuration d'OpenSSH
$sshdConfigPath = 'C:\ProgramData\ssh\sshd_config'
$linesToUncomment = @(
'LoginGraceTime',
'PubkeyAuthentication yes',
'MaxAuthTries',
'MaxSessions',
'Banner none'
)
(Get-Content -Path $sshdConfigPath) | ForEach-Object {
$line = $_
foreach ($entry in $linesToUncomment) {
# Remplacer la ligne commentée correspondante
$pattern = "^\s*#\s*($entry.*)$"
if ($line -match $pattern) {
$line = $Matches[1]
break
}
}
$line
} | Set-Content -Path $sshdConfigPath -Encoding ascii
function Set-SSHDConfigOption {
param (
[string]$Path,
[string]$Option,
[string]$Value
)
# Si l'option existe (commentée ou non), remplace-la
if (Select-String -Path $Path -Pattern "^\s*#?\s*$Option\s") {
(Get-Content -Path $Path) |
ForEach-Object { $_ -replace "^\s*#?\s*$Option\s.*", "$Option $Value" } |
Set-Content -Path $Path -Encoding ascii
}
# Sinon, ajoute-la en fin de fichier
else {
Add-Content -Path $Path -Value "$Option $Value"
}
}
Set-SSHDConfigOption -Path $sshdConfigPath -Option "Port" -Value "64111"
New-NetFirewallRule -Name "OpenSSH-Inbound" -DisplayName "OpenSSH-Inbound" -Protocol TCP -Direction Inbound -Action Allow -LocalPort 64111
Set-SSHDConfigOption -Path $sshdConfigPath -Option "LoginGraceTime" -Value "3s"
Set-SSHDConfigOption -Path $sshdConfigPath -Option "MaxAuthTries" -Value "3"
Set-SSHDConfigOption -Path $sshdConfigPath -Option "MaxSessions" -Value "3"
Set-SSHDConfigOption -Path $sshdConfigPath -Option "PasswordAuthentication" -Value "no"
Set-SSHDConfigOption -Path $sshdConfigPath -Option "ClientAliveInterval" -Value "300"
Set-SSHDConfigOption -Path $sshdConfigPath -Option "ClientAliveCountMax" -Value "2"
Restart-Service sshd
# Installer Bitlocker
Install-WindowsFeature BitLocker
# Renommer Serveur
Rename-Computer -NewName "MON-SUPER-SERVEUR" -Force
Restart-Computer -Force
Étape 2 : Description détaillée du script utilisé
1. Définition du mot de passe administrateur :
Le script commence par définir un mot de passe sécurisé pour le compte administrateur local (MOT2PASSE-ADMINISTRATEUR-BALAISE). A vous de le changer.
2. Désactivation de l'interface sconfig par défaut :
L'environnement graphique simplifié est remplacé par une invite PowerShell directe pour faciliter les interventions en ligne de commande. Libre à vous de ne pas inclure cette partie.
3. Installation et configuration sécurisée du serveur OpenSSH :
- OpenSSH est installé et configuré pour démarrer automatiquement au démarrage du serveur.
- L'accès SSH est sécurisé via une clé publique personnalisée (que vous devez fournir !)
- Les permissions du fichier administrators_authorized_keys sont sécurisées pour n'autoriser que les administrateurs.
4. Renforcement de la sécurité OpenSSH :
Le script ajuste plusieurs paramètres de sécurité dans le fichier de configuration SSH (sshd_config) tels que :
- Port personnalisé : 64111 (port SSH modifié). A vous de le modifier au besoin !
- Authentification uniquement par clé publique (PasswordAuthentication no).
- Limitation du temps d'authentification à 3 secondes.
- Limitation du nombre de tentatives d'authentification (MaxAuthTries : 3).
- Limitation du nombre maximal de sessions simultanées (MaxSessions : 3).
- Paramétrage de l'intervalle d'activité client pour déconnexion automatique.
5. Configuration du pare-feu Windows :
Le script crée une règle spécifique pour autoriser les connexions entrantes uniquement sur le port SSH sécurisé choisi.
6. Installation de BitLocker :
Pour sécuriser davantage les données sensibles sur le serveur, le script installe BitLocker.
Attention : si votre OS est installé sur un Soft Raid, alors vous ne pourrez pas utiliser Bitlocker !
7. Renommer le serveur :
Enfin, le serveur est renommé automatiquement en MON-SUPER-SERVEUR puis redémarre pour finaliser toutes les configurations appliquées.
Une fois le serveur installé, le script de post-installation va s'exécuter et le serveur redémarrera.
Vous pourrez vous connecter via SSH à l'issue
Étape 3 : Faire les mises-à-jour
Les MAJ sont bloquées ou non fonctionnelles à cause du template Windows Serveur Core d'OVH !
Pour pouvoir installer la dernière cumulative, il est nécessaire de disposer du checkpoint de septembre 2024 en plus, où votre cumulative actuelle ne s'installera.
Prenons la cumulative de juin 2025 pour exemple.
Aller sur le catalogue officiel : https://www.catalog.update.microsoft.com/
Rechercher, récupérer l'URL et Télécharger les KB suivantes directement sur votre serveur Core :
- KB5043080 (checkpoint, sept. 2024)
- KB5060842 (cumulative, juin 2025)
Puis, installer uniquement la cumulative.
Les dépendances nécessaires seront trouvées dans le checkpoint de septembre 2024.
New-Item C:\TEMP
Set-Location C:\TEMP
Invoke-WebRequest -Uri https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/d8b7f92b-bd35-4b4c-96e5-46ce984b31e0/public/windows11.0-kb5043080-x64_953449672073f8fb99badb4cc6d5d7849b9c83e8.msu -Outfile windows11.0-kb5043080-x64_953449672073f8fb99badb4cc6d5d7849b9c83e8.msu
Invoke-WebRequest -Uri https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/58b46d94-e497-4048-8aea-4b430fd63d12/public/windows11.0-kb5060842-x64_07871bda98c444c14691e0a90560306703b739cf.msu -Outfile windows11.0-kb5060842-x64_07871bda98c444c14691e0a90560306703b739cf.msu
Add-WindowsPackage -Online -PackagePath C:\TEMP\windows11.0-kb5060842-x64_07871bda98c444c14691e0a90560306703b739cf.msu
Restart-Computer -Force
↑ Haut de page