Configurer l’intégration d’ADC-Thales

L’organigramme suivant illustre les tâches que vous devez effectuer pour utiliser Thales HSM avec un Citrix ADC :

Organigramme

Comme indiqué dans l’organigramme ci-dessus, vous effectuez les tâches suivantes :

  1. Activez la configuration à distance push sur le HSM.
  2. Configurez ADC pour utiliser le Thales HSM.
    • Ajoutez l’adresse NSIP sur le HSM.
    • Configurez l’autorisation d’accès pour ADC sur le RFS.
    • Configurez le démarrage automatique du serveur dur au démarrage.
    • Inscrire le HSM sur ADC.
    • Ajoutez des détails RFS sur ADC.
    • Synchronisez ADC avec le RFS.
    • Vérifiez que Thales HSM est correctement inscrit sur ADC.
  3. (Facultatif) Créez une clé HSM RSA.
  4. Configurez les entités sur Citrix ADC.
    • Ajoutez la clé HSM.
    • Ajoutez une paire de clés de certificat à l’aide de la clé HSM.
    • Ajoutez un serveur virtuel.
    • Ajoutez un objet serveur.
    • Ajoutez un service.
    • Liez le service au serveur virtuel.
    • Liez la paire de clés de certificat au serveur virtuel.
    • Vérifiez la configuration.

Configurer le Thales HSM

Vous devez spécifier l’adresse IP du RFS sur le HSM de Thales afin qu’il accepte la configuration que le RFS lui transmet. Utilisez le panneau avant de nShield Connect de Thales HSM pour effectuer la procédure suivante.

Spécifier l’adresse IP d’un ordinateur distant sur le HSM de Thales

  1. Accédez à Configuration système > Options du fichier de configuration > Autoriser la transmission automatique.
  2. Sélectionnez ONet spécifiez l’adresse IP de l’ordinateur (RFS) à partir duquel accepter la configuration.

Activer la configuration à distance push sur le HSM

Vous devez spécifier l’adresse IP du RFS sur le HSM de Thales afin qu’il accepte la configuration que le RFS lui transmet. Utilisez le panneau avant de nShield Connect de Thales HSM pour effectuer la procédure suivante.

Spécifier l’adresse IP d’un ordinateur distant sur le HSM de Thales

  1. Accédez à Configuration système > Options du fichier de configuration > Autoriser la transmission automatique.
  2. Sélectionnez ON et spécifiez l’adresse IP de l’ordinateur (RFS) à partir duquel accepter la configuration.

Configurez ADC pour utiliser le HSM de Thales

Exemples de valeurs utilisées dans cette documentation :

Adresse NSIP=10.217.2.43

Thales HSM Adresse IP =10.217.2.112

Adresse IP RFS = 10.217.2.6

Ajouter l’adresse NSIP sur le HSM

Généralement, vous utilisez le panneau avant de nShield Connect pour ajouter des clients au HSM. Pour plus d’informations, consultez le Guide de démarrage rapide de nShield Connect.

Vous pouvez également utiliser le RFS pour ajouter ADC en tant que client au HSM. Pour ce faire, vous devez ajouter l’adresse NSIP dans la configuration HSM sur le RFS, puis pousser la configuration vers le HSM. Avant de pouvoir le faire, vous devez connaître le numéro de série électronique (ESN) du HSM.

Pour obtenir le numéro ESN de votre HSM, exécutez la commande suivante sur le RFS :

root@ns# /opt/nfast/bin/anonkneti <Thales HSM IP address>

Exemple :

root@ns# /opt/nfast/bin/anonkneti 10.217.2.112
BD17-C807-58D9 5e30a698f7bab3b2068ca90a9488dc4e6c78d822

Le numéro ESN est BD17-C807-58D9.

Une fois que vous avez le numéro ESN, utilisez un éditeur, tel que vi, pour modifier le fichier de configuration HSM sur le RFS.

vi /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

