0

Script de configuration automatique Proxy PAC

Le script PAC (pour Proxy Auto Configuration) permet de configurer automatiquement et de manière centralisée les paramétrage proxy de vos postes clients.
Il offre plus d’options et permet de définir si le navigateur doit passer par le proxy ou accéder directement au site web en fonction de l’adresse IP ou du nom de domaine auquel on souhaite accéder. Plusieurs proxy peuvent être paramétrés selon les destinations est permettre une meilleure disponibilité.

Fichier PAC

Le fichier en .pac de configuration du proxy est écrit en javascript avec la fonction FindProxyForURL
Il est compatible avec la majorité des systèmes d’exploitations et navigateurs (Internet Explorer, Google Chrome, Mozilla Firefox…)
Vous pouvez le créer et l’éditer avec le bloc note, et lui donner l’extension .pac à la place de .txt

Fonctions basiques

isPlainHostName(host)
Retourne TRUE si le nom de domaine n’est pas inclus (pas de point dans l’adresse)
Permet d’envoyer en direct  sans requête DNS le trafic à destination des hôtes locales

if (isPlainHostName(host))
	return "DIRECT";

 

dnsDomainIs(host,domain)
Retourne TRUE si le hostname correspond au domaine.

if (dnsDomainIs(host, "underlan.fr") || 
	dnsDomainIs(host, "www.underlan.fr"))
		return proxy1.underlan.fr:8080, proxy2.underlan.fr:8080, "DIRECT";

Si le hostname correspond au domaine indiqué, la requete sera envoyé vers le proxy 1, si il ne répond pas au proxy 2 si il ne répond pas non plus en DIRECT vers le site.

 

localHostOrDomainIs(host,host)
Retourne TRUE si la hostname correspond exactement.

if (localHostOrDomainIs(host, "www.underlan.fr"))
	return "DIRECT";

 

isResolvable(host)
Retourne TRUE si le DNS peut résoudre le hostname.

if (isResolvable(host))
	return "PROXY proxy1.underlan.fr:8080";

 

shExpMatch(chaîne, expression)
Retourne TRUE si chaîne correspond à expression.

if (shExpMatch(host, "*.local")) || 
	shExpMatch(host, "vpn.underlan.fr) || 
	shExpMatch(url, "http://underlan.fr/video/*"))
		return "DIRECT";

 

isResolvable(host)
Retourne l’adresse IP correspondante au hostname

 

isInNet(host, adresse IP, masque)
Retourne TRUE si l’adresse IP de l’hôte est dans la plage d’adresse donnée (IP et masque)

if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0"))
	return "DIRECT";

Toutes les requêtes à destination du réseau local 10.0.0.0/8 sont envoyées en direct.

if (isInNet(dnsResolve(host), "10.74.87.122", "255.255.255.255"))
	return "PROXY proxycdn.underlan.fr:8080";

Toutes les requêtes à destination de l’adresse 10.74.87.122 sont orientées vers le proxycdn.

Exemple

function FindProxyForURL(url, host) {

	if (isPlainHostName(host))||
	localHostOrDomainIs(host,"localhost"))||
	isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0")||
	isInNet(dnsResolve(host), "169.254.0.0", "255.255.0.0")||
	isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0")||
	isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")||
	isInNet(dnsResolve(host), "127.0.0.0", "255.0.0.0"))
		return "DIRECT";

	if (localHostOrDomainIs(host, ".underlan.fr")||
	localHostOrDomainIs(host, "ftp.underlan.fr")||
	shExpMatch(host,"*gslb.underlan.fr"))
		return "DIRECT";

	if (shExpMatch(host, "*.lync.com")||
	shExpMatch(host, "*.microsoft.com")||
	shExpMatch(url, "https://*.google.com/*")||
	shExpMatch(url, "https://*.google.fr/*"))
		return "PROXY proxycdn.underlan.fr:8080";

	if (shExpMatch(host, "account.activedirectory.windowsazure.com")||
	shExpMatch(url, "https://office.com/*"))
		return "PROXY proxyO365.underlan.fr:8080";
	}

Déploiement

Stockage du fichier PAC

Un serveur web doit être configuré pour mettre à disposition le fichier PAC
Le type MIME doit être correctement configuré.

IIS
Dans les paramétres de votre serveur, créer un nouveau type MIME avec les informations suivante :

Extension: .pac
MIME Type: application/x-ns-proxy-autoconfig

Apache
A l’emplacement du fichier, créer un fichier .htaccess et y insérer la ligne suivante :
AddType application/x-ns-proxy-autoconfig .pac

Configuration des postes par GPO

Créer ou ajouter une GPO

Configuration utilisateur > Préférences > Paramètre du Panneau de configuration

Clic droit sur Paramètre Internet > Nouveau > Internet Explorer 10

Onglet Connexion > Paramètres réseau

Indiquer l’adresse du fichier PAC puis valider le paramètre en appuyant sur F5 (vérifier que la ligne soit surlignée en vert, le paramètre sera alors appliqué, si il est en rouge non)

Maintenant que le proxy est configuré vous pouvez en empêcher la modification par l’utilisateur :

Configuration Utilisateur > Stratégies > Modèles d’administration… > Composants Windows > Internet Explorer

Activer « Empêcher la modification des paramétrages de proxy »

Verifier l’application de la GPO :

fred

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *