ADC

ICAP para inspección remota de contenido

El Protocolo de adaptación de contenido de Internet (ICAP) es un protocolo simple y ligero para ejecutar el servicio de transformación de valor agregado en mensajes HTTP. En un caso típico, un cliente ICAP reenvía las solicitudes y respuestas HTTP a uno o más servidores ICAP para su procesamiento. Los servidores ICAP realizan la transformación del contenido de las solicitudes y devuelven las respuestas con las medidas adecuadas para realizar la solicitud o respuesta.

ICAP en un dispositivo NetScaler

En una configuración de NetScaler, el dispositivo actúa como un cliente ICAP que interopera con servidores ICAP de terceros (como el antimalware y la protección contra la pérdida de datos (DLP)). Cuando el dispositivo recibe un tráfico web entrante, el dispositivo intercepta el tráfico y utiliza una directiva de inspección de contenido para evaluar si la solicitud HTTP necesita un procesamiento ICAP. En caso afirmativo, el dispositivo descifra y envía el mensaje como texto sin formato a los servidores ICAP. Los servidores ICAP ejecutan el servicio de transformación de contenido en el mensaje de solicitud y devuelven una respuesta al dispositivo. Los mensajes adaptados pueden ser una solicitud HTTP o una respuesta HTTP. Si el dispositivo interopera con varios servidores ICAP, el dispositivo realiza el equilibrio de carga de los servidores ICAP. Este caso ocurre cuando un servidor ICAP no es suficiente para gestionar toda la carga de tráfico. Una vez que los servidores ICAP devuelven un mensaje modificado, el dispositivo reenvía el mensaje modificado al servidor de origen back-end.

El dispositivo NetScaler también proporciona un servicio ICAP seguro si el tráfico entrante es de tipo HTTPS. El dispositivo utiliza un servicio TCP basado en SSL para establecer una conexión segura entre el dispositivo y los servidores ICAP.

Cómo funciona la modificación de solicitudes ICAP (REQMOD)

En el modo de modificación de solicitudes (REQMOD), el dispositivo NetScaler reenvía la solicitud HTTP recibida del cliente al servidor ICAP. El servidor ICAP realiza una de las siguientes acciones:

  1. Devuelve una versión modificada de la solicitud y el dispositivo, a su vez, envía la solicitud modificada al servidor de origen back-end o canaliza la solicitud modificada a otro servidor ICAP.
  2. Responde con un mensaje que indica que no se requiere adaptación.
  3. Devuelve un error y el dispositivo, a su vez, devuelve el mensaje de error al usuario.

Cómo funciona la modificación de respuestas ICAP (RESPMOD)

En el modo de modificación de respuestas (RESPMOD), el dispositivo NetScaler envía una respuesta HTTP al servidor ICAP (la respuesta que envía el dispositivo suele ser la respuesta que envía el servidor de origen). El servidor ICAP realiza una de las siguientes acciones:

  1. Envía una versión modificada de la respuesta y el dispositivo, a su vez, envía la respuesta al usuario o canaliza la respuesta a otro servidor ICAP.
  2. Responde con un mensaje que indica que no se requiere adaptación.
  3. Devuelve un error y el dispositivo, a su vez, envía el mensaje de error al usuario.

Licencia ICAP

La función ICAP funciona en una configuración independiente o de alta disponibilidad de NetScaler con la edición de licencia NetScaler Premium o Advanced.

Configurar ICAP para el servicio de transformación de contenido

Para utilizar ICAP para el servicio de transformación de contenido, primero debe habilitar las funciones de inspección de contenido y equilibrio de carga. Una vez que habilite las funciones, podrá completar las siguientes tareas

Para habilitar la inspección de contenido

Si desea que el dispositivo NetScaler actúe como un cliente ICAP, primero debe habilitar las funciones de inspección de contenido y equilibrio de carga.

En la línea de comandos, escriba:

enable ns feature contentInspection LoadBalancing
<!--NeedCopy-->

Agregar perfil ICAP

Las configuraciones de ICAP para un dispositivo NetScaler se especifican en una entidad denominada perfil ICAP. El perfil tiene una colección de configuraciones de ICAP. La configuración incluye parámetros para generar dinámicamente una solicitud ICAP, recibir la respuesta ICAP y registrar los datos de inspección de contenido.

