Skip to main content

Doc Olfeo On-prem

Configurer le proxy HTTP

Le proxy HTTP est utilisé dans les intégrations proxy : proxy explicite et proxy en interception.

Le cas d'usage principal d'Olfeo On premises d'utiliser son proxy pour alimenter le moteur de filtrage et d'analyse de contenus.

Dans cette section, vous retrouverez les informations permettant :

  • De configurer le proxy pour qu'il réceptionne les requêtes de vos utilisateurs

  • De configurer finement le Cache du proxy d'Olfeo On premises

  • De piloter la bande passante avec la QoS

L'activation et la configuration du Déchiffrement TLS est décrite par ici.

Retrouvez ci-dessous tous les aspects de configuration du proxy d'Olfeo on-premise.

La section Ports en écoute vous permet de définir les sockets (adresse IP + port) sur lesquelles l'Olfeo pourra recevoir du trafic, et le comportement des ports associés.

Vous pouvez utiliser plusieurs ports et/ou plusieurs adresses :

  • Pour segmenter les points d'accès par réseau et rendre accessible l'Olfeo à des utilisateurs situés dans des réseaux différents.

  • Pour appliquer des règles d'authentification différentes à des populations distinctes (voir Authentification auprès du proxy HTTP).

  • Pour n'activer le déchiffrement SSL que pour certaines populations.

Ajoutez un port en écoute grâce au bouton blue_one.png.

  • Saisissez l'adresse IP et le port de l'interface sur laquelle le proxy doit écouter, au format adresseIP:portTCP. Si vous souhaitez écouter sur toutes les adresses IP/interfaces de la machine locale saisissez l'adresse IP : 0.0.0.0. Exemple : avec 0.0.0.0:3129, l'Olfeo écoutera sur le port 3129 de chaque interface.

  • Si vous êtes en train de configurer une machine maître dans un domaine Olfeo, renseignez tous les ports de toutes les machines esclaves.

  • Pour que le proxy fonctionne en interception sur ce port, cochez Interception. Assurez-vous de mettre en place les redirections nécessaires (suivant votre intégration, au niveau du firewall, du routeur).

  • Pour activer le déchiffrement des flux HTTPS reçus sur ce port, cochez la case Option SSL. La case n'est cochable que si un certificat d'autorité a été défini à la page Proxy avancéHTTPOptions SSL. Vous pouvez choisir de ne pas activer le déchiffrement sur certains ports, par exemple pour des ports ne recevant que des mises à jour provenant d'URLs de confiance.

Utiliser l'en-tête HTTP "Via" : Si la case est cochée, le proxy ajoute à la requête un en-tête Via contenant une chaîne identifiant le proxy (protocole, Squid_ID, version). Il peut être nécessaire de désactiver les en-têtes Via dans le cas où des serveurs distants refusent de servir des pages lorsque la requête provient d'un proxy. Si vous avez plusieurs Olfeo, l'en-tête Via permet de savoir par lequel la requête a transité.

Cette section vous permet de définir les ports vers lesquels le proxy est autorisé à transmettre des requêtes, ainsi que les méthodes autorisées sur ces ports. Vous pouvez ainsi bloquer les connexions vers certains ports.

La configuration par défaut permet de gérer la plupart des cas.

