ADC

ICAP pour l’inspection de contenu à distance

Le protocole ICAP (Internet Content Adaptation Protocol) est un protocole léger simple permettant d’exécuter le service de transformation à valeur ajoutée sur les messages HTTP. Dans un scénario typique, un client ICAP transmet les requêtes et les réponses HTTP à un ou plusieurs serveurs ICAP pour traitement. Les serveurs ICAP effectuent la transformation du contenu des demandes et renvoient les réponses avec les mesures appropriées à prendre pour la demande ou la réponse.

ICAP sur une appliance NetScaler

Dans une configuration NetScaler, l’appliance agit comme un client ICAP interagissant avec des serveurs ICAP tiers (tels que la protection contre les programmes malveillants et la protection contre la perte de données (DLP)). Lorsque l’appliance reçoit un trafic Web entrant, elle intercepte le trafic et utilise une stratégie d’inspection du contenu pour évaluer si la requête HTTP nécessite un traitement ICAP. Si c’est le cas, l’appliance déchiffre et envoie le message sous forme de texte brut aux serveurs ICAP. Les serveurs ICAP exécutent le service de transformation de contenu sur le message de demande et renvoient une réponse à l’appliance. Les messages adaptés peuvent être une requête HTTP ou une réponse HTTP. Si l’appliance interagit avec plusieurs serveurs ICAP, elle effectue l’équilibrage de charge des serveurs ICAP. Ce scénario se produit lorsqu’un seul serveur ICAP n’est pas suffisant pour gérer la totalité du trafic. Une fois que les serveurs ICAP ont renvoyé un message modifié, l’appliance transmet le message modifié au serveur d’origine principal.

L’appliance NetScaler fournit également un service ICAP sécurisé si le trafic entrant est de type HTTPS. L’appliance utilise un service TCP basé sur SSL pour établir une connexion sécurisée entre l’appliance et les serveurs ICAP.

Fonctionnement de la modification de requête ICAP (REQMOD)

En mode modification de la demande (REQMOD), l’appliance NetScaler transmet la requête HTTP reçue du client au serveur ICAP. Le serveur ICAP effectue ensuite l’une des opérations suivantes :

  1. Renvoie une version modifiée de la demande et l’appliance envoie à son tour la demande modifiée au serveur d’origine principal ou achemine la demande modifiée vers un autre serveur ICAP.
  2. Répond par un message indiquant qu’aucune adaptation n’est requise.
  3. Renvoie une erreur et l’appliance renvoie le message d’erreur à l’utilisateur.

Fonctionnement de la modification de réponse ICAP (RESPMOD)

En mode modification de la réponse (RESPMOD), l’appliance NetScaler envoie une réponse HTTP au serveur ICAP (la réponse envoyée par l’appliance est généralement la réponse envoyée par le serveur d’origine). Le serveur ICAP effectue ensuite l’une des opérations suivantes :

  1. Envoie une version modifiée de la réponse et l’appliance envoie à son tour la réponse à l’utilisateur ou achemine la réponse vers un autre serveur ICAP.
  2. Répond par un message indiquant qu’aucune adaptation n’est requise.
  3. Renvoie une erreur et l’appliance envoie à son tour le message d’erreur à l’utilisateur.

Licence ICAP

La fonctionnalité ICAP fonctionne sur une configuration NetScaler autonome ou à haute disponibilité avec l’édition de licence NetScaler Premium ou Advanced.

Configurer ICAP pour le service de transformation de contenu

Pour utiliser ICAP pour le service de transformation de contenu, vous devez d’abord activer les fonctionnalités d’inspection du contenu et d’équilibrage de charge. Une fois les fonctionnalités activées, vous pouvez effectuer les tâches suivantes :

Pour activer l’inspection du contenu

Si vous souhaitez que l’appliance NetScaler agisse en tant que client ICAP, vous devez d’abord activer les fonctionnalités d’inspection du contenu et d’équilibrage de charge.

À l’invite de commande, tapez :

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

Ajouter un profil ICAP

Les configurations ICAP d’une appliance NetScaler sont spécifiées dans une entité appelée profil ICAP. Le profil possède un ensemble de paramètres ICAP. Les paramètres comprennent des paramètres permettant de générer dynamiquement une demande ICAP, de recevoir la réponse ICAP et de consigner les données d’inspection de contenu.

