ADC

Configurar la integración de ADC-nCipher

El siguiente diagrama de flujo muestra las tareas que debe realizar para utilizar nCipher HSM con un NetScaler:

Diagrama de flujo

Como se muestra en el diagrama de flujo anterior, realice las siguientes tareas:

  1. Habilite la configuración remota push en el HSM.
  2. Configure el ADC para usar el HSM nCipher.
    • Agregue la dirección NSIP en el HSM.
    • Configure el permiso de acceso para el ADC en la RFS.
    • Configure el inicio automático del Hardserver en el momento del arranque.
    • Inscriba el HSM en el ADC.
    • Agregue detalles de RFS en el ADC.
    • Sincronice el ADC con el RFS.
    • Compruebe que nCipher HSM esté inscrito correctamente en el ADC.
  3. (Opcional) Cree una clave HSM RSA.
  4. Configure las entidades en NetScaler.
    • Añada la clave HSM.
    • Añada un par de claves de certificado mediante la clave HSM.
    • Agregue un servidor virtual.
    • Añada un objeto de servidor.
    • Añada un servicio.
    • Enlace el servicio al servidor virtual.
    • Enlace el par de claves de certificado al servidor virtual.
    • Verifique la configuración.

Configurar el HSM nCipher

Especifique la dirección IP del RFS en el HSM nCipher para que acepte la configuración que el RFS le envía. Utilice el panel frontal nShield Connect del HSM nCipher para realizar el siguiente procedimiento.

Especifique la dirección IP de un equipo remoto en el HSM nCipher

  1. Vaya a Configuración del sistema > Opciones del archivo de configuración > Permitir la inserción automática.
  2. Seleccione ON y especifique la dirección IP del equipo (RFS) desde la que se aceptará la configuración.

Habilitar la inserción de la configuración remota en el HSM

Especifique la dirección IP del RFS en el HSM nCipher para que acepte la configuración que el RFS le envía. Utilice el panel frontal nShield Connect del HSM nCipher para realizar el siguiente procedimiento.

Especifique la dirección IP de un equipo remoto en el HSM nCipher

  1. Vaya a Configuración del sistema > Opciones de archivo de configuración > Permitir inserción automática.
  2. Seleccione ON y especifique la dirección IP del equipo (RFS) desde la que se aceptará la configuración.

Configure el ADC para usar el HSM nCipher

Valores de ejemplo utilizados en esta documentación:

Dirección NSIP = 10.217.2.43

Dirección IP de nCipher HSM=10.217.2.112

Dirección IP RFS=10.217.2.6

Agregue la dirección NSIP en el HSM

Normalmente se utiliza el panel frontal de nShield Connect para añadir clientes al HSM. Para obtener más información, consulte la Guía de inicio rápido de nShield Connect.

Como alternativa, utilice el RFS para agregar el ADC como cliente al HSM. Para agregar el ADC, debe agregar la dirección NSIP en la configuración del HSM en el RFS y, a continuación, enviar la configuración al HSM. Antes de poder modificar la configuración, debe conocer el número de serie electrónico (ESN) del HSM.

Para obtener el ESN de su HSM, ejecute el siguiente comando en el RFS:

root@ns# /opt/nfast/bin/anonkneti <nCipher HSM IP address>
<!--NeedCopy-->

Ejemplo:

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

El número ESN es BD17-C807-58D9.

Una vez que tenga el número ESN, utilice un editor, como vi, para editar el archivo de configuración del HSM en el RFS.

vi /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config
<!--NeedCopy-->

En la hs_clients sección, añada las siguientes entradas:

# 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
-----
<!--NeedCopy-->

Nota: Incluya uno o más guiones como delimitadores para añadir varias entradas en la misma sección.

Para enviar la configuración al HSM, ejecute el siguiente comando en el RFS:

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

Ejemplo:

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

Configure el permiso de acceso para el ADC en la RFS

Para configurar el permiso de acceso para el ADC en el RFS, ejecute el siguiente comando en el RFS:

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

Ejemplo:

