Config Proxy automatique

Slow

Aujourd’hui notre accès internet ne suffisait plus, afin de diminuer la bande passante nécessaire j’ai mis en place un Proxy. L’intérêt principal en est simple, c’est un cache : si un utilisateur a déjà téléchargé quelque chose sur internet, les autres utilisateurs voulant télécharger la même chose n’auront pas à utiliser l’accès internet puisque cela sera déjà dans le cache. C’est transparent pour les utilisateurs, mis à part le fait qu’internet devient beaucoup plus rapide dans certains cas.

Pour ne pas avoir à passer sur les 200 postes, et surtout ne pas avoir à repasser partout en cas de changement, j’ai opté pour une solution complètement automatique. J’ai installé SQUID comme proxy sur une Debian Etch, puis j’ai utilisé notre DHCP/DNS sous Windows 2003 pour configurer automatique tous les postes. Bien sûr j’ai fait cela aujourd’hui, je corrigerais les infos si je constate que ça n’a pas marché parfaitement (nous avons 30% de mac, donc IE6, IE7, Safari, Firefox…).

Ajouter dans /etc/apache2/apache2.conf après les autres AddType

AddType application/x-ns-proxy-autoconfig dat

Créer un ficher wpad.dat à la racine d’un serveur web nommé wpad.votredomainelocal.com . Votredomainelocal.com étant le suffixe dns indiqué dans vos paramètres TCP/IP. Souvent fourni par le DHCP.

    function FindProxyForURL(url, host)
{
//If they have only specified a hostname, go directly.
if (isPlainHostName(host))
return "DIRECT";

//These connect directly if the machine they are trying to
//connect to starts with "intranet" - ie http://intranet
//Connect  directly if it is intranet.*
//If you have another machine that you want them to
//access directly, replace "internal*" with that
//machine's name
if (shExpMatch( host, "intranet*")||
shExpMatch(host, "internal*"))
return "DIRECT";

//Connect directly to our domains (NB for Important News)
if (dnsDomainIs( host,"company.com")||
//If you have another domain that you wish to connect to
//directly, put it in here
dnsDomainIs(host,"sistercompany.com"))
return "DIRECT";

//So the error message "no such host" will appear through the
//normal Netscape box - less support queries :)
if (!isResolvable(host))
return "DIRECT";

//We only cache http, ftp and gopher
if (url.substring(0, 5) == "http:" ||
url.substring(0, 4) == "ftp:"||
url.substring(0, 7) == "gopher:")

//Change the ":8080" to the port that your cache
//runs on, and "cache.company.com" to the machine that
//you run the cache on
return "PROXY cache.company.com:8080; DIRECT";

//We don't cache WAIS
if (url.substring(0, 5) == "wais:")
return "DIRECT";

else
return "DIRECT";
}

Il faut alors vérifier que cela fonctionne en mettant manuellement http://wpad.votredomainelocal.com/wpad.dat dans l’adresse de configuration automatique du proxy (dans firefox par exemple). Si cela ne fonctionne pas, inutile d’aller plus loin.

Après si l’on coche la case “configuration automatique” tout a semblé fonctionner à merveille chez nous. Le must reste quand même d’ajouter l’option à notre DHCP afin que toutes les machines soient informées qu’il existe une configuration automatique pour le proxy.

Option DHCP

Sur un DHCP Windows 2003, en faisant un clique droit sur le nom de serveur on peut “définir les options prédéfinies”. Puis on ajoute l’option WPAD de type Chaîne et qui a pour code 252. J’ai alors pu ajouter l’option:

WPAD

PS du 15 avril 2008 : plus de 90% de nos machines ont fait des requêtes sur le proxy sans intervention poste à poste. On peut en conclure que la configuration automatique est un succès. Nous avons 30% de mac et surtout 6 sociétés différentes ayant eu des maintenances informatiques différentes jusqu’à présent.

Ma source principale est :

http://www.laboratoire-microsoft.org/articles/server/ISA2004/7/

Je prévois de mettre en place des statistiques, et j’ai trouvé ce lien pour mrtg :

http://www.malekal.com/squid.php#mozTocId935855

Leave a Reply

Your email address will not be published. Required fields are marked *