Dans la section hs_clients, ajoutez les entrées suivantes :

# Amount of data in bytes to encrypt with a session key before session key# renegotiation, or 0 for unlimitied. (default=1024\*1024\*8b=8Mb).
#  datalimit=INT
addr=10.217.2.43
clientperm=unpriv
keyhash=0000000000000000000000000000000000000000
esn=
timelimit=86400
datalimit=8388608
-----

Remarque : Incluez un ou plusieurs traits d’union comme délimiteurs pour ajouter plusieurs entrées dans la même section.

Pour pousser la configuration vers le HSM, exécutez la commande suivante sur le RFS :

/opt/nfast/bin/cfg-pushnethsm --address=<Thales HSM IP address> --force /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

Exemple :

/opt/nfast/bin/cfg-pushnethsm --address=10.217.2.112 --force
                /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

Configurer l’autorisation d’accès pour ADC sur le RFS

Pour configurer l’autorisation d’accès pour ADC sur le RFS, exécutez la commande suivante sur le RFS :

/opt/nfast/bin/rfs-setup --force -g --write-noauth <NetScaler IP address>

Exemple :

[root@localhost bin]# /opt/nfast/bin/rfs-setup --force -g --write-noauth 10.217.2.43
Adding read-only remote_file_system entries
Ensuring the directory /opt/nfast/kmdata/local exists
Adding new writable remote_file_system entries
Ensuring the directory /opt/nfast/kmdata/local/sync-store exists
Saving the new config file and configuring the hardserver
Done

Vérifiez que ADC peut atteindre à la fois le RFS et le Thales HSM à l’aide du port 9004.

Configurer le démarrage automatique du serveur dur au démarrage

Créez un fichier, puis redémarrez l’appliance. Maintenant, chaque fois que vous redémarrez l’appliance et si ce fichier est trouvé, le serveur matériel démarre automatiquement.

À l’invite du shell, tapez :

touch /var/opt/nfast/bin/thales_hsm_is_enrolled

À l’invite de commandes, tapez :

reboot

Inscrire le HSM sur l’ADC

Changer le répertoire en /var/opt/nfast/bin.

Pour ajouter des détails HSM dans la configuration ADC, exécutez la commande suivante sur ADC :

nethsmenroll --force <Thales_nShield_Connect_ip_address> $(anonkneti <Thales_nShield_Connect_ip_address>)

Exemple :

root@ns# ./nethsmenroll --force 10.217.2.112 $(anonkneti 10.217.2.112)
OK configuring hardserver's nethsm imports

Cette étape ajoute les entrées suivantes après la ligne # ntoken_esn=ESN dans la section nethsm_imports du fichier /var/opt/nfast/kmdata/config/config.

…
local_module=0
remote_ip=10.217.2.112
remote_port=9004
remote_esn=BD17-C807-58D9
keyhash=5e30a698f7bab3b2068ca90a9488dc4e6c78d822
timelimit=86400
datalimit=8388608
privileged=0
privileged_use_high_port=0
ntoken_esn=

Changez le répertoire en /var/opt/nfast/bin et exécutez la commande suivante sur ADC :

touch "thales_hsm_is_enrolled"

Remarque : Pour supprimer un HSM inscrit sur ADC, tapez :

./nethsmenroll –-remove <NETHSM-IP>

Ajouter des détails RFS sur l’ADC

Pour ajouter des détails RFS, modifiez le répertoire en /var/opt/nfast/bin/, puis exécutez la commande suivante :

./rfs-sync --no-authenticate --setup <rfs_ip_address>

Exemple :

./rfs-sync --no-authenticate --setup 10.217.2.6
No current RFS synchronization configuration.
Configuration successfully written; new config details:
Using RFS at 10.217.2.6:9004: not authenticating.

Cette étape ajoute les entrées suivantes après la ligne # local_esn=ESN dans la section rfs_sync_client du fichier /var/opt/nfast/kmdata/config/config.

……
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=

