ADC

Configuraciones HTTP

Importante:

A partir de la versión 13.0 compilación 71.x de NetScaler, un dispositivo NetScaler puede gestionar solicitudes HTTP de gran tamaño de encabezado para acomodar las solicitudes de la aplicación L7. El tamaño del encabezado se puede configurar hasta 120 KB.

Las configuraciones HTTP para un dispositivo NetScaler se pueden especificar en una entidad llamada perfil HTTP, que es una colección de configuraciones HTTP. El perfil HTTP se puede asociar a servicios o servidores virtuales que deseen usar estas configuraciones HTTP.

Se puede configurar un perfil HTTP predeterminado para establecer las configuraciones HTTP que se aplican de forma predeterminada, de forma global a todos los servicios y servidores virtuales.

Nota:

Cuando un parámetro HTTP tiene valores diferentes para el servicio, el servidor virtual y de forma global, el valor de la entidad más específica (el servicio) recibe la mayor prioridad.

El dispositivo NetScaler también proporciona otros enfoques para configurar HTTP. Sigue leyendo para obtener más información.

NetScaler admite un protocolo WebSocket que permite a los exploradores web y otros clientes crear una conexión TCP bidireccional y dúplex completo a los servidores. La implementación de WebSocket de NetScaler cumple con la norma RFC 6455.

Nota:

Un dispositivo NetScaler admite la configuración de direcciones IP de origen de usuario (USIP) para los protocolos HTTP/1.1 y HTTP/2.

Configuración de parámetros HTTP globales

El dispositivo NetScaler le permite especificar valores para los parámetros HTTP que se aplican a todos los servicios NetScaler y servidores virtuales. Esto se puede hacer mediante:

  • Perfil HTTP predeterminado
  • Comando HTTP global

Perfil HTTP predeterminado

Se utiliza un perfil HTTP, denominado nshttp_default_profile, para especificar las configuraciones HTTP que se utilizan si no se proporciona ninguna configuración HTTP a nivel de servicio o servidor virtual.

Notas:

  • No todos los parámetros HTTP se pueden configurar a través del perfil HTTP predeterminado. Algunas configuraciones se realizan mediante el comando HTTP global (consulte la siguiente sección).

  • El perfil predeterminado no tiene que estar vinculado explícitamente a un servicio o servidor virtual.

Para configurar el perfil HTTP predeterminado

  • Mediante la interfaz de línea de comando, en la solicitud de comando escriba:

    set ns httpProfile nshttp_default_profile …

  • En la GUI, vaya a Sistema > Perfiles, haga clic en Perfiles HTTP y actualice nshttp_default_profile.

Comando HTTP global

Otro enfoque que puede utilizar para configurar los parámetros HTTP globales es el comando HTTP global. Además de algunos parámetros únicos, este comando duplica algunos parámetros que se pueden establecer mediante un perfil HTTP. Cualquier actualización realizada en estos parámetros duplicados se refleja en el parámetro correspondiente en el perfil HTTP predeterminado.

Por ejemplo, si el parámetro maxReusePool se actualiza con este enfoque, el valor se refleja en el parámetro maxReusePool del perfil HTTP predeterminado (nshttp_default_profile).

Nota:

Le recomendamos que utilice este enfoque solo para los parámetros HTTP que no estén disponibles en el perfil HTTP predeterminado.

Para configurar el comando HTTP global

  • Mediante la interfaz de línea de comando, en la solicitud de comando escriba:

    set ns httpParam …

  • En la GUI, vaya a Sistema > Configuración, haga clic en Cambiar parámetros HTTP y actualice los parámetros HTTP requeridos.

Para configurar un esquema de codificación ignorado para la solicitud de conexión

Para habilitar HTTP/2 y establecer los parámetros HTTP/2 para ignorar el esquema de codificación en la solicitud de conexión, en el símbolo del sistema, escriba:

set ns httpParam [-ignoreConnectCodingScheme ( ENABLED | DISABLED )]

Ejemplo:

set ns httpParam -ignoreConnectCodingScheme ENABLED

Para enlazar el perfil HTTP a un servidor virtual mediante la línea de comandos de NetScaler

Configurar el perfil HTTP para eliminar solicitudes no válidas TRACE o TRACK

Puede habilitar el parámetro markTraceReqInval para marcar las solicitudes TRACK y TRACK como no válidas. Cuando habilita esta opción junto con la opción dropInvalidReqs en la dirección IP virtual, puede restablecer un cliente que envía solicitudes TRACE o TRACK a un dispositivo NetScaler.