[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
<!--NeedCopy-->

Compruebe que el ADC pueda llegar tanto al RFS como al HSM de nCipher mediante el puerto 9004.

Configurar el hardserver inicio automático del

Cree un archivo y, a continuación, reinicie el dispositivo. Ahora, cada vez que reinicia el dispositivo y, si encuentra este archivo, Hardserver se inicia automáticamente.

En el símbolo del shell, escriba:

touch /var/opt/nfast/bin/thales_hsm_is_enrolled
<!--NeedCopy-->

En la línea de comandos, escriba:

reboot
<!--NeedCopy-->

Inscriba al HSM en el ADC

Cambie el directorio a /var/opt/nfast/bin.

Para agregar detalles del HSM a la configuración del ADC, ejecute el siguiente comando en el ADC:

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

Ejemplo:

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

Este paso agrega las siguientes entradas después de la línea # ntoken_esn=esn en la nethsm_imports sección del archivo /var/opt/nfast/kmdata/config/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=
<!--NeedCopy-->

Cambie el directorio a /var/opt/nfast/bin y ejecute el siguiente comando en el ADC:

touch "thales_hsm_is_enrolled"
<!--NeedCopy-->

Nota: Para eliminar un HSM que esté inscrito en el ADC, escriba:

./nethsmenroll –-remove <NETHSM-IP>
<!--NeedCopy-->

Agregue detalles de RFS en el ADC

Para añadir detalles de RFS, cambie el directorio a /var/opt/nfast/bin/ y, a continuación, ejecute el siguiente comando:

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

Ejemplo:

./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.
<!--NeedCopy-->

Este paso agrega las siguientes entradas después de la línea # local_esn=esn en la rfs_sync_client sección del archivo /var/opt/nfast/kmdata/config/config/config/config.

……
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=
<!--NeedCopy-->

Nota: Para eliminar una RFS que esté inscrita en el ADC, escriba:

./rfs_sync –remove
<!--NeedCopy-->

Sincronice el ADC con el RFS

Para sincronizar todos los archivos, cambie el directorio a /var/opt/nfast/bin y, a continuación, ejecute el siguiente comando en el ADC:

./rfs-sync –-update
<!--NeedCopy-->

Este comando recupera todos los archivos de World, los archivos de módulos y los archivos clave del directorio /opt/nfast/kmdata/local del RFS y los coloca en el directorio /var/opt/nfast/kmdata/local del ADC. Citrix recomienda copiar manualmente los archivos World, los archivos Module_xxxx_xxxx_xxxx, donde XXXX_XXXXXX es el ESN del HSM inscrito y solo los archivos de clave RSA y certificado necesarios.

Verifique que el HSM nCipher esté inscrito correctamente en el ADC

Después de sincronizar el ADC con el RFS, haga lo siguiente:

  • Compruebe que el local Hardserver esté activo y en funcionamiento. (Servidor nCipher en ejecución).
  • Obtenga el estado de los HSM configurados y verifique que los valores para el campo n_modules (número de módulos) y los campos de información km sean distintos de cero.
  • Verifique que el HSM esté inscrito correctamente y que el ADC lo pueda utilizar (estado 0x2 Utilizable).
  • Las pruebas de carga sigtest se ejecutan correctamente.

Cambie el directorio a /var/opt/nfast/bin y, en el símbolo del shell, ejecute los siguientes comandos:

root@ns# ./chkserv root@ns# ./nfkminfo root@ns# ./sigtest
<!--NeedCopy-->

Consulte el apéndice para ver un ejemplo.

Crear una clave RSA HSM

Solo se admiten las claves RSA como claves HSM.

Nota: omita este paso si las claves ya están presentes en la /opt/nfast/kmdata/local carpeta del RFS.

Cree una clave RSA, un certificado autofirmado y una solicitud de firma de certificados (CSR). Envíe la CSR a una autoridad de certificación para obtener un certificado de servidor.

Los siguientes archivos se crean en el siguiente ejemplo:

  • Insertar clave RSA: key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
  • Certificado autofirmado: example_selfcert
  • Solicitud de firma de certificado: example_req

Nota: El generatekey comando se admite estrictamente en el mundo de seguridad FIPS 140-2 de nivel 3. Se necesita un conjunto de tarjetas de administrador (ACS) o un conjunto de tarjetas de operador (OCS) para controlar muchas operaciones, incluida la creación de claves y OCS. Al ejecutar el comando generatekey, se le pedirá que inserte una tarjeta ACS u OCS. Para obtener más información sobre el estricto mundo de seguridad FIPS 140-2 de nivel 3, consulte la Guía del usuario de nShield Connect.

El siguiente ejemplo usa Security World de nivel 2. En el ejemplo, los comandos aparecen en negrita.

Ejemplo:

[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
<!--NeedCopy-->

Resultado:

Ha creado una CSR (example_req), un certificado autofirmado (example_selfcert) y un archivo de token de clave de aplicación en formato embebido (/opt/nfast/kmdata/local/key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78)

Como el ADC solo admite claves en formato simple, debe convertir la clave incrustada en una clave simple.

Para convertir la clave incrustada en una clave simple, ejecute el siguiente comando en el 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
<!--NeedCopy-->

Importante:

Cuando se le pida el identificador de la clave de origen, escriba 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 como clave de inserción.

Resultado:

Se crea una clave con el prefijo key_simple (por ejemplo key_simple_examplersa2048key).

Nota: examplersa2048key es el identificador de clave (ident) y se denomina nombre de clave HSM en el ADC. Un identificador clave es único. Todos los archivos simples tienen el prefijo key_simple.

Configure las entidades en el ADC

Antes de que ADC pueda procesar el tráfico, debe hacer lo siguiente:

  1. Habilite las funciones.
  2. Agregue una dirección IP de subred (SNIP).
  3. Añada la clave HSM al ADC.
  4. Añada un par de claves de certificado mediante la clave HSM.
  5. Agregue un servidor virtual.
  6. Añada un objeto de servidor.
  7. Añada un servicio.
  8. Enlace el servicio al servidor virtual.
  9. Enlace el par de claves de certificado al servidor virtual.
  10. Verifique la configuración.

Activar funciones en el ADC

Las licencias deben estar presentes en el ADC para poder habilitar una función.

Habilitar una función mediante la CLI

En la línea de comandos, ejecute los siguientes comandos:

enable feature lb
enable feature ssl
<!--NeedCopy-->

Habilitar una función mediante la interfaz gráfica

Vaya a Sistema > Configuración y, en el grupo Modos y funciones, seleccione Configurar funciones básicasy, a continuación, seleccione SSL Offloading.

Agregar una dirección IP de subred

Para obtener más información sobre las direcciones IP de subred, consulte Configuración de direcciones IP de subred.

Agregue una dirección SNIP y verifique la configuración mediante la CLI

En la línea de comandos, ejecute los siguientes comandos:

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

Ejemplo:

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
<!--NeedCopy-->

Agregue una dirección SNIP y verifique la configuración mediante la GUI

Vaya a Sistema > Red > IP, añada una dirección IP y seleccione el tipo de IP como IP de subred.

Copie la clave y el certificado del HSM al ADC

Utilice una utilidad de transferencia segura de archivos para copiar de forma segura la clave (key_simple_examplersa2048key) a la /var/opt/nfast/kmdata/local carpeta y el certificado (example_selfcert) a la /nsconfig/ssl carpeta del ADC.

Añada la clave en el ADC

Todas las teclas tienen un prefijo clave simple. Al añadir la clave al ADC, utilice el identificador como nombre de la clave HSM. Por ejemplo, si la clave que ha agregado es Key_Simple_xxxx, el nombre de la clave HSM es XXXX.

Importante:

  • El nombre de la clave HSM debe coincidir con el identificador que especificó al convertir una clave incrustada a un formato de clave simple.
  • Las claves deben estar presentes en el directorio /var/opt/nfast/kmdata/local/ del ADC.

Agregue una clave HSM mediante la CLI

En la línea de comandos de la consola, ejecute el siguiente comando:

add ssl hsmKey <hsmKeyName> -key <string>
<!--NeedCopy-->

Ejemplo:

add ssl hsmKey examplersa2048key –key key_simple_examplersa2048key
Done
<!--NeedCopy-->

Agregue una clave HSM mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > SSL > HSMy añada una clave de HSM.

Agregar un par de claves de certificado en el ADC

Para obtener información sobre los pares de claves de certificado, consulte Agregar o actualizar un par de claves de certificado.

Agregar un par de claves de certificado mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

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

Ejemplo:

add ssl certKey key22 -cert example_selfcert -hsmKey examplersa2048key
Done
<!--NeedCopy-->

Agregue un par de claves de certificado mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > SSL > Certificadosy añada un par de claves de certificado.

Agregar un servidor virtual

Para obtener información sobre un servidor virtual, consulte Configuración del servidor virtual SSL.

Configurar un servidor virtual basado en SSL mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

add lb vserver <name> <serviceType> <IPAddress> <port>
<!--NeedCopy-->

Ejemplo:

add lb vserver v1 SSL 192.168.17.252 443
<!--NeedCopy-->

Configurar un servidor virtual basado en SSL mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales, cree un servidor virtual y especifique el protocolo como SSL.

Agregar un objeto de servidor

Antes de añadir un objeto de servidor en el ADC, asegúrese de haber creado un servidor de fondo. El siguiente ejemplo utiliza el módulo de servidor HTTP Python integrado en un sistema Linux.

Ejemplo:

%python –m SimpleHTTPServer 80
<!--NeedCopy-->

Agregue un objeto de servidor mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

add server <name> <IPAddress>
<!--NeedCopy-->

Ejemplo:

add server s1 192.168.17.246
<!--NeedCopy-->

Agregue un objeto de servidor mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > Equilibrio de carga > Servidoresy añada un servidor.

Añadir un servicio

Para obtener más información, consulte Configuración de servicios.

Configurar un servicio mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

add service <name> <serverName> <serviceType> <port>
<!--NeedCopy-->

Ejemplo:

add service sr1 s1 HTTP 80
<!--NeedCopy-->

Configurar un servicio mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > Equilibrio de carga > Serviciosy cree un servicio.

Vincular el servicio al servidor virtual

Para obtener más información, consulte Vincular servicios al servidor virtual SSL.

Enlazar un servicio a un servidor virtual mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

Ejemplo:

bind lb vserver v1 sr1
<!--NeedCopy-->

Enlazar un servicio a un servidor virtual mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Abra un servidor virtual y haga clic en el panel Servicios para vincular un servicio al servidor virtual.

Enlazar el par de claves de certificado al servidor virtual en el ADC

Para obtener más información, consulte Vincular el par de claves de certificado al servidor virtual SSL.

Enlazar un par de claves de certificado a un servidor virtual mediante la CLI

En el símbolo del sistema, ejecute el siguiente comando:

bind ssl vserver <vServerName> -certkeyName <string>
<!--NeedCopy-->

Ejemplo:

bind ssl vserver v1 -certkeyName key22
Warning: Current certificate replaces the previous binding
<!--NeedCopy-->

Enlazar un par de claves de certificado a un servidor virtual mediante la GUI

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Abra un servidor virtual SSL y, en Configuración avanzada, haga clic en Certificado SSL.
  3. Enlazar un certificado de servidor al servidor virtual.

Verificar la configuración

Para ver la configuración mediante la CLI:

En la línea de comandos, ejecute los siguientes comandos:

show lb vserver <name>
show ssl vserver <vServerName>
<!--NeedCopy-->

Ejemplo:

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
<!--NeedCopy-->
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
<!--NeedCopy-->

Para ver la configuración mediante la GUI:

Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtualesy haga doble clic en un servidor virtual SSL para abrirlo y ver la configuración.

Configurar la integración de ADC-nCipher