Remarque : Pour supprimer un RFS inscrit sur l’ADC, tapez :

./rfs_sync –remove

Synchroniser ADC avec le RFS

Pour synchroniser tous les fichiers, changez le répertoire en /var/opt/nfast/bin, puis exécutez la commande suivante sur ADC :

./rfs-sync –-update

Cette commande récupère tous les fichiers World, les fichiers modules et les fichiers clés du répertoire /opt/nfast/kmdata/local du RFS et les place dans le répertoire /var/opt/nfast/kmdata/local de ADC. Citrix vous recommande de copier manuellement les fichiers World, les fichiers Module_xxxx_xxxx, où XXXX_XXXX correspond à l’ESN du HSM inscrit, et uniquement les fichiers de clé et de certificat RSA requis.

Vérifiez que le Thales HSM est correctement inscrit sur ADC

Après avoir synchronisé ADC avec le RFS, procédez comme suit :

  • Vérifiez que le serveur dur local est opérationnel et en cours d’exécution. (serveur NCipher en cours d’exécution).
  • Obtenez l’état des HSM configurés et vérifiez que les valeurs du champ n_modules (nombre de modules) et des champs d’informations km ne sont pas nulles.
  • Vérifiez que le HSM est correctement inscrit et qu’il est utilisable (état 0 x 2 utilisable) par ADC.
  • Charger les tests en utilisant sigtest s’exécutent correctement.

Changez le répertoire en /var/opt/nfast/bin et, à l’invite du shell, exécutez les commandes suivantes :

root@ns# ./chkserv root@ns# ./nfkminfo root@ns# ./sigtest

Voir Annexepour un exemple.

Créer une clé HSM RSA

Seules les clés RSA sont prises en charge en tant que clés HSM.

Remarque : ignorez cette étape si des clés sont déjà présentes dans le dossier /opt/nfast/kmdata/local du RFS.

Créez une clé RSA, un certificat auto-signé et une demande de signature de certificat (CSR). Envoyez le CSR à une autorité de certification pour obtenir un certificat de serveur.

Les fichiers suivants sont créés dans l’exemple ci-dessous :

  • Incorporer la clé RSA : key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
  • Certificat auto-signé : example_selfcert
  • Demande de signature de certificat : example_req

Remarque : La commande generatekey est prise en charge dans le strict FIPS 140-2 Niveau 3 Security World. Un jeu de cartes d’administrateur (ACS) ou un jeu de cartes d’opérateur (OCS) est nécessaire pour contrôler de nombreuses opérations, y compris la création de clés et d’OCS. Lorsque vous exécutez la commande generatekey, vous êtes invité à insérer une carte ACS ou OCS. Pour plus d’informations sur FIPS 140-2 Niveau 3 Security World, consultez le Guide de l’utilisateur de nShield Connect.

L’exemple suivant utilise Level-2 Security World. Dans l’exemple, les commandes sont en caractères gras.

Exemple :

[root@localhost bin]# ./generatekey embed
size: Key size? (bits, minimum 1024) [1024] > 2048
OPTIONAL: pubexp: Public exponent for RSA key (hex)? []
>
embedsavefile: Filename to write key to? []
> example
plainname: Key name? [] > example
x509country: Country code? [] > US
x509province: State or province? [] > CA
x509locality: City or locality? [] > Santa Clara
x509org: Organisation? [] > Citrix
x509orgunit: Organisation unit? [] > NS
x509dnscommon: Domain name? [] > www.citrix.com
x509email: Email address? [] > example@citrix.com
nvram: Blob in NVRAM (needs ACS)? (yes/no) [no] >
digest: Digest to sign cert req with? (md5, sha1, sha256, sha384, sha512)
  [default sha1] > sha512
