Ingress Controller de Citrix ADC

Asegurar el ingreso

El tema cubre las diversas formas de proteger su entrada mediante Citrix ADC y las anotaciones proporcionadas por el Citrix Ingress Controller.

En la siguiente tabla se enumeran los casos de uso de TLS con anotaciones de ejemplo que puede usar para proteger su Ingress mediante el Citrix ADC de entrada y el Citrix Ingress Controller:

Casos de uso Anotaciones de ejemplo
Habilitar el protocolo TLSv1.3 ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'
Seguridad de transporte estricta HTTP (HSTS) ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}
Grapado OCSP ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'
Establecer la autenticación del cliente como obligatoria ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'
Extensión de tíquet de sesión de TLS ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'
Reutilización de sesiones SSL ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'
Grupos de cifrado ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "secure", "cipherpriority" :"21"}]}'
Redirección de cifrado ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'

Habilitar el protocolo TLSv1.3

Con las anotaciones para los perfiles SSL, puede habilitar la compatibilidad con el protocolo TLS 1.3 en el perfil SSL y establecer los dheKeyExchangeWithPsk parámetros tls13SessionTicketsPerAuthContext y en el perfil SSL para el Citrix ADC de entrada.

El parámetro tls13SessionTicketsPerAuthContext le permite establecer el número de tickets que Citrix ADC de entrada emite cada vez que se negocia TLS 1.3, se habilita la reanudación basada en tíquets y se completa un apretón de manos o se completa la autenticación de cliente posterior al enlace. El valor se puede aumentar para permitir que los clientes abran varias conexiones paralelas con un tíquet nuevo para cada conexión. El valor mínimo que puede establecer es 1 y el máximo es 10. De forma predeterminada, el valor se establece en 1.

Nota:

No se envían tíquets si la reanudación está desactivada.

El dheKeyExchangeWithPsk parámetro le permite especificar si el intercambio de Ingress Citrix ADC requires a DHE claves se producirá cuando se acepte una clave previamente compartida durante un apretón de manos de reanudación de sesión de TLS 1.3. Un intercambio de claves DHE garantiza el secreto directo, incluso si las claves de los tíquets se ven comprometidas, a expensas de los recursos adicionales requeridos para llevar a cabo el intercambio de claves DHE.

A continuación, se muestra una anotación de ejemplo para que el perfil HTTP habilite la compatibilidad con el protocolo TLS 1.3 en el perfil SSL tls13SessionTicketsPerAuthContext y establezca dheKeyExchangeWithPsk los parámetros y en el perfil SSL.

ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'

Seguridad de transporte estricta HTTP (HSTS)

Los dispositivos Citrix ADC de entrada admiten la seguridad de transporte estricta HTTP (HSTS) como una opción incorporada en los perfiles SSL. Con HSTS, un servidor puede imponer el uso de una conexión HTTPS para todas las comunicaciones con un cliente. Es decir, solo se puede acceder al sitio mediante HTTPS. Se requiere soporte para HSTS para la certificación A+ de SSL Labs. Para obtener más información, consulte Soporte de Citrix ADC para HSTS.

Con las anotaciones para los perfiles SSL, puede habilitar HSTS en un perfil front-end SSL en el Citrix ADC de entrada. A continuación se muestra un ejemplo de anotación de entrada:

ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}'

Donde:

  • HSTS - El estado de la seguridad de transporte estricta de HTTP (HSTS) en el perfil SSL. Con HSTS, un servidor puede imponer el uso de una conexión HTTPS para todas las comunicaciones con un cliente. Los valores admitidos son HABILITADO e INHABILITADO. De forma predeterminada, el valor se establece en INHABILITADO.
  • maxage - Le permite establecer el tiempo máximo, en segundos, en el encabezado de seguridad de transporte estricta (STS) durante el cual el cliente debe enviar solo solicitudes HTTPS al servidor. El tiempo mínimo que puede establecer es 0 y el máximo es 4294967294. De forma predeterminada, el valor es 0.
  • IncludeSubdomains - Le permite habilitar el HSTS para los subdominios. Si se establece en Yes, un cliente solo debe enviar solicitudes HTTPS para subdominios. De forma predeterminada, el valor se establece en No.

