SharePoint 2013: Améliorer la sécurité de SQL Server (fr-FR)
Introduction
Nous allons voir dans cet article la manière d’améliorer la sécurité de SQL Server, par le biais des opérations suivantes :
- La configuration d’un port d’écoute spécifique pour SQL Server (instance par défaut ou nommée),
- Le blocage des ports standards d’écoute de SQL Server (TCP 1433, UDP 1434) via le firewall Windows,
- La création d’une "Inbound Rule" sur le firewall Windows,
- L’utilisation d’un alias SQL.
Il fait partie d’une série concernant le déploiement de SharePoint 2013 :
- SharePoint 2013 : Prérequis matériels, logiciels et système
- SharePoint 2013 : Créer les comptes AD nécessaires à l’installation,
- SharePoint 2013 : Améliorer la sécurité de SQL Server (Cet article),
- SharePoint 2013 : Installer un serveur (en mode ferme),
- SharePoint 2013 : Installer un serveur standalone,
- SharePoint 20xx : Ajouter un serveur à une ferme.
TCP 1433, UDP 1434 ?
L’instance SQL hébergeant vos bases de données SharePoint peut être de 2 types : "Par défaut" ou "Nommée".
Si cela ne vous rappelle rien vous retrouvez ce choix pendant l’installation de SQL Server.
http://spasipe.files.wordpress.com/2013/01/114.png?w=893&h=668
Lorsqu’une requête arrive au serveur SQL, elle est traitée différemment selon le type d’instance sollicitée.
Instance par défaut :
Le port TCP 1433 est utilisé, et ne change pas (sauf modification effectuée par l’administrateur).
Instance nommée :
Le port d’une instance nommée est par défaut dite dynamique, c’est-à-dire qu’un port disponible lui est affecté à chaque redémarrage de SQL Server.
A l’utilisation, le client envoie un message en UDP sur le port 1434 au serveur SQL, message traité par le service "SQL Server Browser" qui renvoie au client le numéro de port TCP/IP utilisé par l’instance. Le client peut ensuite envoyer sa requête.
Au final, vous passez donc soit en TCP-1433, soit en UDP-1434.
Dans l’attente de l’autorisation de son auteur d’utiliser cette image, je vous invite à aller la consulter.
Alias SQL ?
Les alias SQL se configurent au niveau de vos serveurs frontaux et applicatifs; voyez-les comme un raccourci vers votre serveur SQL – Un peu comme quand vous modifiez votre fichier hosts.
Pour SharePoint, le serveur SQL s’appellera désormais "le nom de votre alias"; évitez les noms tels que "Casimir" ou "JamesBond, car vous retrouvez ce nom dans l’administration centrale, par exemple dans la liste des serveurs …
Etape 1 : Configuration d’un port d’écoute spécifique pour SQL Server
L’idée est de :
- Modifier le port TCP utilisé par l’instance par défaut (1433),
- Arrêter d’utiliser des ports dynamiques pour les instances nommées, et leur attribuer des ports fixes.
Ces opérations s’effectuent à l’aide du "Configuration Manager" de SQL Server, en utilisant un compte ayant le rôle sysadmin ou serveradmin.
1. Ouvrez le "Configuration Manager" de SQL Server.
http://spasipe.files.wordpress.com/2013/01/25.png?w=595
2. Déployez la partie "SQL Server Network Configuration", et cliquer sur l’instance à modifier.
J’ai ici 2 instances :
- Celle par défaut – MSSQLSERVER,
- Une nommée – SHAREPOINT (La syntaxe est Protocols for "NomInstanceNommée").
http://spasipe.files.wordpress.com/2013/01/a2.png?w=893&h=324
Je modifie ici l’instance nommée; cliquez-droit sur "TCP/IP", et sélectionnez "Properties".
http://spasipe.files.wordpress.com/2013/01/c1.png?w=893&h=350
3. Cliquez sur l’onglet "IP Addresses".
Vous trouvez ici une entrée pour chacune des adresses IP de votre serveur, SQL Server écoutant sur chacune de ces adresses.
Modifiez les paramètres comme suit :
- Pour les entrées IPx, effacez les valeurs des champs "TCP dynamic ports" et "TCP Port",
- Pour l’entrée IPAll, effacez la valeur du champ "TCP dynamic ports", et saisissez dans le champ "TCP Port" le nouveau port d’écoute que SQL Server devra utiliser pour cette instance (je choisis ici 22000).
Cliquez sur "OK".
http://spasipe.files.wordpress.com/2013/01/45.png?w=595
4. Redémarrez le service "SQL Server", vous ne pourrez pas dire qu’on ne vous aura pas prévenu :
http://spasipe.files.wordpress.com/2013/01/54.png?w=595
Cliquez sur "SQL Server Services", puis clic-droit "Restart" sur le service appelé "SQL Server (VotreInstance)"
http://spasipe.files.wordpress.com/2013/01/d1.png?w=893&h=312
5. Jetez un oeil dans les logs SQL pour vérifier que votre modification a bien été prise en compte.
On voit bien ici que l’instance SQL écoute désormais sur le port précédemment paramétré : 22000.
http://spasipe.files.wordpress.com/2013/01/72.png?w=893&h=162
Etape 2 : Blocage des ports standards d’écoute de SQL Server
Il n’y a rien à faire, le firewall de Windows se chargeant de bloquer par défaut toute communication non autorisée via une "Inbound Rule".
Etape 3 : Création d’une "Inbound Rule" sur le firewall Windows
Partant du principe de l’étape 2 (tout ce qui n’est pas explicitement autorisé est bloqué), il va vous falloir créer une "Inbound Rule" afin d’autoriser les flux sur le port TCP (dans notre cas 22000).
1. Lancez "Windows Firewall with Advanced Security"
http://spasipe.files.wordpress.com/2013/01/82.png?w=595
2. Cliquez-droit sur "Inbound Rules", puis cliquez sur "New rule".
http://spasipe.files.wordpress.com/2013/01/92.png?w=893&h=425
3. L’assistant s’ouvre; cliquez sur "Port".
http://spasipe.files.wordpress.com/2013/01/102.png?w=893&h=719
4. Conservez "TCP" sélectionné, et saisissez le port configuré plus haut (ici 22000)
http://spasipe.files.wordpress.com/2013/01/113.png?w=893&h=722
5. Passez les autres étapes du wizard (en choisissant "Allow the connection") - L’"Inbound Rule" est créée avec le nom de votre choix.
http://spasipe.files.wordpress.com/2013/01/122.png?w=893&h=99
Etape 4 : Création et utilisation d’un alias SQL
La procédure de création et d’utilisation d’un alias est décrite dans cet article, consacré à l’installation d’un serveur SharePoint 2013 en mode ferme.
La seule différence ici est qu’il faut désormais décocher la case "Dynamically determine port" et saisir le port configuré (ici 22000).
http://spasipe.files.wordpress.com/2013/01/132.png?w=893&h=474