Para generar dinámicamente una solicitud ICAP al servidor ICAP, se agrega un nuevo parámetro, “InsertHttpRequest”, al perfil ICAP. Si se configura este parámetro, el dispositivo toma el valor configurado como expresión de directiva y evalúa la expresión e incluye el resultado como una solicitud o respuesta HTTP encapsulada y, a continuación, lo envía al servidor ICAP. Además, se puede configurar un nuevo parámetro “InserticAPHeaders” para evaluar e incluir dinámicamente los encabezados ICAP.

Cuando el dispositivo envía una solicitud ICAP y no recibe una respuesta al servidor ICAP, la conexión deja de responder. Ocurre hasta que el servidor ICAP envía una respuesta o se libera una sesión. El comportamiento se puede controlar configurando la opción de tiempo de espera de respuesta ICAP. Puede establecer un parámetro de tiempo de espera de solicitud para la acción si hay una respuesta ICAP retrasada. Si el dispositivo NetScaler no recibe una respuesta dentro del tiempo de espera de la solicitud configurado, se ejecuta la acción de tiempo de espera de la solicitud.

ReqTimeoutAction: Los valores posibles son BYPASS, RESET, DROP. BYPASS: Ignora la respuesta del servidor ICAP remoto y envía la solicitud/respuesta al cliente/servidor. RESTABLECER (predeterminado): restablece la conexión del cliente cerrándola. DROP: Elimina la solicitud sin enviar una respuesta al usuario

Para evaluar una respuesta ICAP, se utiliza una nueva expresión de directiva ICAP.RES en la expresión de devolución de llamada de inspección de contenido. Esta expresión evalúa la respuesta ICAP de forma similar a la expresión HTTP.RES en una HTTP_CALLOUT.

Por ejemplo, cuando un dispositivo NetScaler recibe una solicitud HTTP para un servicio alojado detrás de la dirección IP virtual de NetScaler, es posible que el dispositivo tenga que comprobar la autenticación del cliente con un servidor externo y realizar una acción.

En la línea de comandos, escriba:

add ns icapProfile <name> [-preview ( ENABLED | DISABLED )][-previewLength <positive_integer>] -uri <string> [-hostHeader <string>] [-userAgent <string>] -Mode ( REQMOD | RESPMOD )[-queryParams <string>] [-connectionKeepAlive ( ENABLED | DISABLED )][-allow204 ( ENABLED | DISABLED )] [-insertICAPHeaders <string>][-insertHTTPRequest <string>] [-reqTimeout <positive_integer>][-reqTimeoutAction <reqTimeoutAction>] [-logAction <string>]

Ejemplo:

add icapprofile reqmod-profile -mode RESPMOD -uri “/req_scan” -hostHeader “Webroot.reqsca” -useragent “NS_SWG-Proxy”

add ns icapProfile icap_prof1 -uri "/example" -Mode REQMOD -reqtimeout 4 -reqtimeoutaction BYPASS

> add icapProfile reqmode-profile -uri '/example' -mode REQMOD -insertHTTPRequest q{HTTP.REQ.METHOD + " " + HTTP.REQ.URL + " HTTP/1.1\r\n" + "Host: " + HTTP.REQ.HOSTNAME + "\r\n\r\n"}

Registrar acción de inspección de contenido ICAP

Para generar dinámicamente registros de flujo de registro de inspección de contenido o registros SYSLOG, puede usar la expresión de directiva basada en ICAP.RES en la respuesta ICAP. Este parámetro se puede configurar en el perfil ICAP para configurar la expresión de directiva a fin de generar los registros dinámicos.

En la línea de comandos, escriba:

add audit messageaction icap_log_expr INFORMATIONAL icap.res.full_header

set icapProfile reqmode-profile -logAction messageaction

Agregar el servicio ICAP como un servicio TCP o SSL_TCP

Después de habilitar la función de inspección de contenido, debe agregar un servicio ICAP para los servidores ICAP que formará parte de la configuración del equilibrio de carga. El servicio que agregue proporciona la conexión ICAP entre el dispositivo NetScaler y los servidores virtuales de equilibrio de carga.

Nota: Como administrador, puede agregar un servicio ICAP y configurar directamente la dirección IP del servidor ICAP en la acción Inspección de contenido.

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

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

Ejemplo:

add service icapsv1 10.10.10.10 SSL_TCP 1345