Grapado OCSP

El Citrix ADC de entrada puede enviar el estado de revocación de un certificado de servidor a un cliente, en el momento del protocolo de enlace SSL, después de validar el estado del certificado desde un respondedor OCSP. El estado de revocación de un certificado de servidor se “grapa” en la respuesta que el dispositivo envía al cliente como parte del protocolo de enlace SSL. Para obtener más información sobre la implementación de informes de CRL y OCSP en Citrix ADC, consulte Grapado de OCSP.

Para utilizar la función de grapado de OCSP, puede habilitarla mediante un perfil SSL con la siguiente anotación de entrada:

ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'

Nota:

Para usar el grapado OCSP, debe agregar un respondedor OCSP en el dispositivo Citrix ADC.

Establecer la autenticación del cliente en obligatoria

Con las anotaciones para los perfiles SSL, puede habilitar la autenticación del cliente, el dispositivo Citrix ADC de entrada solicita el certificado de cliente durante el protocolo de enlace SSL.

El dispositivo comprueba el certificado presentado por el cliente en busca de restricciones normales, como la firma del emisor y la fecha de caducidad.

A continuación se muestran algunos casos de uso:

  • Requerir un certificado de cliente válido antes de mostrar el contenido del sitio web. Esto restringe el contenido del sitio web solo a máquinas y usuarios autorizados.

  • Solicite un certificado de cliente válido. Si no se proporciona un certificado de cliente válido, solicite al usuario la autenticación multifactor.

La autenticación del cliente se puede configurar como obligatoria u opcional.

  • Cuando se establece como obligatorio, si el cliente SSL no transmite un certificado de cliente válido, se interrumpe la conexión. Válido significa: firmado/emitido por una entidad de certificación específica, y no caducado ni revocado.
  • Cuando es opcional, Citrix ADC solicita el certificado del cliente, pero continúa con la transacción SSL incluso si el cliente presenta un certificado no válido o ningún certificado. Esta configuración es útil para casos de autenticación (por ejemplo, requerir autenticación de dos factores si no se proporciona un certificado de cliente válido)

Con las anotaciones para los perfiles SSL, puede habilitar la autenticación de clientes en un servidor virtual SSL y establecer la autenticación de clientes como Mandatory.

A continuación se muestra un ejemplo de anotación del perfil SSL:

ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'

Nota:

Asegúrese de vincular el certificado de cliente al servidor virtual SSL en el Citrix ADC de entrada.

Extensión de tíquet de sesión de TLS

Un protocolo de enlace SSL es una operación que hace un uso intensivo de la CPU. Si la reutilización de sesiones está habilitada, la operación de intercambio de claves de servidor o cliente se omite para los clientes existentes. Se les permite reanudar sus sesiones. Esto mejora el tiempo de respuesta y aumenta la cantidad de transacciones SSL por segundo que puede admitir un servidor. Sin embargo, el servidor debe almacenar detalles de cada estado de sesión, lo que consume memoria y es difícil de compartir entre varios servidores si las solicitudes se equilibran en carga entre los servidores.

Los dispositivos Citrix ADC de entrada admiten la extensión TLS SessionTicket. El uso de esta extensión indica que los detalles de la sesión se almacenan en el cliente en lugar de en el servidor. El cliente debe indicar que admite este mecanismo mediante la inclusión de la extensión TLS del tíquet de sesión en el mensaje Hello del cliente. Para los clientes nuevos, esta extensión está vacía. El servidor envía un nuevo tíquet de sesión en el mensaje de enlace NewSessionTicket. El tíquet de sesión se cifra mediante un par de claves que solo conoce el servidor. Si un servidor no puede emitir un nuevo tíquet actualmente, completa un desafío mutuo normal.

Con las anotaciones para los perfiles SSL, puede habilitar el uso de tíquets de sesión, según RFC 5077. Además, puede establecer el tiempo de vida de los tíquets de sesión emitidos por el Citrix ADC de entrada, mediante el parámetro sessionticketlifetime.