key generation parameters:
 operation      Operation to perform               generate
 application    Application                        embed
 verify         Verify security of key             yes
 type           Key type                           RSA
 size           Key size                           2048
 pubexp         Public exponent for RSA key (hex)
 embedsavefile  Filename to write key to           example
 plainname      Key name                           example
 x509country    Country code                       US
 x509province   State or province                  CA
 x509locality   City or locality                   Santa Clara
 x509org        Organisation                       Citrix
 x509orgunit    Organisation unit                  NS
 x509dnscommon  Domain name                        www.citrix.com
 x509email      Email address                      example@citrix.com
 nvram          Blob in NVRAM (needs ACS)          no
 digest         Digest to sign cert req with       sha512
Key successfully generated.
Path to key: /opt/nfast/kmdata/local/key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
You have new mail in /var/spool/mail/root

Résultats :

Vous avez créé un CSR (example_req), un certificat auto-signé (example_selfcert) et un fichier de jeton de clé d’application au format intégré (/opt/nfast/kmdata/local/key_embed_2ed5428aae1e159bdbd63f25292c7113ec2c78)

Étant donné que ADC ne prend en charge que les clés au format simple, vous devez convertir la clé intégrée en une clé simple.

Pour convertir la clé intégrée en une clé simple, exécutez la commande suivante sur le RFS :

[root@localhost bin]# ./generatekey -r simple
from-application: Source application? (embed, simple) [embed] > embed
from-ident: Source key identifier? (c6410ca00af7e394157518cb53b2db46ff18ce29,
                                    2ed5428aaeae1e159bdbd63f25292c7113ec2c78)
  [default c6410ca00af7e394157518cb53b2db46ff18ce29]
> 2ed5428aaeae1e159bdbd63f25292c7113ec2c78
ident: Key identifier? [] > examplersa2048key
plainname: Key name? [] > examplersa2048key
key generation parameters:
 operation         Operation to perform    retarget
 application       Application             simple
 verify            Verify security of key  yes
 from-application  Source application      embed
 from-ident        Source key identifier   2ed5428aaeae1e159bdbd63f25292c7113ec2c78
 ident             Key identifier          examplersa2048key
 plainname         Key name                examplersa2048key
Key successfully retargetted.
Path to key: /opt/nfast/kmdata/local/key_simple_examplersa2048key

Important :

Lorsque vous y êtes invité, entrez 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 comme clé d’intégration.

Résultats :

Une clé avec le préfixe key_simple (par exemple key_simple_examplersa2048key) est créée.

Remarque : examplersa2048key est l’identificateur de clé (ident) et est appelé nom de clé HSM sur ADC. Un identificateur de clé est unique. Tous les fichiers simples ont le préfixe key_simple.

Configurer les entités sur ADC

Avant que ADC puisse traiter le trafic, vous devez effectuer les opérations suivantes :

  1. Activer les fonctionnalités.
  2. Ajoutez une adresse IP de sous-réseau (SNIP).
  3. Ajoutez la clé HSM à ADC.
  4. Ajoutez une paire de clés de certificat à l’aide de la clé HSM.
  5. Ajoutez un serveur virtuel.
  6. Ajoutez un objet serveur.
  7. Ajoutez un service.
  8. Liez le service au serveur virtuel.
  9. Liez la paire de clés de certificat au serveur virtuel.
  10. Vérifiez la configuration.

Activer les fonctionnalités sur ADC

Les licences doivent être présentes sur ADC avant de pouvoir activer une fonctionnalité.

Activer une fonctionnalité à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez les commandes suivantes :

enable feature lb
enable feature ssl

Activer une fonctionnalité à l’aide de l’interface graphique

Accédez à Système > Paramètres et, dans le groupe Modes et fonctionnalités, sélectionnez Configurer les fonctionnalités de base, puis sélectionnez Déchargement SSL.

Ajouter une adresse IP de sous-réseau

Pour plus d’informations sur les adresses IP de sous-réseau, reportez-vous à la section Configuration des adresses IP de sous-réseau.

Ajoutez une adresse SNIP et vérifiez la configuration à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez les commandes suivantes :

