Blog-note de Frédéric Plé

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 8 août 2008

Auto-configuration du proxy du navigateur Web

Le fichier de configuration automatique est un javascript qui défini le proxy et les exceptions.

Voici un exemple basique de fichier :

function FindProxyForURL(url, host)
{
        if (isInNet(host, "192.168.0.0", "255.255.255.0")) return "DIRECT";
        return "PROXY 192.168.0.5:3128";
}


Celui-ci doit être accessible sur un serveur HTTP du réseau local.

Il faut le nommer par exemple wpad.dat ou config.pac en spécifiant au niveau de la configuration apache :

AddType application/x-ns-proxy-autoconfig .dat
AddType application/x-javascript-config .pac

Ensuite, toute il faut que le navigateur des utilisateurs où trouver le fichier d'auto-configuration.

Pour Internet Explorer ou Mozilla Firefox, il suffit d'indiquer l'URL du script de configuration automatique.

Cette opération est manuelle et peut être fastidieuse.

J'ai personnellement modifié mon serveur DHCP pour ajouter le champs 252 qui permet de fournir au client DHCP cette URL automatiquement. Le paramétrage sous Windows Server est décrit ici : lien vers Microsoft Technet

Problème : il faut quand même dire au navigateur (Firefox ou IE) de détecter automatiquement le proxy.

Dans le cadre d'un domaine, il est possible de définir ce paramètre de IE par une GPO (ça fonctionne parfaitement).

Pour Firefox, je n'ai pas trouvé de solution autre que saisir manuellement l'URL du script de configuration (Firefox ne supporte pas le champs 252 de DHCP :-( même en version 3.0.1)

Pour que mes utilisateurs soient malgré tout autonomes, j'ai mis en place un redirecteur et un site "catch all" pour les utilisateurs qui essaient de surfer sans proxy avec une page descriptive de la procédure de configuration manuelle.

lundi 22 octobre 2007

nginx : Proxy HTTP/Mail

nginx a quelques modules intéressants

vendredi 7 septembre 2007

Proxy SMTP anti-spam

ASSPS semble avoir pas mal de fonctionnalités interessante mais qui doivent être coûteuse au niveau système.

lundi 27 août 2007

Broker MySQL pour séparer les requêtes en lecture et en écriture

Le but est d'avoir un serveur maître et plusieurs serveurs esclaves et de répartir la charge des lectures sur les esclaves afin de dédier le maître aux écritures.

Voici un tutorial pour réaliser un proxy MySQL dans ce sens.

vendredi 24 août 2007

Réaliser un proxy TCP sous Linux

Réaliser un proxy TCP est assez simple dans la plupart des languages compilés C ou interprétés.

En shell, c'est moins simple... Encore que, nc (netcat) est très puissant et permet de faire des trucs de "barbus" ;) :

mknod pipe p && nc -l localhost 25 <pipe | nc localhost 10025 >pipe && rm -f pipe

Dans cet exemple, le proxy TCP écoute sur le port 25 (SMTP) et renvoie le flux sur le port 10025 de la même machine. Explication :

  1. on crée un fichier pipe (voir plus bas)
  2. nc -l crée un server TCP qui écoute sur le port 25. Il envoie sur sa sortie standard (dans le |) les données qu'il reçoit.
  3. le nc suivant est un client TCP qui envoie sur le serveur et le port précisé les données qu'il reçoit sur son entrée standard (c'est à dire envoyée par le serveur nc précédent au travers du |. Il renvoie sur ca sortie standard les réponse du serveur. Pour boucler la boucle, il faut renvoyer les réponses du serveur final au client initial et c'est là qu'intervient le fichier pipe.
  4. le client TCP nc redirige sa sortie standard (données reçues du serveur final) dans le fichier pipe qui lui alimente l'entrée standard du serveur (afin de retourner au client initial les flux retournés par le serveur final).

Il est possible d'intercaler entre les deux commandes nc un traitement du contenu par exemple avec sed ou perl qui ne doit pas bufferiser ses sorties.

- page 2 de 4 -