Editer un script de configuration automatique du proxy

Transcription

Editer un script de configuration automatique du proxy
Editer un script de configuration automatique du proxy
INTRODUCTION................................................................................................................................................. 2
AVANTAGE D’UN SCRIPT DE CONFIGURATION ..................................................................................... 2
SYNTAXE DU SCRIPT DE CONFIGURATION AUTOMATIQUE ............................................................. 2
MISE A DISPOSITION DU SCRIPT ................................................................................................................. 4
ANNEXE................................................................................................................................................................ 6
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2007- Alcatel - All rights reserved
INTRODUCTION
Ce document décrit comment éditer un script afin de configurer automatiquement et de façon
centralisée les postes clients d’un réseau lorsqu’un proxy est utilisé.
Ce script permet de définir si le poste client doit passer par le ou les proxy(s) en fonction par exemple
de l’adresse IP ou du nom de domaine auquel on souhaite accéder.
AVANTAGE D’UN SCRIPT DE CONFIGURATION
Ce type de script permet entre autre un gain de temps précieux pour l’administrateur d’un réseau
important mais aussi d’améliorer la flexibilité de la gestion des flux entre vos différents réseaux et
internet.
SYNTAXE DU SCRIPT DE CONFIGURATION AUTOMATIQUE
La structure du fichier (fichier en .pac) d'autoconfiguration du proxy est écrite en javascript avec la
fonction FindProxyForURL qui est passée en clair au client. Ce fichier est écrit avec notpad au format
texte et on lui donne une extension .pac à la place de .txt par exemple.
Les exemples suivants présentent les différentes configurations typiques pouvant être mise en œuvre
(non-exhaustif).
Utiliser le serveur proxy pour le réseau local :
function FindProxyForURL(url,host)
{
return "PROXY one.domain.local:8080;DIRECT";
}
Dans l’exemple ci-dessus, les utilisateurs passent par le proxy one.domain.local (on peut également
renseigner l’adresse IP au lieu du nom) sur le port 8080 si celui-ci est disponible. Sinon, ils accèderont
directement sur Internet ( ;DIRECT).
Ne pas utiliser de serveur proxy pour les adresses locales :
Vous avez un ou plusieurs site(s) web intranet sur votre réseau, dans ce cas il est inutile de passer
par le proxy, voici donc la syntaxe :
function FindProxyForURL(url,host)
{
if isInNet(host,”192.168.92.0”,”255.255.255.0”) return “DIRECT”;
else return “PROXY 192.168.92.1:8080”;
}
Exception simple:
Vous ne souhaitez pas passer par le proxy pour le site www.support.rightvision.com :
function FindProxyForURL(url,host)
{
if localHostOrDomainIs(host, ”www.support.rightvision.com”) return DIRECT ;
else return “PROXY 192.168.92.1:8080”;
}
Opérateurs:
il est possible d’utiliser les opérateurs suivants:
|| correspond à OU
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2006 - Alcatel - All rights reserved
&& correspond à ET
Exceptions multiples:
Voici un exemple où l’on ne souhaite pas passer par le proxy pour les sites:
- Les sites web alcatel-lucent.fr
- www.support.rightvision.com
- les sites web intranet.
function FindProxyForURL(url,host)
{
if (
dnsDomainIs(host,”.alcatel-lucent.fr”)
|| localHostOrDomainIs(host, ”www.support.rightvision.com”)
|| isInNet(host,”192.168.92.0”,”255.255.255.0”)
)
return DIRECT ;
else return “PROXY 192.168.92.1:8080”;
}
Ajoutons à l’exemple précédent l’accès direct pour le protocole FTP (port 21):
function FindProxyForURL(url,host)
{
if (
dnsDomainIs(host,”.alcatel-lucent.fr”)
|| localHostOrDomainIs(host, ”www.support.rightvision.com”)
|| isInNet(host,”192.168.92.0”,”255.255.255.0”)
|| shExpMatch(url, ”ftp://*”)
)
return DIRECT ;
else return “PROXY 192.168.92.1:8080”;
}
Fonctions basiques:
Le tableau ci-dessous résume certaines fonctions basiques vues précédemment et d’autres pouvant
être utilisées:
isPlainHostName(host)
Retourne TRUE si le nom de domaine n'est pas inclus (si on n'a
pas
de
point
dans
l'adresse).
isplainHostName(host) retourne TRUE si vous avez donné
localhost
dnsDomainIs(host,domain)
Retourne TRUE si host appartient au domaine. domain doit
commencer
par
un
point.
Exemple : dnsDomainIs(host,".mon-lycee.fr") retourne TRUE si
vous avez donné comme adresse www.mon-lycee.fr sinon
retourne FALSE.
Retourne TRUE si la partie de host correspond host.
localHostOrDomainIs(host,autrehost) Exemple : localHostOrDomain(host,"www.ac-creteil.fr") est
TRUE si host est www.ac-creteil.fr. sinon FALSE.
isResolvable(host)
Retourne TRUE si le DNS peut résoudre le nom d'hôte sinon
FALSE.
shExpMatch(chaîne, expression)
Retourne TRUE si chaîne correspond à expression.
Exemple : shExpMatch(host, "*.fr") est TRUE si l'adresse
envoyé par le navigateur est www.ac-creteil.fr sinon FALSE
dnsDomainLevels(host)
Retourne le nombre de niveaux de domaines dans le nom
d'hôte.
Exemple : dnsDomainLevels(host) retourne 2 si vous avez
donné www.ac-creteil.fr
dnsResolve(host)
Retourne l'adresse IP de host si elle a pu être trouvée.
Exemple : dnsResolve(host) avec pour host www.ac-creteil.fr
retourne 195.98.246.33
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2006 - Alcatel - All rights reserved
myIpAddress()
isInNet(host,motif
masque)
Retourne l'adresse IP de la station.
d'adresse
Retourne TRUE si l'adresse IP de host correspond au motif
d'adresse
I¨P.
IP, Exemple
:
isInNet(host,"192.168.0.10","255.255.255.0")
retourne vrai si l'adresse de host est 192.168.0.x car les 3
premiers octets isolés par le masque et le motif sont
identiques.
Autres fonctions:
Ce document n’est pas exhaustif mais il met en évidence la flexibilité que vous apporte un script de
configuration automatique.
Il est en effet possible d’utiliser le proxy ou l’accès direct suivant de nombreuses conditions
supplémentaires comme la date et l’heure par exemple.
MISE A DISPOSITION DU SCRIPT
Nous allons voir comment utiliser ce script avec Internet Explorer suivant 3 méthodes différentes.
Sur Internet Explorer,
Allez dans Outils>Options Internet…
Dans l’onglet Connexions, cliquez sur paramètres réseau…
Cochez la case Utiliser un script de configuration automatique et saisissez l’url (traité plus bas) où
se situe le script.
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2006 - Alcatel - All rights reserved
Script en local:
Afin de tester votre script, vous pouvez d’abord le stocker sur votre PC.
Par exemple le script proxy.pac est stocké sur la racine du disque D:\
Dans le navigateur, l’url sera:
file://D:/proxy.pac
Script sur partage de fichier:
Il est possible de rendre le script disponible via un partage de l’Eye-Box.
Par exemple, le script proxy.pac se trouve sur le partage Public d’une Eye-Box dont l’adresse IP est
172.17.137.77 .
Dans le navigateur, l’url sera:
file://///172.17.137.77/Public/proxy.pac
Script sur serveur Web:
Enfin, le script peut être disponible via un serveur web, ce qui constitue le cas le plus courant.
Dans l’exemple suivant, je crée un serveur web sur l’eye-box.
-
Dans Gestion des services > Web > Configuration des sites Web, je vais ajouter un
site web par IP.
-
Une fois validé, j’active le site (il suffit de cliquer sur le bouton rouge « Statut »)
Enfin je charge le script via ftp :
il faut d’abord activer le service Ftp dans Gestion des services > Gestion du
service FTP > FTP : Serveur Standard, sélectionner l’interface d’écoute,
valider et mettre le FTP sur On.
Ensuite, j’accède au serveur Ftp sur Internet Explorer avec l’url suivante :
• ftp://172.17.137.77/ftpgroups/172.17.137.77/html/
• Je me connecte en tant que superadmin (j’ai créé le site web avec cet
utilisateur, sinon loguez vous avec l’administrateur délégué)
• Copier/coller du fichier dans le répertoire.
-
Le script est maintenant disponible, l’adresse du script de configuration est la suivante :
http://172.17.137.77/proxy.pac
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2006 - Alcatel - All rights reserved
Nota : il est possible également de déposer le script sur un ftp. En revanche dans tous les cas, il faut
bien faire attention que l’extension soit en .pac, si vous éditez le fichier l’extension .txt peut se rajouter
à la fin.
De même pour tous les cas de figure sauf si vous utilisez un site web, faîtes bien attention aux droits
donnés à ce fichier, il est bien évidemment conseillé de n’accorder les droits totaux uniquement pour
l’administrateur et de donner uniquement un accès en lecture aux autres utilisateurs.
ANNEXE
Pour plus d’informations concernant les scripts de configuration automatique, je vous conseils la page
suivante :
http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html
Non-contractual document. Alcatel may modify the products described in this document or any documents supplied with the product without prior notice. No part of these documents may be
copied or transmitted for any purpose or by any means, electronic or mechanical, without the express written permission of Alcatel.
© 2006 - Alcatel - All rights reserved