add ns ip <IPAddress> <netmask> -type SNIP
show ns ip

Exemple :

add ns ip 192.168.17.253 255.255.248.0 -type SNIP
Done
show ns ip
        Ipaddress        Traffic Domain  Type             Mode     Arp      Icmp     Vserver  State
        ---------        --------------  ----             ----     ---      ----     -------  ------
1)      192.168.17.251   0               NetScaler IP     Active   Enabled  Enabled  NA       Enabled
2)      192.168.17.252   0               VIP              Active   Enabled  Enabled  Enabled  Enabled
3)      192.168.17.253   0               SNIP              Active   Enabled  Enabled  NA       Enabled
 Done

Ajouter une adresse SNIP et vérifier la configuration à l’aide de l’interface graphique

Accédez à Système > Réseau > IP, ajoutez une adresse IP et sélectionnez le Type IP comme IP de sous-réseau.

Copiez la clé HSM et le certificat dans ADC

Utilisez un utilitaire de transfert de fichiers sécurisé pour copier en toute sécurité la clé (key_simple_examplersa2048key) dans le dossier /var/opt/nfast/kmdata/local, et le certificat (example_selfcert) dans le dossier /nsconfig/ssl de ADC.

Ajouter la clé sur ADC

Toutes les clés ont un préfixe clé-simple. Lorsque vous ajoutez la clé à ADC, utilisez l’ident comme nom de clé HSM. Par exemple, si la clé que vous avez ajoutée est KEY_Simple_XXXX, le nom de la clé HSM est XXXX.

Important :

  • Le nom de la clé HSM doit être le même que l’ident que vous avez spécifié lorsque vous avez converti une clé intégrée dans un format de clé simple.
  • Les clés doivent être présentes dans le répertoire /var/opt/nfast/kmdata/local/ de ADC.

Ajouter une clé HSM à l’aide de l’interface de ligne de commande

À l’invite du shell, exécutez la commande suivante :

add ssl hsmKey <hsmKeyName> -key <string>

Exemple :

add ssl hsmKey examplersa2048key –key key_simple_examplersa2048key
Done

Ajouter une clé HSM à l’aide de l’interface graphique

Accédez à Gestion du trafic > SSL > HSM et ajoutez une clé HSM.

Ajouter une paire de clés de certificat sur ADC

Pour plus d’informations sur les paires de clés de certificat, reportez-vous à la section Ajouter ou mettre à jour une paire de clés de certificat.

Ajouter une paire de clés de certificat à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

add ssl certKey <certkeyName> -cert <string> -hsmKey <string>

Exemple :

add ssl certKey key22 -cert example_selfcert -hsmKey examplersa2048key
Done

Ajouter une paire de clés de certificat à l’aide de l’interface graphique

Accédez à Gestion du trafic > SSL > Certificats et ajoutez une paire de clés de certificat.

Ajouter un serveur virtuel

Pour plus d’informations sur un serveur virtuel, reportez-vous à la section Configuration du serveur virtuel SSL.

Configurer un serveur virtuel SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

add lb vserver <name> <serviceType> <IPAddress> <port>

Exemple :

add lb vserver v1 SSL 192.168.17.252 443

Configurer un serveur virtuel SSL à l’aide de l’interface graphique

Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, créez un serveur virtuel et spécifiez le protocole SSL.

Ajouter un objet serveur

Avant de pouvoir ajouter un objet serveur sur ADC, assurez-vous que vous avez créé un serveur principal. L’exemple suivant utilise le module Python HTTP Server intégré sur un système Linux.

Exemple :

%python –m SimpleHTTPServer 80

Ajouter un objet serveur à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

add server <name> <IPAddress>

Exemple :

add server s1 192.168.17.246

Ajouter un objet serveur à l’aide de l’interface graphique

Accédez à Gestion du trafic > Équilibrage de charge > Serveurs, puis ajoutez un serveur.

Ajouter un service