add service icapsv2 10.10.10.11 SSL_TCP 1345

Agregar un servidor virtual de equilibrio de carga basado en TCP o SSL_TCP

Después de crear un servicio ICAP, debe crear un servidor virtual para aceptar el tráfico ICAP y equilibrar la carga de los servidores ICAP.

Nota:

También puede usar un servicio TCP basado en SSL a través de un canal seguro. Utiliza un servicio SSL_TCP y se vincula a la acción Inspección de contenido.

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

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

Ejemplo:

add lb vserver vicap TCP 0.0.0.0.0 –persistenceType NONE -cltTimeout 9000

add lb vserver vicap SSL_TCP 0.0.0.0 0 –persistenceType NONE -cltTimeout 9000
<!--NeedCopy-->

Vincular el servicio ICAP al servidor virtual de equilibrio de carga

Después de crear un servicio ICAP y un servidor virtual, debe vincular el servicio ICAP al servidor virtual.

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

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

Ejemplo:

bind lb vserver vicap icapsv1
<!--NeedCopy-->

Agregar acción de inspección de contenido

Después de habilitar la función de inspección de contenido, debe agregar una acción ICAP para gestionar la información de la solicitud ICAP. El perfil y los servicios ICAP o el servidor virtual de equilibrio de carga que se crean están vinculados a la acción ICAP. Si el servidor ICAP está inactivo, puede configurar el parámetro ifserverdown para que el dispositivo realice cualquiera de las siguientes acciones.

CONTINUAR: Si el usuario desea omitir la inspección de contenido cuando el servidor remoto está inactivo, puede elegir la acción “CONTINUAR” de forma predeterminada. RESET (predeterminado): esta acción responde al cliente cerrando la conexión con RST. DROP: Esta acción descarta silenciosamente los paquetes sin enviar una respuesta al usuario.

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

add contentInspection action <name> -type ICAP -serverName <string> -icapProfileName <string>

add ContentInspection action <name> -type ICAP -serverip <ip> - serverport <port> -icapProfileName <string>
<!--NeedCopy-->

Nota:

Si puede configurar el servicio ICAP en lugar de un servidor virtual de equilibrio de carga, puede mencionar el nombre del servicio en la opción \<-serverip>. Al agregar la acción de inspección de contenido, el servicio TCP se crea automáticamente para la dirección IP dada con el puerto 1344 y se utiliza para la comunicación ICAP.

Ejemplo:

add ContentInspection action ci_act_lb -type ICAP -serverName vicap -icapProfileName icap_reqmod

add ContentInspection action ci_act_svc -type ICAP -serverName icapsv1 -icapProfileName icap_reqmod

add ContentInspection action ci_act_svc -type ICAP -serverip 1.1.1.1 - serverport 1344 -icapProfileName icap_reqmod
<!--NeedCopy-->

Agregar directivas de inspección de contenido

Después de crear una acción de inspección de contenido, debe crear directivas de inspección de contenido para evaluar las solicitudes de procesamiento ICAP y registro de auditoría. La directiva se basa en una regla que consiste en una o más expresiones. La regla está asociada a la acción de inspección de contenido que se asocia si una solicitud coincide con la regla.

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

add contentInspection policy <name> -rule <expression> -action <string>
<!--NeedCopy-->

Ejemplo:

add ContentInspection policy ci_pol_basic –rule true –action ci_act_svc

add ContentInspection policy ci_pol_HTTP –rule HTTP.REQ.URL.CONTAINS(“html”) –action ci_act_svc
<!--NeedCopy-->

Vincular las directivas de inspección de contenido al servidor virtual de conmutación de contenido o equilibrio de carga

Para poner en práctica una directiva ICAP, debe vincularla globalmente o vincularla a un servidor virtual de conmutación de contenido o equilibrio de carga, que se encargue de la aplicación. Cuando vincula la directiva, debe asignarle una prioridad. La prioridad determina el orden en que se evalúan las directivas que defina.

Nota:

El servidor virtual de la aplicación debe ser de tipo: HTTP/SSL/CS-PROXY.

Para obtener información sobre cómo configurar una configuración de equilibrio de carga para reenviar el tráfico al servidor de origen back-end tras la transformación del contenido, consulte Equilibrio de carga.

Configurar el servicio ICAP seguro

