Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Mars 2012 -
ExaProxy est un nouveau proxy HTTP s'ajoutant à une longue liste de logiciels libres (SQUID, haproxy, varnish, tinyproxy…). Il se place dans le secteur de niche des proxy filtrants principalement desservis commercialement par des entreprises comme BlueCoat ou Fortinet.
Dans ce domaine, SQUID est la plus connue des solutions libre grâce à une interface simple permettant l’écriture rapide de modules de filtrage qui reçoivent l'IP de hôte connecté avec la requête faite. SQUID supporte aussi ICAP/eCAP pour ceux qui veulent modifier la requête et la réponse du serveur.
Cependant, afin d'avoir un filtrage différent par IP d'origine, il est impossible d'utiliser SQUID avec un load balancer de niveau 7, comme haproxy, qui change l'IP d'origine. Seules les solutions de haute disponibilités ré-écrivant l'adresse MAC de destination (comme ipvsadmin) sont adaptées. De plus, SQUID ne présente pas les requêtes de type CONNECT.
ExaProxy est donc un forward proxy permettant de filtrer ou router le trafic transitant dans un cluster de manière très souple, et permet l'utilisation du header X-Forwaded-For quand l'IP de l’hôte est masquée. Une autre utilisation peut être comme passerelle entre machines IPv4 et IPv6.
Le fonctionnement du serveur peut-être observé via une interface web sur le port local 8080.
Ce proxy, bien qu’écrit en Python, a été conçu pour remplacer SQUID dans un cluster de serveurs sous forte charge. Afin d’être performant, l'application utilise un arsenal de techniques de programmation :
- un réacteur asynchrone (epoll ou select) ;
- une gestion par événements de la machine d'état (state-machine) ;
- l'utilisation de co-routines (plus légères que des threads) pour la gestions des connections TCP ;
- une résolution DNS UDP/TCP interne intégrée dans le coeur (
gethostbyname
est une fonction bloquante) ;
- une communication entre threads et le coeur par messages ;
- une gestion automatique du nombre de threads nécessaire pour une bonne montée en charge.
Beaucoup de scripts (certains compatibles avec le format SQUID) sont présents avec le code comme :
- comment éditer un cookie pour par exemple, toujours avoir des résultats YouTube filtrés ;
- comment présenter https://www.wolframalpha.com/ quand https://www.google.com/ a été demandé, sans que le butineur n'affiche de problème de certificat SSL ;
- comment servir des fichiers locaux à la place de la page demandée ;
- comment servir un contenu généré depuis le script lui-même.
Le proxy est considéré assez stable pour être utilisé en production par quelques beta-testeurs, une version 1.0.0 devrait voir le jour début mars. Les auteurs recherchent donc activement des retours d’expérience autre que la leur.
Lire les commentaires