A continuación se muestra la anotación de entrada de ejemplo:

ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'

Reutilización de sesiones SSL

Puede reutilizar una sesión SSL existente en un dispositivo Citrix ADC. Mientras que el proceso de renegociación de SSL consiste en un protocolo de enlace SSL completo, la reutilización de SSL consiste en un apretón de manos parcial porque el cliente envía el ID de SSL con la solicitud.

Con las anotaciones para los perfiles SSL, puede habilitar la reutilización de la sesión y también establecer el valor de tiempo de espera de la sesión (en segundos) en el Citrix ADC de entrada.

A continuación se muestra la anotación de entrada de ejemplo:

ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'

De forma predeterminada, la opción de reutilización de sesiones está habilitada en el dispositivo y el valor de tiempo de espera para la misma se establece en 120 segundos. Por lo tanto, si un cliente envía una solicitud a otra conexión TCP y al identificador de sesión SSL anterior en un plazo de 120 segundos, el dispositivo realiza un protocolo de enlace parcial.

Uso de grupos de cifrado

El Citrix ADC de entrada se entrega con grupos de cifrado integrados. Para usar cifrados que no forman parte del grupo de cifrado DEFAULT, debe vincularlos explícitamente a un perfil SSL. También puede crear un grupo de cifrado definido por el usuario para vincularlo al servidor virtual SSL en Ingress Citrix ADC.

Los grupos de cifrado integrados se pueden usar en Citrix ADC de nivel 1 y 2, y el grupo de cifrado definido por el usuario solo se puede usar en Citrix ADC de nivel 1.

Para usar un grupo de cifrado definido por el usuario, asegúrese de que Citrix ADC tenga un grupo de cifrado definido por el usuario. Lleve a cabo lo siguiente:

  1. Cree un grupo de cifrado definido por el usuario. Por ejemplo, testgroup.
  2. Enlaza todos los cifrados requeridos al grupo de cifrado definido por el usuario.
  3. Anote el nombre del grupo de cifrado definido por el usuario.

Para obtener instrucciones detalladas, consulte Configurar un grupo de cifrado definido porel usuario.

Con las anotaciones para los perfiles SSL, puede vincular los grupos de cifrado integrados, un grupo de cifrado definido por el usuario o ambos al perfil SSL.

A continuación se muestra la sintaxis de la anotación de entrada que puede usar para vincular los grupos de cifrado integrados y un grupo de cifrado definido por el usuario a un perfil SSL:

ingress.citrix.com/frontend-sslprofile:'{"snienable":"enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "testgroup", "cipherpriority" :"2"}]}'

La anotación de entrada vincula el grupo de cifrado integrado y el grupo de cifrado definido por el usuario al perfil SSL. SECUREtestgroup

Usar la redirección de cifrado

Durante el protocolo de enlace SSL, el cliente SSL (normalmente un explorador web) anuncia el conjunto de cifrados que admite, en el orden configurado de preferencia de cifrado. De esa lista, el servidor SSL selecciona un cifrado que coincida con su propia lista de cifrados configurados.

Si los cifrados anunciados por el cliente no coinciden con los cifrados configurados en el servidor SSL, se produce un error en el protocolo de enlace SSL. El error se anuncia mediante un mensaje de error críptico que se muestra en el explorador. Estos mensajes rara vez mencionan la causa exacta del error.

Con la redirección de cifrado, puede configurar un servidor virtual SSL para que entregue mensajes de error precisos y significativos cuando falle un protocolo de enlace SSL. Cuando se produce un error en el protocolo de enlace SSL, el dispositivo Citrix ADC redirige al usuario a una URL configurada previamente o, si no se configura ninguna URL, muestra una página de error generada internamente.

A continuación se muestra la sintaxis de la anotación de entrada que puede usar para vincular grupos de cifrado y habilitar la redirección de cifrado para redirigir la solicitud a redirecturl.

 ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'
Asegurar el ingreso