Logo Dell EMC Unity

A peu près tout le monde s’accorde à dire que la sécurisation des communications est un enjeu majeur pour les entreprises. Malheureusement le problème est trop rarement pris en compte en ce qui concerne les interfaces d’administration des différents éléments qui composent le SI. La mise en place de certificats valides en remplacement des autosignés serait un grand pas en avant. Alors pourquoi ce principe de sécurité de base est-il trop peu souvent appliqué ? Une explication possible est que souvent les éditeurs/constructeurs ne facilitent pas la tâche aux intégrateurs/administrateurs en ne documentant pas (ou trop succinctement) les opérations à réaliser pour atteindre ce but.

Dans cet article je vous propose de remédier partiellement à ce problème en détaillant la procédure pour installer un certificat signé par une autorité de certification Microsoft Active Directory sur une baie Dell EMC Unity. Ce certificat servira à:

  • Garantir que vous êtes bien connecté à la baie souhaité, on peut ainsi dire qu’il fait office de carte d’identité de l’équipement,
  • Chiffrer les communications entre votre navigateur et la baie.
  • Ne plus avoir à cliquer 36 fois pour certifier que oui, on veut vraiment se connecter à cette baie même si les communications ne sont pas sécurisées…

Bien que spécifiquement rédigée pour les Unity, cette procédure devrait vous donner de bonnes bases pour répéter l’opération sur d’autres équipements.

Workflow

L’opération peut se résumer en 4 étapes:

  1. La validation des prérequis
  2. La génération d’une demande de certificat ainsi que d’une clé privée associée
  3. L’obtention d’un certificat signé par une autorité de certification AD
  4. L’importation de ce certificat et de la clé privée dans la baie Unity.

Prérequis

Pensez à valider les prérequis suivants avant de dérouler la procédure !

  • OpenSSL doit être installé sur votre poste de travail

Pour cet article, la version 1.1.0.5 a été utilisée.

  • Vous devez disposer d’un accès à une autorité de certification Microsoft AD

Il vous faudra les identifiants d’un compte ayant les droits nécessaires pour effectuer une demande de certificat. Les instructions que vous trouverez dans cet article correspondent à une autorité de certification hébergée sur un serveur Windows 2012 R2.

  • Un accès en SSH à la baie Unity (via le compte Service)

L’accès SSH doit avoir été activé préalablement sur la baie. Le mot de passe du compte service est généralement le même que celui du compte admin.

  • Un outil pour transférer le certificat et sa clé privée sur la baie Unity.

Si vous vous servez d’un système d’exploitation de Microsoft, un utilitaire comme WinSCP fera parfaitement l’affaire.

Procédure

Générer une demande de certificat et une clé privée avec OpenSSL

La première étape va consister à générer une demande de certificat ainsi qu’une clé privée associée. Nous allons utiliser OpenSSL pour cela. Pour nous faciliter la tâche et éviter d’avoir une longue liste de questions auxquelles répondre pendant la génération de la demande, nous allons créer un fichier de réponse nommé openssl.txt et contenant les informations suivantes (à modifier suivant vos besoins…):

https://gist.github.com/equelin/56615e9a2af080e56f150fc1bfa902ab#file-openssl-txt

Le champ CN doit correspondre exactement au FQDN utilisé pour se connecter à l’interface de management de la baie. Les champs DNS.1 et DNS.2 correspondent respectivement au nom long et au nom cours de la baie. Le champ IP.1 représente l’IP d’administration.

Une fois ce fichier créé nous pouvons l’utiliser pour générer la demande:

PS C:\Unity> openssl req -new -nodes -out unity.csr -newkey rsa:2048 -keyout unity.pk -config .\openssl.txt

Si tout se passe bien, vous devriez voir les informations suivantes apparaitre:

Generating a 2048 bit RSA private key
....+++
.........................................+++
writing new private key to 'unity.pk'
-----

Vous devez maintenant disposer de deux nouveaux fichiers. Dans notre exemple le fichier unity.csr correspond à la demande de certificat qui sera soumise à l’autorité de certification. Le fichier unity.pk contient la clé privée qui a permis de signer cette demande.

Pensez à conserver la clé privée, elle sera par la suite copiée sur la baie Unity.

Pour valider que la demande de certificat a correctement été générée, utilisez la commande ci-dessous:

PS C:\Unity> openssl req -in .\unity.csr -noout -text
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=FR, ST=Loire-Atlantique, L=Nantes, O=
Myvmworld, OU=Lab/[email protected], CN=srv-unity-01.exemple.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c5:b0:a1:d4:98:9b:c8:25:04:71:cd:36:e6:ce:
f6:83:aa:5d:77:e4:fa:58:4e:b2:81:0f:23:5c:59:
d0:c5:0c:3f:37:88:32:b2:a4:a2:03:c0:c5:00:00:
b8:a3:96:17:52:a6:cc:ef:36:2a:e7:f9:5c:26:46:
50:55:65:44:7f:fd:f8:03:3e:39:d1:fc:97:e1:37:
7f:5c:1b:20:36:fc:d5:ae:31:f6:49:58:fb:5d:4a:
....
d0:73:fa:97:12:f0:bb:ac:cb:c3:a0:8e:f1:1c:eb:
66:3c:f0:50:85:f3:be:21:53:82:98:73:af:b9:12:
7d:68:9c:dd:fa:3a:c3:b9:5c:8b:8e:40:60:f9:35:
97:eb:e5:34:0b:97:d7:43:a3:1e:f2:a4:bf:a7:03:
e8:db:c2:5b:7d:e1:c1:a8:33:61:6b:30:b3:16:79:
10:12:cf:67:f2:fd:ad:68:7c:0d:dc:8b:37:c6:55:
19:49
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Subject Alternative Name:
DNS:srv-unity-01.exemple.com, DNS:srv-unity-01, IP Address:192.168.0.1
Signature Algorithm: sha256WithRSAEncryption
18:45:de:02:16:a1:e3:d4:9e:d6:74:87:61:74:a9:bf:a0:5f:
2c:09:1c:b5:2b:0f:42:26:0e:f2:40:29:ea:51:73:54:3d:4e:
53:f7:73:ef:16:98:ac:20:1a:c8:15:7c:b9:df:de:39:ec:c0:
fa:4b:f2:06:99:47:c7:8a:a3:f3:6f:28:2b:07:a2:be:84:f6:
....
b4:6b:09:fa:cb:79:7f:83:95:43:32:2e:14:94:f4:eb:b9:88:
27:62:cf:24:bb:54:9c:d6:69:2e:eb:ae:0e:cb:4d:fc:09:12:
19:b8:2e:c4:ac:06:a0:9d:a7:09:48:e7:54:9a:aa:f7:df:27:
6b:17:5d:79:43:88:0a:4f:be:f9:ae:c4:3f:a4:0c:2c:47:2a:
25:dd:3c:10:44:b5:10:35:ef:d0:d1:2e:25:19:b1:33:9c:99:
9a:2b:28:62

