Comment sécuriser un serveur Terminal Server / Citrix XenApp / Presentation Server ?

Salut à tous

J’ai récemment travaillé sur la sécurisation d’un serveur Terminal Server.

Quelques rappels :
Le service Terminal Server / Remote Desktop Service permet de transformer une machine Windows Server en l’équivalent de plusieurs dizaines / centaines de stations de travail.
Les applications installées sur le serveur sont mises à disposition des utilisateurs.  L’administrateur peut publier le bureau Windows ou juste une application (avec Windows 2008 / 2008 R2 ou Citrix toute version).
Les utilisateurs accèdent à leur bureau / applications via le client Bureau à distance à travers le réseau local ou via Internet (le flux réseau peut être encapsulé dans du trafic HTTP/HTTPS).
Terminal Server / Citrix présente de nombreux avantages :
– Les utilisateurs peuvent travailler de chez eux via leurs stations de travail.
– Les données des utilisateurs restent dans le réseau de l’entreprise. Cela simplifie la sauvegarde et la sécurisation de ces données (risque de vol ordinateur portable…).
– La maintenance d’un ou plusieurs serveurs Terminal Server reste plus simple que la maintenance de centaines de stations de travail (mises à jour des logiciels…).

Cependant, un des gros défis de ce type d’architecture est la sécurité du ou des serveurs Terminal Server / Citrix :
– Les utilisateurs ne doivent pas pouvoir modifier le système et perturber les sessions des autres utilisateurs.
– Les utilisateurs ne doivent pas pouvoir télécharger / exécuter de virus.
– Les utilisateurs doivent uniquement pouvoir exécuter les applications publiées.

Remarque :
Citrix XenApp (anciennement Citrix Presentation Server) est une surcouche fonctionnelle à Terminal Server (ajout de fonctionnalités supplémentaires).

Pour plus d’informations sur le service Terminal Server / Remote Desktop Service, voir :
http://www.microsoft.com/windowsserver2008/en/us/rds-product-home.aspx

Cette article a pour but de montrer comment renforcer la sécurité sur un serveur Terminal Server / Citrix. Pour cela, nous prendrons le cas concret suivant :
J’ai travaillé pour une société qui souhaitait publier Excel 2003 pour ses utilisateurs.
– Les utilisateurs devaient pouvoir ouvrir un fichier Excel et lancer des calcul via une macro Excel.
– Ils devaient pouvoir enregistrer de nouvelles versions du fichier Excel.
– Il ne devait pas pouvoir récupérer le fichier Excel sur leurs stations de travail.
– Le serveur de publication était sous Windows 2003 Server Entreprise R2 SP2 / Office 2003 Entreprise avec une surcouche Citrix Presentation Server 4.5.

1. Comment sécuriser le serveur Terminal Server / Citrix Presentation Server 4.5 :
Je vous invite à lire tout d’abord les articles Microsoft ci dessous :
http://support.microsoft.com/kb/278295/en-us
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7f272fff-9a6e-40c7-b64e-7920e6ae6a0d&DisplayLang=en
http://technet.microsoft.com/en-us/library/bb457006.aspx
http://www.microsoft.com/office/orkarchive/2003ddl.htm

Pour résumé, on va sécuriser le serveur Terminal Server / Citrix :
– En désactivant de nombreuses fonctionnalités de l’interface graphique via les stratégies de groupe.
– En activant les stratégies de restrictions logicielles. Les utilisateurs ne doivent pouvoir ouvrir qu’Excel.
– En personnalisant le profil des utilisateurs (suppression de tous les icônes inutiles). On va personnaliser le profil par défaut.
– En désactivant la redirection des lecteurs locaux, imprimantes, presse papier, port COM à travers le service Terminal Server.
– En désactivant certaines fonctionnalités d’Excel via stratégies de groupes. Pour cela il faut importer l’ADM Office 2003 et Excel 2003 dans notre stratégie de groupe.
– En activant la fonctionnalité LoopBack des stratégies de groupe. Les paramètres de types “Configuration Utilisateurs” s’appliquent à un compte ordinateur. Créer une OU dédiée pour les serveurs Citrix et déplacer les comptes “ordinateur” du ou des serveurs Citrix.

Quelques retours d’expérience sur les stratégies de restrictions logicielles :
Pour les activer :
– Créer une stratégie de restriction logicielle dans « Computer Configuration ». Laisser en mode non restreint et configurer le fait que cela ne s’applique pas aux administrateurs.
– Créer une stratégie de restriction logicielle dans « User Configuration ». Passer en mode restreint et configurer le fait que cela ne s’applique pas aux administrateurs. Configurer une règle de chemin d’accès vers l’exécutable Excel. Attention, les stratégies de restriction logicielle s’appliquent aussi aux raccourcis. Il faut donc exécuter Excel (publication d’application).
Ne jamaius supprimer les règles pré-définies sinon le système ne marche plus.
Les racourcis sont considérés comme des exécutables. Il faut donc les autoriser individuellement. On peut définir les types de fichiers qui sont pris en charge par la stratégie de restrictions logicielles.

