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:
- La validation des prérequis
- La génération d’une demande de certificat ainsi que d’une clé privée associée
- L’obtention d’un certificat signé par une autorité de certification AD
- 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:
- Cliquer sur la tâche
Demander un certificat
- Cliquer sur
demande de certificat avancé
- 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
- Dans le champ
Demande enregistrée
copié le contenu du fichier de demande de certificat (iciunity.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-----
- Dans le champ
Modèle de certificat
sélectionnerServeur Web
- Cliquer sur
Envoyer
- Sur la page
Certificat émis
sélectionnerCodé en base 64
et cliquer surTélécharger le certificat
- 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:633eSuccessfully 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.