Pour générer dynamiquement une requête ICAP au serveur ICAP, un nouveau paramètre, « InsertHttpRequest », est ajouté au profil ICAP. Si ce paramètre est configuré, l’appliance prend la valeur configurée en tant qu’expression de stratégie, évalue l’expression et inclut le résultat sous forme de requête ou de réponse HTTP encapsulée, puis l’envoie au serveur ICAP. En outre, un nouveau paramètre « InsertiCapHeaders » est configurable pour évaluer et inclure dynamiquement les en-têtes ICAP.

Lorsque l’appliance envoie une demande ICAP sans recevoir de réponse au serveur ICAP, la connexion cesse de répondre. Cela se produit jusqu’à ce que le serveur ICAP envoie une réponse ou qu’une session soit libérée. Ce comportement peut être géré en configurant l’option de délai d’expiration de réponse ICAP. Vous pouvez définir un paramètre de délai d’expiration de la demande pour l’action en cas de réponse ICAP retardée. Si l’appliance NetScaler ne reçoit pas de réponse dans le délai de demande configuré, l’action de délai de demande est exécutée.

ReqTimeoutAction : les valeurs possibles sont BYPASS, RESET, DROP. BYPASS : Cela ignore la réponse du serveur ICAP distant et envoie la requête/réponse au client/serveur. RESET (par défaut) : Réinitialisez la connexion client en la fermant. DROP : supprime la demande sans envoyer de réponse à l’utilisateur

Pour évaluer une réponse ICAP, une nouvelle expression de stratégie ICAP.RES est utilisée dans l’expression de retour de légende d’inspection de contenu. Cette expression évalue la réponse ICAP de la même manière que l’expression HTTP.RES dans HTTP_CALLOUT.

Par exemple, lorsqu’une appliance NetScaler reçoit une requête HTTP pour un service hébergé derrière l’adresse IP virtuelle NetScaler, l’appliance peut être amenée à vérifier l’authentification du client auprès d’un serveur externe et à prendre une mesure.

À l’invite de commande, tapez :

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>]

Exemple :

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"}

Consigner l’action d’inspection du contenu ICAP

Pour générer dynamiquement des enregistrements de flux de journaux d’inspection de contenu ou des journaux SYSLOG, vous pouvez utiliser l’expression de stratégie basée sur ICAP.RES sur la réponse ICAP. Ce paramètre est configurable dans le profil ICAP pour configurer l’expression de stratégie afin de générer les enregistrements de journaux dynamiques.

À l’invite de commande, tapez :

add audit messageaction icap_log_expr INFORMATIONAL icap.res.full_header

set icapProfile reqmode-profile -logAction messageaction

Ajouter un service ICAP en tant que service TCP ou SSL_TCP

Après avoir activé la fonction d’inspection de contenu, vous devez ajouter un service ICAP pour les serveurs ICAP qui feront partie de la configuration de l’équilibrage de charge. Le service que vous ajoutez fournit la connexion ICAP entre l’appliance NetScaler et les serveurs virtuels d’équilibrage de charge.

Remarque : En tant qu’administrateur, vous pouvez ajouter un service ICAP et configurer directement l’adresse IP du serveur ICAP dans l’action Inspection du contenu.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

add service icapsv1 10.10.10.10 SSL_TCP 1345

add service icapsv2 10.10.10.11 SSL_TCP 1345

Ajouter un serveur virtuel d’équilibrage de charge basé sur TCP ou SSL_TCP

Après avoir créé un service ICAP, vous devez créer un serveur virtuel pour accepter le trafic ICAP et équilibrer la charge des serveurs ICAP.

Remarque :

Vous pouvez également utiliser un service TCP basé sur SSL sur un canal sécurisé. Vous utilisez un service SSL_TCP et vous vous liez à l’action Inspection du contenu.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Liez le service ICAP au serveur virtuel d’équilibrage de charge

Après avoir créé un service ICAP et un serveur virtuel, vous devez lier le service ICAP au serveur virtuel.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Ajouter une action d’inspection de contenu

Après avoir activé la fonction d’inspection du contenu, vous devez ajouter une action ICAP pour gérer les informations de demande ICAP. Le profil et les services ICAP, ou le serveur virtuel d’équilibrage de charge qui sont créés, sont liés à l’action ICAP. Si le serveur ICAP est en panne, vous pouvez configurer le paramètre ifserverdown pour que l’appliance exécute l’une des actions suivantes.

CONTINUER : Si l’utilisateur souhaite contourner l’inspection du contenu lorsque le serveur distant est en panne, vous pouvez choisir l’action « CONTINUER », par défaut. RESET (par défaut) : Cette action répond au client en fermant la connexion avec RST. DROP : Cette action supprime silencieusement les paquets sans envoyer de réponse à l’utilisateur.