Pour plus d’informations, reportez-vous à la section Configuration des services.

Configurer un service à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

add service <name> <serverName> <serviceType> <port>

Exemple :

add service sr1 s1 HTTP 80

Configurer un service à l’aide de l’interface graphique

Accédez à Gestion du trafic > Équilibrage de charge > Services et créez un service.

Liez le service au serveur virtuel

Pour plus d’informations, reportez-vous à la section Lier des services au serveur virtuel SSL.

Lier un service à un serveur virtuel à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

bind lb vserver <name> <serviceName>

Exemple :

bind lb vserver v1 sr1

Lier un service à un serveur virtuel à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Ouvrez un serveur virtuel, puis cliquez dans le volet Services pour lier un service au serveur virtuel.

Liez la paire de clés de certificat au serveur virtuel sur ADC

Pour plus d’informations, reportez-vous à la section Lier la paire de clés de certificat au serveur virtuel SSL.

Liez une paire de clés de certificat à un serveur virtuel à l’aide de l’interface de ligne de commande

À l’invite de commandes, exécutez la commande suivante :

bind ssl vserver <vServerName> -certkeyName <string>

Exemple :

bind ssl vserver v1 -certkeyName key22
Warning: Current certificate replaces the previous binding

Liez une paire de clés de certificat à un serveur virtuel à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Ouvrez un serveur virtuel SSL et, dans Paramètres avancés, cliquez sur Certificat SSL.
  3. Liez un certificat de serveur au serveur virtuel.

Vérifier la configuration

Pour afficher la configuration à l’aide de l’interface de ligne de commande :

À l’invite de commandes, exécutez les commandes suivantes :

show lb vserver <name>
show ssl vserver <vServerName>

Exemple :

show lb vserver v1
        v1 (192.168.17.252:443) - SSL   Type: ADDRESS
        State: UP
        Last state change was at Wed Oct 29 03:11:11 2014
        Time since last state change: 0 days, 00:01:25.220
        Effective State: UP
        Client Idle Timeout: 180 sec
        Down state flush: ENABLED
        Disable Primary Vserver On Down : DISABLED
        Appflow logging: ENABLED
        No. of Bound Services :  1 (Total)       1 (Active)
        Configured Method: LEASTCONNECTION
        Current Method: Round Robin, Reason: Bound service's state changed to UP
        Mode: IP
        Persistence: NONE
        Vserver IP and Port insertion: OFF
        Push: DISABLED  Push VServer:
        Push Multi Clients: NO
        Push Label Rule: none
        L2Conn: OFF
        Skip Persistency: None
        IcmpResponse: PASSIVE
        RHIstate: PASSIVE
        New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0
        Mac mode Retain Vlan: DISABLED
        DBS_LB: DISABLED
        Process Local: DISABLED
        Traffic Domain: 0

1) sr1 (192.168.17.246: 80) - HTTP State: UP    Weight: 1
Done
sh ssl vserver v1
        Advanced SSL configuration for VServer v1:
        DH: DISABLED
        Ephemeral RSA: ENABLED          Refresh Count: 0
        Session Reuse: ENABLED          Timeout: 120 seconds
        Cipher Redirect: DISABLED
        SSLv2 Redirect: DISABLED
        ClearText Port: 0
        Client Auth: DISABLED
        SSL Redirect: DISABLED
        Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        SSLv2: DISABLED  SSLv3: DISABLED  TLSv1.0: ENABLED  TLSv1.1: DISABLED  TLSv1.2: DISABLED
        Push Encryption Trigger: Always
        Send Close-Notify: YES

        ECC Curve: P_256, P_384, P_224, P_521

1)      CertKey Name: key22       Server Certificate

1)      Cipher Name: DEFAULT
        Description: Predefined Cipher Alias
 Done

Pour afficher la configuration à l’aide de l’interface graphique :

Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis double-cliquez sur un serveur virtuel SSL pour l’ouvrir et afficher la configuration.