Para establecer una conexión segura entre el dispositivo NetScaler y los servidores web ICAP, el dispositivo utiliza un servicio TCP basado en SSL o un servidor virtual de equilibrio de carga vinculado a una acción ICAP.

Para establecer una conexión ICAP segura, realice las siguientes tareas:

  1. Agregue el servicio TCP basado en SSL.
  2. Enlace el servicio TCP basado en SSL al servidor virtual de equilibrio de carga de tipo TCP o SSL_TCP.
  3. Enlace el servicio TCP basado en SSL o el servidor virtual de equilibrio de carga a la acción de inspección de contenido.

Agregue el servicio TCP basado en SSL al servidor virtual de equilibrio de carga

Para establecer una conexión segura entre el dispositivo NetScaler y los servidores web ICAP, el dispositivo utiliza un servicio TCP basado en SSL o un servidor virtual de equilibrio de carga vinculado a una acción ICAP.

Para establecer una conexión ICAP segura, realice las siguientes tareas:

  1. Agregue el servicio TCP basado en SSL.
  2. Enlace el servicio TCP basado en SSL al servidor virtual de equilibrio de carga de tipo TCP o SSL_TCP.

Enlace el servicio TCP basado en SSL o el servidor virtual de equilibrio de carga a la acción de inspección de contenido

Agregue el servicio TCP basado en SSL al servidor virtual de equilibrio de carga

Después de habilitar la función de inspección de contenido, debe agregar un servicio ICAP seguro que formará parte de la configuración del equilibrio de carga. El servicio que agrega proporciona una conexión ICAP segura entre el dispositivo NetScaler y los servidores virtuales de equilibrio de carga.

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

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

Ejemplo:

add service icapsv2 10.102.29.200 SSL_TCP 1344 –gslb NONE –maxclient 0 –maxReq 0 –cip DISABLED –usip NO –useproxport YES –sp ON –cltTimeout 9000 –svrTimeout 9000 –CKA NO –TCPB  NO –CMP NO
<!--NeedCopy-->

Enlace el servicio TCP basado en SSL al servidor virtual de equilibrio de carga SSL_TCP o TCP

Después de crear un servicio ICAP seguro, debe vincular el servicio al servidor virtual de equilibrio de carga. Es necesario si utiliza un servidor virtual de equilibrio de carga para equilibrar la carga de los servidores ICAP.

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

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

Ejemplo:

bind lb vserver vicap icapsv2
<!--NeedCopy-->

Vincular el servicio TCP basado en SSL o el servidor virtual de equilibrio de carga a la acción de inspección de contenido

Agregue una acción ICAP para gestionar la información de la solicitud ICAP y también vincular el servicio TCP basado en SSL a la acción.

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

add contentInspection action <name> -type ICAP -serverName <string> -icapProfileName <string>
<!--NeedCopy-->

Ejemplo:

add ContentInspection action ci_act_svc -type ICAP -serverName icapsv2 -icapProfileName icap_reqmod

add ContentInspection action ci_act_svc -type ICAP -serverName vicap -icapProfileName icap_reqmod
<!--NeedCopy-->

Configurar el protocolo ICAP mediante la interfaz gráfica de usuario

  1. Vaya a Equilibrio de carga > Servicios y haga clic en Agregar.
  2. En la página Servicios, introduzca los detalles del servicio.
  3. Vaya a Equilibrio de carga > Servidores virtuales. Agregue un servidor virtual de equilibrio de carga de tipo HTTP/SSL. O bien, puede seleccionar un servidor virtual y hacer clic en Modificar.
  4. Después de introducir los detalles básicos del servidor, haga clic en Continuar.
  5. En la sección Configuración avanzada, haga clic en Directivas.
  6. Vaya a la sección Directivas y haga clic en el icono del lápiz para configurar la directiva de inspección de contenido.
  7. En la página Elegir directiva, seleccione Inspección de contenido. Haga clic en Continuar.
  8. En la sección Vinculación de directivas, haga clic en + para agregar una directiva de inspección de contenido.
  9. En la página Crear directiva ICAP, introduzca un nombre para la directiva.
  10. En el campo Acción, haga clic en el signo “+” para agregar una acción ICAP.
  11. En la página Crear acción ICAP, introduzca un nombre para la acción.
  12. Introduzca un nombre para la acción.
  13. En el campo Nombre del servidor, introduzca el nombre del servicio TCP ya creado.
  14. En el campo Perfil ICAP, haga clic en el signo “+” para agregar un perfil ICAP.
  15. En la página Crear perfil ICAP, introduzca un nombre de perfil, URI y MODE.
  16. Haga clic en Create.
  17. En la página Crear acción ICAP, haga clic en Crear.
  18. En la página Crear directiva ICAP, escriba “true” en el Editor de expresiones y, a continuación, haga clic en Crear.
  19. Haga clic en Bind.
  20. Cuando se le pida que active la función de inspección de contenido, haga clic en .
  21. Haga clic en Listo.

