Configuración de la integración de ADC-Entrust
El siguiente diagrama de flujo muestra las tareas que debe realizar para utilizar Entrust HSM con Citrix ADC:
Como se muestra en el diagrama de flujo anterior, realice las siguientes tareas:
- Habilite la inserción de configuración remota, en el HSM.
- Configure el ADC para utilizar el HSM de Entrust.
- Agregue la dirección NSIP en el HSM.
- Configure el permiso de acceso para el ADC en el 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 Entrust HSM se haya inscrito correctamente en el ADC.
- (Opcional) Cree una clave HSM RSA.
- Configure las entidades en Citrix ADC.
- Agregue la clave HSM.
- Agregue un par de claves de certificado mediante la clave HSM.
- Agregue un servidor virtual.
- Agregue un objeto de servidor.
- Agregar un servicio.
- Enlazar el servicio al servidor virtual.
- Enlazar el par de claves de certificado al servidor virtual.
- Verifique la configuración.
Configurar el HSM de Entrust
Especifique la dirección IP del RFS en el HSM de Entrust para que acepte la configuración que el RFS le envía. Utilice el panel frontal nShield Connect del HSM de Entrust para realizar el siguiente procedimiento.
Especificar la dirección IP de un equipo remoto en el HSM de Entrust
- Vaya a Configuración del sistema > Opciones de archivo de configuración > Permitir inserción automática.
- 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 de Entrust para que acepte la configuración que el RFS le envía. Utilice el panel frontal nShield Connect del HSM de Entrust para realizar el siguiente procedimiento.
Especificar la dirección IP de un equipo remoto en el HSM de Entrust
- Vaya a Configuración del sistema > Opciones de archivo de configuración > Permitir inserción automática.
- Seleccione ON y especifique la dirección IP del equipo (RFS) desde la que se aceptará la configuración.
Configurar el ADC para utilizar el HSM de Entrust
Valores de ejemplo utilizados en esta documentación:
Dirección NSIP = 10.217.2.43
Dirección IP HSM de Entrust=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 agregar clientes al HSM. Para obtener más información, consulte la Guía de inicio rápido de nShield Connect.
Alternativamente, 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 de HSM en el RFS y, a continuación, insertar la configuración en el HSM. Antes de poder presionar 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 <Entrust 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.
Después de tener el número ESN, utilice un editor, como vi, para modificar el archivo de configuración HSM en el RFS.
vi /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config
<!--NeedCopy-->
En la hs_clients
sección, agregue 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 agregar varias entradas en la misma sección.
Para insertar la configuración en el HSM, ejecute el siguiente comando en el RFS:
/opt/nfast/bin/cfg-pushnethsm --address=<Entrust 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-->
Configurar el permiso de acceso para el ADC en el 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 puede llegar al HSM RFS y Entrust 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 reinicie el dispositivo y, si se 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 el símbolo del sistema, escriba:
reboot
<!--NeedCopy-->
Inscribir el HSM en el ADC
Cambie el directorio a /var/opt/nfast/bin.
Para agregar detalles de HSM a la configuración de 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.
…
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 quitar un HSM inscrito en el ADC, escriba:
./nethsmenroll –-remove <NETHSM-IP>
<!--NeedCopy-->
Agregar detalles de RFS en el ADC
Para agregar 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.
……
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=
<!--NeedCopy-->
Nota: Para quitar un RFS inscrito en el ADC, escriba:
./rfs_sync –remove
<!--NeedCopy-->
Sincronizar 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 World, los archivos de módulo y los archivos de 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.
Verificar que el HSM de Entrust se haya 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 de Entrust 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.
- Compruebe que el HSM está inscrito correctamente y que el ADC puede utilizar (estado 0x2 User).
- Cargar pruebas mediante
sigtest
ejecutar 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 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). Enviar la CSR a una entidad emisora de certificados para obtener un certificado de servidor.
En el ejemplo siguiente se crean los siguientes archivos:
- Insertar clave RSA: Key_embed_2ed5428aae1e159bdbd63f25292c7113ec2c78
- Certificado autofirmado: Example_selfcert
- Solicitud de firma de certificado: Example_req
Nota: El generatekey
comando es compatible con el estricto mundo de seguridad FIPS 140-2 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 OCSs. Al ejecutar el generatekey
comando, se le pedirá que inserte una tarjeta ACS o OCS. Para obtener más información acerca del estricto mundo de seguridad FIPS 140-2 Level 3, consulte la Guía del usuario de nShield Connect.
En el ejemplo siguiente se utiliza Nivel 2 Security World. En el ejemplo, los comandos están 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 un CSR (example_req), un certificado autofirmado (example_selfcert) y un archivo de token de clave de aplicación en formato embed (/opt/nfast/kmdata/local/key_embed_2ed5428aae1e159bdbd63f25292c7113ec2c78)
Dado que el ADC solo admite claves en formato simple, debe convertir la clave incrustada en una clave simple.
Para convertir la clave embed 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 solicite el identificador de clave de origen, escriba 2ed5428aae1e159bdbd63f25292c7113ec2c78 como clave embed.
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 conoce como el nombre de clave HSM en el ADC. Un identificador de clave es único. Todos los archivos simples tienen el prefijo key_simple.
Configurar las entidades en el ADC
Antes de que ADC pueda procesar el tráfico, debe hacer lo siguiente:
- Habilitar funciones.
- Agregue una dirección IP de subred (SNIP).
- Agregue la clave HSM al ADC.
- Agregue un par de claves de certificado mediante la clave HSM.
- Agregue un servidor virtual.
- Agregue un objeto de servidor.
- Agregar un servicio.
- Enlazar el servicio al servidor virtual.
- Enlazar el par de claves de certificado al servidor virtual.
- Verifique la configuración.
Habilitar 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 el símbolo del sistema, ejecute los siguientes comandos:
enable feature lb
enable feature ssl
<!--NeedCopy-->
Habilitar una función mediante la interfaz gráfica de usuario
Vaya a Sistema > Configuración y, en el grupo Modos y funciones, seleccione Configurar funciones básicas y, a continuación, seleccione Descarga SSL.
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 el símbolo del sistema, 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 interfaz gráfica de usuario
Vaya a Sistema > Red > IP,agregue una dirección IP y seleccione Tipo de IP como IP de subred.
Copie la clave HSM y el certificado en el ADC
Utilice una utilidad de transferencia segura de archivos para copiar de forma segura la clave (key_simple_examplersa2048key) en la /var/opt/nfast/kmdata/local
carpeta y el certificado (example_selfcert) en la /nsconfig/ssl
carpeta del ADC.
Agregar la clave en el ADC
Todas las teclas tienen un prefijo clave simple. Al agregar la clave al ADC, utilice el ident como nombre de clave HSM. Por ejemplo, si la clave que agregó es KEY_Simple_XXXX, el nombre de clave HSM es XXXX.
Importante:
- El nombre de clave HSM debe ser el mismo que el identificador que especificó al convertir una clave incrustada a un formato de clave simple.
- Las claves deben estar presentes en el
/var/opt/nfast/kmdata/local/
directorio del ADC.
Agregar una clave HSM mediante la CLI
En el símbolo del shell, ejecute el siguiente comando:
add ssl hsmKey <hsmKeyName> -key <string>
<!--NeedCopy-->
Ejemplo:
add ssl hsmKey examplersa2048key –key key_simple_examplersa2048key
Done
<!--NeedCopy-->
Agregar una clave HSM mediante la interfaz gráfica de usuario
Vaya a Administración del tráfico > SSL > HSMy agregue una clave 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 Traffic Management > SSL > Certificados y agregue 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 agregar un objeto de servidor en el ADC, asegúrese de haber creado un servidor back-end. En el siguiente ejemplo se utiliza el módulo integrado Python HTTP Server en un sistema Linux.
Ejemplo:
%python –m SimpleHTTPServer 80
<!--NeedCopy-->
Agregar 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-->
Agregar un objeto de servidor mediante la interfaz gráfica de usuario
Vaya a Administración de tráfico > Equilibrio de carga > Servidores y agregue un servidor.
Agregar 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
- Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
- Abra un servidor virtual y haga clic en el panel Servicios para enlazar 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 interfaz gráfica de usuario
- Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
- Abra un servidor virtual SSL y, en Configuración avanzada, haga clic en Certificado SSL.
- Enlazar un certificado de servidor al servidor virtual.
Verificar la configuración
Para ver la configuración mediante la CLI:
En el símbolo del sistema, 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 de tráfico > Equilibrio de carga > Servidores virtuales y haga doble clic en un servidor virtual SSL para abrirlo y ver la configuración.