Todo el que halla configurado un navegador con proxy; o sea, todo cubano que
halla configurado un navegador, quizás halla visto que una de las tantas
opciones dice “configuración automática”. Seguro se preguntarán que carajo es
eso.
Pues esa un javascript que le dice al navegador como debe serla configuración
del proxy; obviamente.
Resulta que hay dos maneras de hacerlo, vía DHCP o vía DNS. Algunos navegadores
lo cogen por DHCP mientras que otros lo hacen por DNS.
Para evitar problemas, configuramos las dos…
Primero y principioso. Creamos el fichero wpad.dat, el nombre debe respetarse.
Dicho fichero los servimos, así que por definición los podremos en /var/www.
Este fichero contendrá las instrucciones que un navegador necesita para pinchar.
“/var/www/wpad.dat”
123456789101112
functionFindProxyForURL(url,host){// los host locales NO pasan a través del proxyif(shExpMatch(url,"*.hcg.sld.cu:*")){return"DIRECT";}if(shExpMatch(url,"*.hcg.sld.cu:*/*")){return"DIRECT";}// la red local, tampocoif(isInNet(host,"10.1.1.0","255.255.255.0")){return"DIRECT";}// lo demás sale por el proxyreturn"PROXY 10.1.1.1:3128";};
Como ve, es javascript puro, osea que las opciones se podrían hacer más
creativas. Por ejemplo, si la ip de la máquina es tal, configuralo así o asao.
Los criticones de código diran que se pudo usar un swith en vez de 3 “if”. Pero
eso correrá en un momento y entorno casi imposible de debugar. Lo intenté con
swith y no me pinchó. Ahora el problema es que hay que declarar un nuevo contenido mime para este
dato. En mi caso uso nginx y en el fichero de configuración de mime, le
aclaramos el nuevo; a mi me quedó así:
mime.conf
1234567
types { application/x-ns-proxy-autoconfig dat;
text/html html htm shtml;
text/css css;
(muchas lineas más aqui)}
Bueno ahora, vamos pal DHCP. Por supuesto, nada menos que el mismísimo dnsmasq:
Primero el método DHCP, declaramos una option cuyo código sea 252
option=252,http://10.1.1.1/wpad.dat
También declaramos un puntero DNS, que apunte a wpad.hcg.sld.cu y que sea el
servidor donde está el wpad. Le recuerdo que “hcg.sld.cu” es el nombre del
dominio. Al reiniciar nginx y dnsmasq, todo debe estar listo…