Para obtener información sobre la configuración de la GUI de NetScaler para equilibrar la carga y reenviar el tráfico al servidor de origen back-end después de la transformación del contenido, consulte Equilibrio de carga.

Configure el protocolo ICAP seguro mediante la interfaz gráfica de usuario

  1. Vaya a Equilibrio de carga > Servicios y haga clic en Agregar.
  2. En la página Servicios, introduzca los detalles del servicio.
  3. Vaya a Equilibrio de carga > Servidores virtuales. Agregue un servidor virtual de tipo HTTP/SSL. O bien, puede seleccionar un servidor virtual y hacer clic en Modificar.
  4. Después de introducir los detalles básicos del servidor, haga clic en Continuar.
  5. En la sección Configuración avanzada, haga clic en Directivas.
  6. Vaya a la sección Directivas y haga clic en el icono del lápiz para configurar la directiva de inspección de contenido.
  7. En la página Elegir directiva, seleccione Inspección de contenido. Haga clic en Continuar.
  8. En la sección Vinculación de directivas, haga clic en + para agregar una directiva de inspección de contenido.
  9. En la página Crear directiva ICAP, introduzca un nombre para la directiva.
  10. En el campo Acción, haga clic en el signo “+” para agregar una acción ICAP.
  11. En la página Crear acción ICAP, introduzca un nombre para la acción.
  12. Introduzca un nombre para la acción.
  13. En el campo Nombre del servidor, introduzca el nombre del servicio TCP_SSL ya creado.
  14. En el campo Perfil ICAP, haga clic en el signo “+” para agregar un perfil ICAP.
  15. En la página Crear perfil ICAP, introduzca un nombre de perfil, URI y MODE.
  16. Haga clic en Create.
  17. En la página Crear acción ICAP, haga clic en Crear.
  18. En la página Crear directiva ICAP, escriba “true” en el Editor de expresiones y, a continuación, haga clic en Crear.
  19. Haga clic en Bind.
  20. Cuando se le pida que active la función de inspección de contenido, haga clic en .
  21. Haga clic en Listo.

Soporte de registro de auditoría para la inspección remota de contenido

Si se inspecciona el contenido de una solicitud entrante o una respuesta saliente, el dispositivo NetScaler registra los detalles del ICAP. El dispositivo almacena los detalles como un mensaje de registro en el archivo ns.log.

Por lo general, cada mensaje de registro contiene los siguientes detalles:

<Source IP> <Destination IP> <Domain> <ICAP server IP><ICAP Mode> <Service URI> <ICAP response> <Policy action>
<!--NeedCopy-->

Limitación: el modo de transmisión de App Firewall no se admite con la función de inspección de contenido.

Ejemplo de mensaje de registro de solicitudes de contenido inspeccionado:

Apr 18 14:45:41 <local0.info> 10.106.97.104 04/18/2018:14:45:41 GMT 0-PPE-0 : default CI ICAP_LOG 788 0 : Source 10.102.1.98:39048 - Destination 10.106.97.89:8011 - Domain 10.106.97.89 - Content-Type application/x-www-form-urlencoded - ICAP Server 10.106.97.99:1344 - Mode REQMOD - Service /example - Response 204 - Action FORWARD
<!--NeedCopy-->

Ejemplo de mensaje de registro de respuesta inspeccionado por contenido:

Apr 18 12:34:08 <local0.info> 10.106.97.104 04/18/2018:12:34:08 GMT 0-PPE-0 : default CI ICAP_LOG 71 0 : Source 10.106.97.105:18552 - Destination 10.106.97.99:80 - Domain NA - Content-Type NA - ICAP Server 10.106.97.99:1344 - Mode RESPMOD - Service /example - Response 400 - Action Internal Error
<!--NeedCopy-->