2. Pour que les stratégies de s’appliquent pas aux administrateurs :
– Créer un groupe. Au niveau de l’onglet sécurité de la stratégie de groupe, refuser le droit “Appliquer la stratégie de groupe” à ce groupe.

3. Pourquoi est il si difficile de sécuriser un serveur Terminal Server / Citrix Presentation Server ?
Je me place du point de vue du pirate. Mon objectif est de récupérer le fichier Excel publié ou d’attaquer le serveur.
– L’administrateur m’a publié uniquement Excel.
– L’accès à l’invite de commande est verrouillé.
– Je ne peux pas parcourir les lecteurs locaux.
– Je ne suis pas administrateur du serveur.

Comment faire pour ouvrir un invite de commande depuis Excel ?
Dans Excel, cliquer sur “Fichier”  | “Ouvrir”.
Accéder à l’endroit où vous avez un accès en écriture.
Faire un clic droit et créer un fichier appelé test.bat.
Faire un clic droit et cliquer sur “Edit”.
Dans le fichier “test.bat”, taper “Cmd”. Sauvegarder.
Faire un clic droit sur le fichier et cliquer sur “Open”. Cela ouvre une fenêtre “Invite de commande”.
On peut maintenant parcourir tous les lecteurs locaux même si l’administrateur a désactivé le fait de pouvoir parcourir les lecteurs locaux via l’Explorateur Windows.

Comment récupérer le contenu d’un fichier :
On appellera station distante, la station de l’utilisateur depuis laquelle la session Terminal Server a été ouverte.
Solution 1 : Installer PDF Writer sur votre station de travail. Ouvrir votre session TSE. Si l’administrateur a autorisé la redirection d’imprimante et que le pilote PDF Writer est installé sur le serveur Terminal Server, vous pouvez imprimer vers l’imprimante PDF Writer de la station distance depuis la session Terminal Server.
Solution 2 : De base, il est possible avec Terminal Server de monter les disques de la station distante sous forme de lecteurs au niveau de la session Terminal Server. Cela peut être désactivé.
Si l’option est activée, il suffit d’arriver à ouvrir une fenêtre “Invite de commande” (pour contourner toutes les GPO) et de faire un “COPY” du fichier à récupérer entre le disque du serveur et le disque de la station distante.
Solution 3 : Si le presse papier est activé entre la station distante et le serveur Terminal Server, vous pouvez aussi récupérer le fichier en ouvrant le fichier avec Notepad et en faisant du copier / coller.

4. Comment s’en sortir ?
Il ne faut surtout pas que les utilisateurs puissent ouvrir une fenêtre “Invite de commande”.
Il est possible de bloquer l’invite de commande. Cependant il faut aussi bloquer l’exécution des scripts en arrière plan sinon l’utilisateur peut créer un fichier BAT pour ouvrir l’invite de commande. Cela va empêcher l’exécution de tous les scripts de login donc attention danger. L’idéal est donc de désactiver tous les racourcis clavier / menu contextuel et donc d’empêcher l’utilisateur de créer un fichier BAT.
Il faut suivre très rigoureusement les articles de la partie 1.
Attention l’aide de Windows dispose de nombreux liens qui permettent d’ouvrir une fenêtre invite de commande. Le plus simple est d’arrêter le service d’aide.

5. La morale de l’histoire :
– La seule solution pour réellement empêcher les utilisateurs de récupérer des données depuis un serveur Terminal Server / Citrix est d’utiliser des technologies comme Active Directory Right Management Services.
– Si vous souhaitez uniquement protéger votre serveur et empêcher les utilisateurs de faire des modifications, l’application des articles de la partie 1 devrait vous apporter satisfaction.

A+
Guillaume MATHIEU
Consultant PROSERVIA
Le bonheur, c’est le partage.
http://msreport.free.fr

A propos Guillaume Mathieu

Directeur Technique chez Flexsi
Ce contenu a été publié dans Active Directory, GPO, Maquette, Outils, Registre, Sécurité, Terminal Server, Windows 2000 Pro, Windows 2000 Server, Windows 2003 Server, Windows Server 2008, Windows Server 2008 R2, avec comme mot(s)-clé(s) , , , , , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Comment sécuriser un serveur Terminal Server / Citrix XenApp / Presentation Server ?

  1. Kroane dit :

    Salut, très bon tuto ! Bien expliqué et tout ! Bonne continuation à toi 😀

Laisser un commentaire