À l’invite de commandes, tapez ce qui suit :

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

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

Remarque :

Si vous pouvez configurer le service ICAP au lieu d’un serveur virtuel d’équilibrage de charge, vous pouvez mentionner le nom du service dans l’option \<-serverip>. Lors de l’ajout de l’action Inspection de contenu, le service TCP est automatiquement créé pour l’adresse IP donnée avec le port 1344 et il est utilisé pour la communication ICAP.

Exemple :

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

Ajouter des politiques d’inspection de contenu

Après avoir créé une action Inspection de contenu, vous devez créer des stratégies d’inspection de contenu pour évaluer les demandes de traitement ICAP et de journalisation d’audit. La stratégie est basée sur une règle qui consiste en une ou plusieurs expressions. La règle est associée à l’action d’inspection du contenu qui est associée si une demande correspond à la règle.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Liez les stratégies d’inspection de contenu au serveur virtuel de commutation de contenu ou d’équilibrage de charge

Pour appliquer une stratégie ICAP, vous devez la lier globalement ou la lier à un serveur virtuel de commutation de contenu ou d’équilibrage de charge, qui fait office d’interface avec l’application. Lorsque vous liez la stratégie, vous devez lui attribuer une priorité. La priorité détermine l’ordre dans lequel les stratégies que vous définissez sont évaluées.

Remarque :

Le serveur virtuel d’application doit être de type HTTP/SSL/CS-PROXY.

Pour plus d’informations sur la configuration d’une configuration d’équilibrage de charge pour le transfert du trafic vers le serveur d’origine principal après la transformation du contenu, reportez-vous à la section Équilibrage de charge.

Configurer le service ICAP sécurisé

Pour établir une connexion sécurisée entre l’appliance NetScaler et les serveurs Web ICAP, l’appliance utilise un service TCP basé sur SSL ou un serveur virtuel d’équilibrage de charge lié à une action ICAP.

Pour établir une connexion ICAP sécurisée, effectuez les tâches suivantes :

  1. Ajoutez un service TCP basé sur SSL.
  2. Liez le service TCP basé sur SSL au serveur virtuel d’équilibrage de charge de type TCP ou SSL_TCP.
  3. Liez le service TCP basé sur SSL ou le serveur virtuel d’équilibrage de charge à l’action Content Inspection.

Ajouter un service TCP basé sur SSL au serveur virtuel d’équilibrage de charge

Pour établir une connexion sécurisée entre l’appliance NetScaler et les serveurs Web ICAP, l’appliance utilise un service TCP basé sur SSL ou un serveur virtuel d’équilibrage de charge lié à une action ICAP.

Pour établir une connexion ICAP sécurisée, effectuez les tâches suivantes :

  1. Ajoutez un service TCP basé sur SSL.
  2. Liez le service TCP basé sur SSL au serveur virtuel d’équilibrage de charge de type TCP ou SSL_TCP.

Liez le service TCP basé sur SSL ou le serveur virtuel d’équilibrage de charge à l’action Content Inspection

Ajouter un service TCP basé sur SSL au serveur virtuel d’équilibrage de charge

Après avoir activé la fonction d’inspection de contenu, vous devez ajouter un service ICAP sécurisé qui fera partie de la configuration de l’équilibrage de charge. Le service que vous ajoutez fournit une connexion ICAP sécurisée entre l’appliance NetScaler et les serveurs virtuels d’équilibrage de charge.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Liez le service TCP basé sur SSL au serveur virtuel d’équilibrage de charge SSL_TCP ou TCP

Après avoir créé un service ICAP sécurisé, vous devez lier le service au serveur virtuel d’équilibrage de charge. Elle est requise si vous utilisez un serveur virtuel d’équilibrage de charge pour équilibrer la charge des serveurs ICAP.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Liez le service TCP basé sur SSL ou le serveur virtuel d’équilibrage de charge à l’action Content Inspection

Vous ajoutez une action ICAP pour gérer les informations de la demande ICAP et vous liez également le service TCP basé sur SSL à l’action.

À l’invite de commandes, tapez ce qui suit :

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

Exemple :

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