Vous devriez retrouver les informations fournis dans le fichier de réponse.
Nous avons maintenant en notre possession les informations nécessaires pour effectuer une demande de certificat auprès d’une autorité de certification.

Générer un certificat signé par une autorité de certification Microsoft AD

Dans l’étape précédente nous avons généré une demande de certificat ainsi que sa clé privée. Nous allons nous en servir pour obtenir un certificat, il sera signé par l’autorité de certification afin d’en valider la provenance.

Pour réaliser cette opération, connectez-vous au service web de votre autorité de certification. Il s’agit d’une page web généralement accessible à l’adresse http://<FQDN autorité de certification>/certsrv. Une fois authentifié, vous devrez:

  1. Cliquer sur la tâche Demander un certificat
  2. Cliquer sur demande de certificat avancé
  3. Cliquer sur Soumettez une demande de certificat en utilisant un fichier CMC ou PKCS #10 codé en base 64, ou soumettez une demande en utilisant un fichier PKCS #7 codé en base 64
  4. Dans le champ Demande enregistrée copié le contenu du fichier de demande de certificat (ici unity.csr)

Copier l’intégralité du contenu du fichier, penser à y inclure la première et dernière ligne -----BEGIN CERTIFICATE REQUEST----- et -----END CERTIFICATE REQUEST-----

  1. Dans le champ Modèle de certificat sélectionner Serveur Web

  1. Cliquer sur Envoyer
  2. Sur la page Certificat émis sélectionner Codé en base 64 et cliquer sur Télécharger le certificat
  3. Enregistrer le certificat sur votre poste et le renommer en unity.crt

Par défaut le certificat généré se nomme certnew.cer

Importer le certificat et la clé privée sur la baie Unity

Maintenant que nous disposons d’un certificat signé par l’autorité de certification et de sa clé privée. Nous allons l’importer sur la baie. Au préalable il va vous falloir copier les 2 fichiers concernés sur la baie. Un utilitaire comme WinSCP fera parfaitement l’affaire.

Dans l’exemple ci-dessous les fichiers ont été copiés dans le répertoire ~/cert.

Le certificat et la clé privée doivent être nommés de la même manière à l’exception bien sûr de l’extension…

14:10:39 service@VIRT1710RZW84B-spa spa:~/cert> ll
total 8
-rw-r--r-- 1 service service 1764 Jun  6 14:21 unity.crt
-rw-r--r-- 1 service service 1704 Jun  6 14:16 unity.pk

L’importation du certificat se fait avec la commande svc_custom_cert. Il faudra préciser le nom de base des fichiers. Dans notre cas, en indiquant que le nom de base est unity la commande va chercher à importer les fichiers unity.crt (certificat) et unity.pk (clé privée).

14:19:00 service@VIRT1710RZW84B-spa spa:~/cert> svc_custom_cert unity

Si tout se passe bien, vous devriez voir le message suivant indiquant que l’import c’est correctement déroulé.

Successfully installed custom certificate files.
Restarting web server ...
Tue Jun  10 14:19:53 2017:633e
Successfully installed custom certificate files.
Restarting web server ...
Tue Jun  10 14:19:53 2017:633e\0x7fcf2c3a97c0:32:Module CIC/1.1.10.6 loaded
x7fcf2c3a97c0:32:Module CIC/1.1.10.6 loaded

A partir de maintenant, lorsque vous vous connecterez à Unisphere, vous aurez le plaisir de voir apparaitre le fameux cadenas dans la barre d’adresse !

J’espère que cet article vous aura été utile et que vous aurez pu facilement le suivre pour installer un nouveau certificat sur votre baie Unity.

N’hésitez pas à laisser un commentaire ou bien contactez moi sur twitter (@erwanquelin) pour toutes questions.

Erwan Quelin

Rédigé par

Erwan Quelin

Erwan Quélin est depuis 7 ans Ingénieur Systèmes chez Cheops Technology. Ses interventions sont multiples et auprès de clients très diversifiés dans la région Ouest. Spécialisé dans la virtualisation autour des produits VMware et dans le stockage autour des gammes VNX, Unity et VPLEX de Dell EMC, Erwan est certifié VMware Certified Professional – Datacenter virtualization 4, 5 et 6 ainsi que EMC Implementation Engineer – VNX et Unity et vient d’intégrer les programmes VMware vExpert et Dell EMC Elect pour l’année 2017.

Lorsqu’il lui reste un peu de temps libre, Erwan développe des projets open sources ayant pour sujet principal l’automatisation d’infrastructures.