Para configurar el perfil HTTP mediante la CLI

En la línea de comandos, escriba:

set ns httpProfile <profile name> [-markTraceReqInval ENABLED | DISABLED ]

Ejemplo:

set ns httpProfile profile1 -markTraceReqInval ENABLED

Configurar el perfil HTTP para un grupo de servicios

En la línea de comandos, escriba:

add serviceGroup <serviceGroupName>@ <serviceType> [-cacheType <cacheType>] [-td <positive_integer>] [-maxClient <positive_integer>] [-maxReq <positive_integer>] [-cacheable ( YES | NO )] [-cip ( ENABLED | DISABLED ) [<cipHeader>]] [-usip ( YES | NO )] [-pathMonitor ( YES | NO )] [-pathMonitorIndv ( YES | NO )] [-useproxyport ( YES | NO )] [-healthMonitor ( YES | NO )] [-sp ( ON | OFF )] [-rtspSessionidRemap ( ON | OFF )] [-cltTimeout <secs>] [-svrTimeout <secs>] [-CKA ( YES | NO )] [-TCPB ( YES | NO )] [-CMP ( YES | NO )] [-maxBandwidth
<positive_integer>] [-monThreshold <positive_integer>] [-state ENABLED DISABLED )][-downStateFlush ( ENABLED | DISABLED )] [-tcpProfileName <string>] [-httpProfileName <string>] [-comment <string>] [-appflowLog ( ENABLED | DISABLED )] [-netProfile <string>] [-autoScale <autoScale> -memberPort <port> [-autoDisablegraceful ( YES | NO )] [-autoDisabledelay <secs>] ] [-monConnectionClose ( RESET | FIN )]

<!--NeedCopy-->

Ejemplo:

add serviceGroup Service-Group-1 HTTP -maxClient 0 -maxReq 0 -cip ENABLED -usip NO -useproxyport YES -cltTimeout 200 -svrTimeout 300 -CKA NO -TCPB NO -CMP NO -httpProfileName profile1

Configurar el perfil HTTP mediante la GUI de NetScaler

Para marcar solicitudes no válidas de TRACE o TRACK, complete el siguiente procedimiento.

  1. Inicie sesión en el dispositivo NetScaler y vaya a Configuración > Sistema > Perfiles.
  2. En la ficha Perfiles HTTP, haga clic en Agregar.
  3. En la página Crear perfil HTTP, seleccione la opción Marcar solicitudes TRACE como no válidas.
  4. Haga clic en Crear.

Configuración de parámetros HTTP específicos del servicio o del servidor virtual

Con los perfiles HTTP, puede especificar los parámetros HTTP para los servicios y los servidores virtuales. Debe definir un perfil HTTP (o usar un perfil HTTP integrado) y asociar el perfil con el servicio y el servidor virtual apropiados.

Nota:

También puede modificar los parámetros HTTP de los perfiles predeterminados según sus requisitos.

Para especificar configuraciones HTTP a nivel de servicio o servidor virtual mediante la interfaz de línea de comandos

En el símbolo del sistema, realice lo siguiente:

  1. Configure el perfil HTTP.

    set ns httpProfile <profile-name>...

  2. Enlaza el perfil HTTP al servicio o al servidor virtual.

    Para vincular el perfil HTTP al servicio:

set service <name> .....

Ejemplo:

> set service service1 -httpProfileName profile1
<!--NeedCopy-->

Para vincular el perfil HTTP al servidor virtual:

set lb vserver <name> .....

Ejemplo:

> set lb vserver lbvserver1 -httpProfileName profile1
<!--NeedCopy-->

Para especificar configuraciones HTTP a nivel de servicio o servidor virtual mediante la interfaz gráfica de usuario

En la GUI, realice lo siguiente:

  1. Configure el perfil HTTP.

    Vaya a Sistema > Perfiles > Perfiles HTTPy cree el perfil HTTP.

  2. Enlaza el perfil HTTP al servicio o al servidor virtual.

    Vaya a Administración del tráfico > Equilibrio de carga > Servicios/Servidores virtualesy cree el perfil HTTP, que debe estar enlazado al servicio/servidor virtual.

Perfiles HTTP incorporados