Types de requêtes :

  • Navigation : Autorise la navigation HTTP standard, plus précisément les méthodes suivantes :

        GET
        HEAD
        POST
        DELETE
        TRACE
        RPC_OUT_DATA
        RPC_IN_DATA
  • FTP sur HTTP : Voir Gérer le FTP sur HTTP.

  • WebDAV : Extension du protocole HTTP permettant la gestion de fichiers partagés et stockés sur un serveur Web. Autorise les méthodes suivantes :

        PUT
        OPTIONS
        PROPFIND
        TUNNEL
        PROPFIND
        PROPPATCH
        MKCOL
        COPY
        MOVE
        LOCK
        UNLOCK
        MKDIR
        INDEX
        RMDIR
        LINK
        UNLINK
        PATCH
        BCOPY
        BDELETE
        BMOVE
        BPROPPATCH
        MKCO
        POLL
        SEARCH
        SUBSCRIBE
  • CONNECT : Autorise la méthode CONNECT de HTTP 1.1 (utilisée notamment pour l'établissement de connexions SSL).

Règles :

  1. Ajoutez une règle à l'aide de l'icône blue_one.png.

  2. Saisissez un port destination dans le champ de la colonne Port.

    • Pour saisir une plage de ports, séparez le port de début et le port de fin par un tiret. Exemple : 1025-65535.

    • Pour saisir plusieurs ports dans une même ligne, séparez-les par une espace. Exemple : 70 210 280.

  3. Cochez les protocoles et/ou méthodes que vous souhaitez autoriser sur ces ports destination.

Si vous avez activé le déchiffrement SSL, cochez la case Navigation pour les ports correspondants (typiquement, 443).

Utiliser le mode passif étendu pour le FTP sur HTTP : Ce mode permet au proxy Olfeo d'utiliser la commande EPSV à la place de PASV et ainsi d'effectuer des requêtes FTP compatibles avec IPv6. L'option permet d'utiliser un serveur FTP qui n'implémenterait que la commande EPSV. Référez-vous à la RFC FTP Extensions for IPv6 and NATs pour plus d'informations.

  • Filtrer des URLs : Décochez cette case si cet Olfeo utilise le moteur de filtrage d'un autre Olfeo, ou si vous n'avez pas de licence pour le filtrage d'URL.

  • Ne pas mémoriser les autorisations : Pour des questions de performance, la solution Olfeo met en cache le résultat de l'évaluation des URLs par le moteur de règles. Cela permet de ne pas avoir à traiter des URLs appartenant à des sites internet déjà rencontrés.

    Forcez l'évaluation systématique de chaque URL si des règles du moteur de règles définissent des regex sur des URLs ou des extensions de fichier.

  • Nombre maximum de redirecteurs : Le nombre de processus internes de la solution Olfeo communicant entre le proxy HTTP et le moteur de filtrage (processus squid_wrapper). La valeur par défaut (100) convient pour la majorité des installations de la solution Olfeo.

  • Nombre de redirecteurs au démarrage

  • Nombre minimum de redirecteurs inutilisés : Détermine à quel moment un nouveau redirecteur doit être créé.

  • Parallélisme : Le nombre de threads par redirecteur (c'est-à-dire par instance de squid_wrapper).

  • Si le service de filtrage n'est pas disponible : Ce que doit faire le proxy HTTP si le service de filtrage ne répond pas (par exemple, s'il est trop occupé).

    • Bloquer : Le proxy renvoie une erreur 403 au navigateur.

    • Outrepasser : Le proxy laisse passer le flux jusqu'à l'utilisateur. Aucune règle du moteur de filtrage n'est appliquée.

  • Délai avant une autre connexion après une erreur : Temps d'attente avant une nouvelle tentative de connexion, en cas d'erreur de connexion entre le moteur de filtrage et le redirecteur (squid_wrapper). La valeur par défaut (30 secondes) convient dans la majorité des cas.

Cette section concerne le paramétrage du client ICAP inclus dans le proxy. Celui-ci communique avec le serveur ICAP inclus dans le moteur de filtrage (dans le Connecteur ICAP interne pour analyse de contenu), en RESPMOD, lorsque l'Olfeo doit réaliser de l'analyse de contenu et/ou transmettre ces contenus à l'antivirus (onglet Contenu du moteur de règles).

  • En cas d'échec du service : Ce que doit faire le client ICAP si le service ICAP n'est pas disponible :

    • Bloquer : Le proxy envoie une page d'erreur ERR_ICAP_FAILURE au navigateur.

    • Outrepasser : Le proxy envoie directement la réponse à l'utilisateur, sans la transmettre au serveur ICAP. Les règles de l'onglet Contenu du moteur de filtrage ne sont pas appliquées.

  • En cas de surcharge : Ce que doit faire le client ICAP s'il reçoit plus de requêtes (en nombre de requêtes ou en volume de données) qu'il n'est capable d'en traiter :

    • Bloquer : Le proxy envoie une page d'erreur ERR_ICAP_FAILURE au navigateur.

    • Outrepasser : Le proxy envoie directement la réponse à l'utilisateur, sans la transmettre au serveur ICAP. Les règles de l'onglet Contenu du moteur de filtrage ne sont pas appliquées.

    • Attendre : Le proxy envoie la requête à un buffer. La requête sera traitée lorsque le serveur ICAP sera à nouveau disponible.

    • Forcer : Le proxy envoie quand même la requête au serveur ICAP.

  • Nombre maximum de connexions : Nombre maximum de connexions simultanées entre le client et le serveur. Si la case n'est pas cochée, le client ICAP prendra la valeur indiquée par le serveur dans la requête OPTIONS.

Vous pouvez permettre au trafic FTP de passer par le proxy HTTP.

  • Dans votre client FTP, renseignez le proxy HTTP à utiliser : adresse IP de l'Olfeo et port utilisé pour le filtrage d'URL (défini à la page Proxy avancéHTTPConfiguration, section Ports en écoute).

  • À la page Proxy avancéHTTPConfiguration, dans la section Types de requêtes autorisées par port de destination, cochez la case CONNECT :

    • pour le port 21, pour autoriser la connexion au serveur FTP. (Pour le SFTP : port 22, pour le FTPS : port 990.)

    • pour la plage de ports 1025-65535, pour autoriser la connexion de données.

  • Si le déchiffrement SSL est activé, ajoutez une règle Pas de déchiffrement pour les flux FTP (et FTPS/SFTP) à la page Proxy avancéHTTPRègles de déchiffrement, section Règles de déchiffrement. En effet, lorsque le déchiffrement est activé, le proxy tente de déchiffrer toutes les requêtes utilisant la méthode CONNECT (sur laquelle s'appuie SSL/TLS). Les flux FTP utilisent cette méthode mais ne sont pas chiffrés : si le proxy tente de les déchiffrer, la connexion au serveur FTP échouera.

    • Pour autoriser un serveur FTP précis, ajoutez une regex correspondant à celui-ci dans la colonne Destination.

    • Pour gérer tout le trafic FTP d'un coup, dirigez les flux FTP vers un port spécifique du proxy et ajoutez une exception concernant ce port.

Plusieurs proxys peuvent être situés les uns à la suite des autres : un proxy parent est un proxy situé plus près d'internet que le proxy enfant. Un proxy peut être à la fois proxy parent et proxy enfant, s'il est situé entre 2 proxys.

chainage_proxy.png
  • Un Olfeo ne peut avoir qu'un seul proxy parent (cependant, ce proxy parent peut lui-même avoir un proxy parent).

  • Un Olfeo faisant du déchiffrement SSL ne peut pas avoir de proxy parent.

Diriger le trafic HTTP reçu par l'Olfeo vers un proxy parent

À la page Proxy avancéHTTPConfiguration, dans la section Chaînage proxy, cochez Utiliser un proxy parent.

  • Entrez l'adresse IPv4 et le port TCP du proxy parent vers lequel diriger les requêtes reçues.

  • Si vous avez configuré le proxy parent pour demander une authentification, entrez l'identifiant et le mot de passe du compte à utiliser. Il s'agit ici de l'authentification du proxy fils auprès du proxy parent : l'authentification des utilisateurs n'est pas concernée.

Gestion des adresses IP

L'adresse IP du poste client à l'origine de la requête peut être stockée dans un en-tête X-Forwarded-For, ajouté à la requête par un proxy (si celui-ci est configuré pour l'ajouter). Un proxy peut également ajouter sa propre adresse IP à l'en-tête. L'en-tête peut donc indiquer le chemin suivi par la requête, depuis le poste client émetteur et en traversant différents proxys.

Indiquez comment le proxy doit traiter cet en-tête, pour les requêtes transmises vers l'extérieur et pour les requêtes reçues.

  • Masquer l'adresse IP du client à un parent : si la requête contient des en-têtes X-Forwarded-For insérés par un autre proxy enfant, le proxy les supprime. Il n'ajoute pas sa propre adresse IP dans l'en-tête. Les équipements situés après le proxy ne connaissent donc pas l'adresse IP du client à l'origine de la requête. Ce paramètre s'applique dans tous les cas, que le proxy soit proxy parent ou enfant d'un autre proxy, ou non.

  • Utiliser l'en-tête HTTP "X-Forwarded-For" : le proxy que vous êtes en train de configurer est en position de proxy parent. Si la case est cochée, le proxy lit l'en-tête X-Forwarded-For : c'est l'adresse IP contenue dans cet en-tête qui est prise en compte pour appliquer les règles de filtrage ou la QoS, et qui apparaîtra dans les logs (et non l'adresse du proxy enfant).

Retrouvez ci-dessous l'ensemble des informations nécessaires pour ajuster la configuration du cache du proxy et définir des règles avancées de gestion.

Comprendre et configurer le cache du proxy

Le cache du proxy est géré à deux niveau : en cache mémoire (dans la RAM) pour maximiser les performances d'accès des objets les plus fréquemment cachés mais aussi sur disque pour les autres objets fréquemment demandés par les utilisateurs.

Avertissement

Un sur-dimensionnement du cache peut entraîner une dégradation de performances. Il convient donc de dimensionner le cache par étapes successives en incrémentant sa taille afin de trouver un compromis acceptable entre le fonctionnement de la solution Olfeo et la taille mémoire allouée au cache.

  1. Rendez-vous à la page de configuration du proxy HTTP en suivant les menus Proxy avancéHTTPCache.

  2. Saisissez la taille totale du cache mémoire que vous souhaitez allouer dans le champ Taille du cache.

    La taille par défaut est: 512 Mo.

  3. Saisissez la taille maximum des objets qui peuvent être mis en mémoire cache dans le champ Taille maximum des objets.

    Le cache mémoire est impérativement à réserver aux objets de taille modeste. En effet il est souvent plus intéressant de remplir le cache avec beaucoup d'objets de petite taille que de le remplir avec peu d'objets de grande taille. Un nombre maximum d'objets en cache entraîne en général un bénéfice pour un maximum d'utilisateurs.

    La taille par défaut est: 2048 ko.

  4. Choisissez l'algorithme de remplacement des objets mis en cache dans le champ Mode de remplacement.

    • Least recently used : Lorsque le cache est plein le remplacement des objets dans le cache mémoire se fait en fonction de la dernière utilisation de chaque objet. Les objets les moins récemment utilisés seront ceux qui seront remplacés. Ce mode de remplacement traditionnel n'est pas des plus performants considérant qu'il ne tient compte que de la date de la dernière utilisation et ne prend pas en compte d'autres paramètres comme la taille des objets, la fréquence d'utilisation, le coût de téléchargement de l'objet etc.

    • LRU Policy implemented using a heap : Cet algorithme de remplacement fonctionne comme l'algorithme Least Recently Used mais son système de gestion de données utilise un arbre ordonné (un tas). Cet algorithme permet une gestion de cache plus efficace permettant des remplacements, des ajouts et des suppressions rapides d'objets. En revanche ce mode de remplacement lui aussi ne prend en compte que la date de dernière utilisation de chaque objet ignorant d'autres caractéristiques.

    • Least frequently used with dynamic aging : Cet algorithme de remplacement utilise la fréquence d'accès aux objets pour gérer les objets dans le cache mémoire. Une politique de gestion de cache de type LFU a tendance à maximiser le ratio de hits en octets. Cependant cet algorithme peut conduire à une pollution du cache par des objets très anciens car il prend uniquement en compte la fréquence d'accès. L'algorithme Least frequently used with dynamic aging est une évolution par rapport à LFU car il gère aussi l'age des objets dans le cache afin d'éviter une pollution du cache par les objets les plus populaires. Ce mode de remplacement présente généralement de bons résultats en termes de ratio de hits en octets.

    • Greedy-Dual Size Frequency : Cet algorithme est une évolution des algorithmes de gestion de cache. Il prend en considération plusieurs paramètres tels que le coût de téléchargement d'un objet, la taille de l'objet, l'age et la fréquence d'utilisation. Ce mode de remplacement atteint généralement les meilleures performances en ratio de hits cache comparés aux autres modes disponibles.

  5. Cliquez sur le bouton Valider pour enregistrer les changements ou passez à la configuration du cache disque

  1. Dans la section Cache disque saisissez la taille en Mo du cache que vous souhaitez utiliser sur votre disque dans le champ Taille du cache.

    La taille par défaut est: 5 000 Mo

  2. Saisissez la taille minimum des objets à mettre en cache disque dans le champ Taille minimum des objets.

    La taille par défaut: est 1 ko

  3. Saisissez la taille maximum des objets à mettre en cache disque dans le champ Taille maximum des objets. Valeur par défaut : 32768 ko.

  4. Choisissez l'algorithme de remplacement des objets mis en cache disque dans le champ Mode de remplacement.

    Pour rappel:

    • Least recenly used : Lorsque le cache est plein le remplacement des objets dans le cache mémoire se fait en fonction de la dernière utilisation de chaque objet. Les objets les moins récemment utilisés seront ceux qui seront remplacés. Ce mode de remplacement traditionnel n'est pas des plus performants considérant qu'il ne tient compte que de la date de la dernière utilisation et ne prend pas en compte d'autres paramètres comme la taille des objets, la fréquence d'utilisation, le coût de téléchargement de l'objet etc.

    • LRU Policy implemented using a heap : Cet algorithme de remplacement fonctionne comme l'algorithme Least Recently Used mais son système de gestion de données utilise un arbre ordonné (un tas). Cet algorithme permet une gestion de cache plus efficace permettant des remplacements, des ajouts et des suppressions rapides d'objets. En revanche ce mode de remplacement lui aussi ne prend en compte que la date de dernière utilisation de chaque objet ignorant d'autres caractéristiques.

    • Least frequently used with dynamic aging : Cet algorithme de remplacement utilise la fréquence d'accès aux objets pour gérer les objets dans le cache mémoire. Une politique de gestion de cache de type LFU a tendance à maximiser le ratio de hits en octets. Cependant cet algorithme peut conduire à une pollution du cache par des objets très anciens car il prend uniquement en compte la fréquence d'accès. L'algorithme Least frequently used with dynamic aging est une évolution par rapport à LFU car il gère aussi l'age des objets dans le cache afin d'éviter une pollution du cache par les objets les plus populaires. Ce mode de remplacement présente généralement de bons résultats en termes de ratio de hits en octets.

    • Greedy-Dual Size Frequency : Cet algorithme est une évolution des algorithmes de gestion de cache. Il prend en considération plusieurs paramètres tels que le coût de téléchargement d'un objet, la taille de l'objet, l'age et la fréquence d'utilisation. Ce mode de remplacement atteint généralement les meilleures performances en ratio de hits cache comparé aux autres modes disponibles.

  5. Configurez ensuite les limites hautes et basses du cache.

  6. Définissez enfin la Durée de vie des objets dans le cache (4230mn, soit 72h par défaut).

  7. Cliquez sur le bouton Valider pour enregistrer les changements.

Retrouvez ci-dessous les informations pour mettre en place des limites de débit sur la bande passante d'Olfeo on-premise.

Cela peut être utilse dans des contextes où la bande passante est un enjeu (connexions par satelitte pour des sites distants par ex. ou si une capacité doit être impérativement dédiée à un usage donné).

  1. Rendez-vous à la page de configuration du proxy HTTP en suivant les menus Proxy avancéHTTPQOS.

  2. Saisissez dans le champ Bande passante maximum disponible la bande passante maximum en ko/s à laquelle est reliée votre solution Olfeo.

    Par exemple :

    1. Vous disposez d'une connexion 10 Mbit/s.

    2. 10 mbps = 10 000 kbit/s.

    3. 10 000 kbit/s = 1250 ko/s (car 1 octet = 8 bits)

    Vous pouvez donc saisir dans le champ Bande passante maximum disponible la vitesse maximum théorique de 1250 ko/s.

  3. Ajoutez une règle de QoS grâce au bouton btn_ajouter_regle.png.

    .

  4. Dans la règle nouvellement créée, si vous souhaitez réaliser de la QoS à des horaires prédéfinis cliquez sur le lien de la colonne Plage horaire puis cliquez sur l'une des plages horaires de la colonne Libellé.

    Note

    Si vous souhaitez créer une plage horaire rendez-vous ici.

  5. Dans la règle nouvellement créée, si vous souhaitez spécifier une source spécifique sur laquelle réaliser la QoS cliquez sur le lien de la colonne Source. Sélectionnez ensuite le type de source sur lequel vous voulez effectuer le filtrage grâce au menu Sélectionner.

    1. Si vous voulez spécifier un ensemble d'utilisateurs sélectionnez Utilisateurs. Déployez l'arborescence des utilisateurs à l'aide de l'icône

      fleche.png

      puis sélectionnez les utilisateurs en activant les cases à cocher de la colonne Nom. Pour finir cliquez sur Valider.

  6. Dans la règle nouvellement créée, si vous souhaitez spécifier une destination spécifique sur laquelle réaliser la QoS cliquez sur le lien de la colonne Destination puis cliquez sur le type de destination sur lequel vous appliquerez votre règle grâce au menu Sélectionner.

    1. Si vous souhaitez spécifier la destination par le bais d'une expression rationnelle regex cliquez sur URL (regex) puis saisissez l'expression rationnelle dans le champ Url. Pour finir cliquez sur Valider.

    2. Si vous souhaitez spécifier la destination par le biais de listes d'URLs cliquez sur Listes d'URLs puis validez les listes d'URLs souhaitées à l'aide des cases à cocher de la colonne Libellé. Pour finir cliquez sur Valider.

      Note

      Si vous souhaitez créer une liste d'URLs rendez-vous ici: Créer une liste d'URLs.

    3. Si vous souhaitez spécifier la destination par le biais de listes de catégories cliquez sur Listes de catégories puis validez les listes de catégories souhaitées à l'aide des cases à cocher de la colonne Libellé. Pour finir cliquez sur Valider.

      Note

      Si vous souhaitez créer une liste de catégories rendez-vous ici: Créer une liste de catégories.

    4. Si vous souhaitez filtrer des URLs par le biais de catégories cliquez sur Catégories puis validez les catégories souhaitées à l'aide des cases à cocher de la colonne Libellé. Pour finir cliquez sur Valider.

  7. Dans la règle nouvellement créée cliquez sur le lien de la colonne Bande passante pour définir les paramètres de la bande passante.

    Pour information, la solution Olfeo utilise la syntaxe x / y dans la liste des règles pour vous rappeler la Limite globale (ko/s) et la limite par utilisateur (ko/s) de chaque règle.

    1. Saisissez la bande passante maximum en ko/s que vous souhaitez attribuer à cette règle dans le champ Limite globale (ko/s).

      Note

      Cette limite doit être inférieure ou égale à la Bande passante maximum disponible définie à l'étape 2.

    2. Si vous souhaitez définir une bande passante maximum par utilisateur, validez la case à cocher Activer la limite par utilisateurs puis saisissez la bande passante maximum par utilisateur dans le champ limite par utilisateur (ko/s).

      Note

      Cette limite doit être une fraction de la bande passante du champ Limite globale (ko/s) définie à l'étape précédente.

    3. Cliquez sur Valider pour enregistrer les changements.

  8. Dans la règle nouvellement créée, si vous préférez définir la bande passante allouée spécifiquement à cette règle comme un pourcentage de la Bande passante maximum disponible définie à l'étape 2, saisissez la valeur voulue dans le champ de la colonne %.

    Avertissement

    Une fois le pourcentage de Bande passante maximum disponible modifié, la solution Olfeo recalcule le champ Limite globale (ko/s) défini à l'étape 2. En effet la Limite globale (ko/s) et le pourcentage de la Bande passante maximum disponible sont deux manières d'exprimer la même valeur de bande passante que vous souhaitez allouer à votre règle.

    Par exemple: Si vous souhaitez allouer à votre règle la moitié de votre Bande passante maximum disponible, saisissez la valeur 50 dans le champ de la colonne %.

  9. Cliquez sur Valider pour enregistrer les changements.