Configurer le protocole ICAP à l’aide de l’interface graphique

  1. Accédez à Équilibrage de charge > Services et cliquez sur Ajouter.
  2. Sur la page Services, entrez les détails du service.
  3. Accédez à Équilibrage de charge > Serveurs virtuels. Ajoutez un serveur virtuel d’équilibrage de charge de type HTTP/SSL. Vous pouvez également sélectionner un serveur virtuel et cliquer sur Modifier.
  4. Après avoir saisi les informations de base du serveur, cliquez sur Continuer.
  5. Dans la section Paramètres avancés, cliquez sur Stratégies.
  6. Accédez à la section Stratégies et cliquez sur l’icône en forme de crayon pour configurer la stratégie d’inspection du contenu.
  7. Sur la page Choisir une stratégie, sélectionnez Inspection du contenu. Cliquez sur Continuer.
  8. Dans la section Liaison de stratégie, cliquez sur+ pour ajouter une stratégie d’inspection du contenu.
  9. Dans la page Créer une stratégie ICAP, entrez un nom pour la stratégie.
  10. Dans le champ Action, cliquez sur le signe « + » pour ajouter une action ICAP.
  11. Dans la page Créer une action ICAP, entrez le nom de l’action.
  12. Entrez le nom de l’action.
  13. Dans le champ Nom du serveur, entrez le nom du service TCP déjà créé.
  14. Dans le champ Profil ICAP, cliquez sur le signe « + » pour ajouter un profil ICAP.
  15. Dans la page Créer un profil ICAP, entrez un nom de profil, un URI et MODE.
  16. Cliquez sur Create.
  17. Dans la page Créer une action ICAP, cliquez sur Créer.
  18. Dans la page Créer une stratégie ICAP, entrez « true » dans l’ éditeur d’expression, puis cliquez sur Créer.
  19. Cliquez sur Bind.
  20. Lorsque vous êtes invité à activer la fonction d’inspection du contenu, cliquez sur Oui.
  21. Cliquez sur Terminé.

Pour plus d’informations sur la configuration de l’interface graphique NetScaler pour l’équilibrage de charge et le transfert du trafic vers le serveur d’origine principal après la transformation du contenu, consultez la section Équilibrage de charge.

Configurer le protocole ICAP sécurisé à l’aide de l’interface graphique

  1. Accédez à Équilibrage de charge > Services et cliquez sur Ajouter.
  2. Sur la page Services, entrez les détails du service.
  3. Accédez à Équilibrage de charge > Serveurs virtuels. Ajoutez un serveur virtuel de type HTTP/SSL. Vous pouvez également sélectionner un serveur virtuel et cliquer sur Modifier.
  4. Après avoir saisi les informations de base du serveur, cliquez sur Continuer.
  5. Dans la section Paramètres avancés, cliquez sur Stratégies.
  6. Accédez à la section Stratégies et cliquez sur l’icône en forme de crayon pour configurer la stratégie d’inspection du contenu.
  7. Sur la page Choisir une stratégie, sélectionnez Inspection du contenu. Cliquez sur Continuer.
  8. Dans la section Liaison de stratégie, cliquez sur+ pour ajouter une stratégie d’inspection du contenu.
  9. Dans la page Créer une stratégie ICAP, entrez un nom pour la stratégie.
  10. Dans le champ Action, cliquez sur le signe « + » pour ajouter une action ICAP.
  11. Dans la page Créer une action ICAP, entrez le nom de l’action.
  12. Entrez le nom de l’action.
  13. Dans le champ Nom du serveur, entrez le nom du service TCP_SSL déjà créé.
  14. Dans le champ Profil ICAP, cliquez sur le signe « + » pour ajouter un profil ICAP.
  15. Dans la page Créer un profil ICAP, entrez un nom de profil, un URI et MODE.
  16. Cliquez sur Create.
  17. Dans la page Créer une action ICAP, cliquez sur Créer.
  18. Dans la page Créer une stratégie ICAP, entrez « true » dans l’ éditeur d’expression, puis cliquez sur Créer.
  19. Cliquez sur Bind.
  20. Lorsque vous êtes invité à activer la fonction d’inspection du contenu, cliquez sur Oui.
  21. Cliquez sur Terminé.

Prise en charge des journaux d’audit pour l’inspection à

Si le contenu d’une demande entrante ou d’une réponse sortante est inspecté, l’appliance NetScaler enregistre les détails ICAP. L’appliance stocke les détails sous forme de message de journal dans le fichier ns.log.

Chaque message de journal contient généralement les informations suivantes :

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

Restriction : le mode streaming d’App Firewall n’est pas pris en charge avec la fonction d’inspection de contenu.

Exemple de message de journal de requêtes inspecté par le contenu :

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

Exemple de message du journal des réponses inspecté par le contenu :

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-->
ICAP pour l’inspection de contenu à distance