Para facilitar la configuración, NetScaler proporciona algunos perfiles HTTP integrados. Revise los perfiles enumerados y utilícelos tal cual o modifíquelos para cumplir con sus requisitos. Puede vincular estos perfiles a los servicios o servidores virtuales requeridos.

Perfil incorporado Descripción
nshttp_default_profile Representa la configuración HTTP global predeterminada del dispositivo.
nshttp_default_strict_validation Configuración para implementaciones que requieren una validación estricta de las solicitudes y respuestas HTTP.

Configuraciones HTTP de ejemplo

Ejemplos de interfaz de línea de comandos de ejemplo para configurar lo siguiente:

  • Estadísticas de banda HTTP
  • Conexiones WebSocket

Estadísticas de banda HTTP

Especifique el tamaño de banda para las solicitudes y respuestas HTTP.

> set protocol httpBand reqBandSize 300 respBandSize 2048
Done
> show protocol httpband -type REQUEST
<!--NeedCopy-->

Conexiones WebSocket

Habilite WebSocket en el perfil HTTP requerido.

> set ns httpProfile http_profile1 -webSocket ENABLED
Done
> set lb vserver lbvserver1 -httpProfileName profile1
Done
<!--NeedCopy-->

Configure el dispositivo NetScaler para eliminar o pasar el encabezado de actualización al servidor de fondo

El parámetro passProtocolUpgrade del perfil HTTP evita los ataques a los servidores de fondo. Según el estado de este parámetro, el encabezado de actualización se pasa a la solicitud enviada al servidor de fondo o se elimina antes de enviar la solicitud.

  • Si el parámetro passProtocolUpgrade está habilitado, el encabezado de actualización se pasa al servidor de fondo. El servidor acepta la solicitud de actualización y la notifica en su respuesta.
  • Si el parámetro está inhabilitado, el encabezado de actualización se elimina y la solicitud restante se envía al servidor de fondo.

El parámetro passProtocolUpgrade se agrega a los siguientes perfiles:

  • nshttp_default_profile: Habilitado de forma predeterminada
  • nshttp_default_strict_validation: Inhabilitado de forma predeterminada
  • nshttp_default_internal_apps: Inhabilitado de forma predeterminada
  • nshttp_default_http_quic_profile: Habilitado de forma predeterminada

Le recomendamos que defina el parámetro passProtocolUpgrade como inhabilitado de forma predeterminada.

Establezca el parámetro passProtocolUpgrade mediante la CLI

En el símbolo del sistema, escriba lo siguiente:

set ns httpProfile <name> [-passProtocolUpgrade ( ENABLED | DISABLED )]

Ejemplo:

set ns httpProfile profile1 -passProtocolUpgrade ENABLED

Establezca el parámetro passProtocolUpgrade mediante la interfaz gráfica de usuario

  1. Vaya a Sistema > Perfiles > Perfiles HTTP.
  2. Cree o modifique un perfil HTTP.
  3. Seleccione Pass Protocol Upgrade.

Configurar el perfil HTTP para validar los encabezados del host

A partir de la versión 14.1-21.x de NetScaler, NetScaler admite la validación de los encabezados de host en las solicitudes HTTP entrantes para evitar ataques o inyecciones de encabezados de host.

Cuando la validación del encabezado del host está habilitada, se realizan las siguientes comprobaciones:

  • La longitud del encabezado del host, es decir, la dirección IP o la parte del nombre DNS del encabezado del host, no supera los 255 caracteres.
  • El número de puerto, si se especifica, no tiene más de 5 caracteres porque el número máximo de puerto es 65535.

Si el encabezado del host no cumple las condiciones definidas, estas solicitudes HTTP se descartan.

De forma predeterminada, la validación del encabezado del host está deshabilitada en los perfiles predeterminados y habilitada en los perfiles HTTP seguros o estrictos.

Validar los encabezados de host HTTP mediante la CLI de NetScaler

En el símbolo del sistema, escriba lo siguiente:

set ns httpprofile <name> -hostHeaderValidation (ENABLED | DISABLED)
<!--NeedCopy-->

Ejemplo:

set ns httpProfile http_profile1 -hostHeaderValidation ENABLED
<!--NeedCopy-->

Validar los encabezados de host HTTP mediante la GUI de NetScaler

  1. Vaya a Sistema > Perfiles > Perfiles HTTP.
  2. Cree o modifique un perfil HTTP.
  3. En la página Configurar perfil HTTP, seleccione Validación del encabezado del host.