Author Topic: {RESUELTO} WPAD  (Read 6844 times)

juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
{RESUELTO} WPAD
« on: August 15, 2012, 02:09:31 pm »
Hola a todos.

Estoy intentando implementar WPAD y no lo consigo.

He seguido las explicaciones que he encontrado en el foro, y ya sea porque no están bien explicadas o porque soy un torpe (que es lo mas seguro) no consigo hacerlo funcionar.

Si alguien lo tiene implementado y quisiera explicármelo paso a paso para que lo pueda entender un TORPE se lo agradecería.

Muchas gracias a todos por intentar ayudar.

Un saludo.
« Last Edit: August 23, 2012, 11:53:47 am by juanjo13 »

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #1 on: August 16, 2012, 10:17:13 am »
Hola juanjo13,

Puedes explicar en breve, que has hecho hasta ahora? Tambien es util saber como es tu configuración de red.
Aqui tenemos expertos en wpad, asi que trataremos de ayudar.

Saludos.
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
Re: WPAD
« Reply #2 on: August 16, 2012, 11:52:47 am »
Gracias Escorpion por contestar.

En primer lugar seguí este hilo:
http://forum.zentyal.org/index.php/topic,5932.msg24189.html#msg24189
El problema encontrado es que se basa en pfsense y la ruta que indicaba para colocar el wpad.dat no la encontré.

A continuación intente seguir la documentación de zentyal:
http://trac.zentyal.org/wiki/Documentation/Community/HowTo/SelectRightHTTPproxyDesign
pero dado mi desconocimiento del inglés, aunque utilice la traducción del google y posiblemente el mal entendimiento de lo que estaba leyendo no conseguí hacerlo funcionar.

Mi configuración de red es simple, dos tarjetas de red (wan, lan), dhcp activado, perfiles de filtrado por usuarios y grupos. La intención es tener el proxy no transparente para que sin cambiar nada en los navegadores de los portátiles y gracias al WPAD estos tengan que pasar por el proxy obligatoriamente.

La opción del proxy no transparente es para poder autorizar y filtrar a los usuarios y de esta forma tener un mayor control sobre donde pueden navegar (la implementación seria en un Instituto de Secundaria, con la opción del proxy transparente al ser lo portátiles de su propiedad, son los famosos portátiles del 1x1, se instalan el ultrasurf y se saltan el proxy)

Muchas gracias a todos.

Un saludo

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #3 on: August 17, 2012, 03:40:05 am »
Ok, ya entendí.
Primero que todo, has probado la opción proxy transparente, y luego proxy no-transparente configurando los navegadores, funciona de esta forma?
Esto con el fin de asegurar que funciona la red, luego seguimos con la configuración de wpad.

En el tutorial de wpad hay dos opciones para la configuración de wpad, DHCP o DNS. Cual es la opción que usaste, y cual es el punto que no te quedo claro?

Code: [Select]
Then decide about method that fits the best for you:

 1 - DHCP is the one tried first by client... but Zentyal doesn't permit to easily configure new DHCP options. Still you can do it manually in /usr/share/ebox/stubs or better using hooks ​http://trac.zentyal.org/wiki/Documentation/Community/HowTo/CustomizeConfigFiles

 2 – DNS, with the “well known aliases” method, is easier because, if your clients FQDN is, thanks to DHCP, inherited from domain name, then browser will search for wpad.(whatever).yourdomain[4]. Let's make it clearer
you domain is "mydomain.com"
client, thanks to DHCP is known as "client.private.mydomain.com"
WPAD mechanism will search in DNS for
wpad.private.mydomain.com
wpad.mydomain.com

 If you have set up such name in your DNS pointing to web server described above, you're done :-)

 Another option, starting with Zentyal 2.2, is to maintain SRV and TXT records.

Saludos.
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
Re: WPAD
« Reply #4 on: August 17, 2012, 07:57:11 pm »
Hola Escorpiom de nuevo y gracias por contestar.

Si, el proxy transparente funciona perfectamente. El proxy no-transparente también siempre que se configuren los navegadores.

En el tutorial la opción 1 DHCP no la entendí.

La opción 2 es la que estuve investigando y creo que donde cometo el error es en el apartado mydomain.com. La opción  SRV y TXT no la entiendo. El ultimo paso crear el archivo WPAD, creo que esto es lo único que he logrado hacer correctamente.

Muchas gracias.

Un saludo

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #5 on: August 18, 2012, 01:58:58 pm »
Bien, ahi llegamos a la parte interesante.
El tutorial se refiere a tu dominio, por supuesto no puedes especificar "mydomain.com" pero debes usar tu propio dominio, por ejemplo  juanjo13.com.
Luego es necesario crear una entrada DNS, para que los clientes pueden encontrar el archivo wpad, tal como aparece en el ejemplo.
Para esto se crea un "alias" que apunta a tu servidor.

Registros srv y txt son registros de los servidores DNS, podemos modificar estos registros para crear subdominios etc.
El procedimiento exacto es otra cosa, hasta ahora no he usado el mecanismo wpad, pero segun entiendo Christian tiene experiencia con wpad. 

Saludo.

Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
Re: WPAD
« Reply #6 on: August 19, 2012, 09:52:19 am »
Hola Escorpiom.

Por mas intentos que hago no consigo hacerlo funcionar, supongo que es debido a mi torpeza, te pongo los pasos que hago y me dices donde meto la pata:

El archivo wpad.dat queda como sigue:

function FindProxyForURL(url, host)
{
   if (isInNet(host, "192.168.0.0", "255.255.255.0")) {
      return "DIRECT";
   } else {
      if (shExpMatch(url, "http:*"))
         return "PROXY juanjo13.com:3128" ;
      if (shExpMatch(url, "https:*"))
         return "PROXY juanjo13.com:3128" ;
      if (shExpMatch(url, "ftp:*"))
         return "PROXY juanjo13.com:3128" ;
      return "DIRECT";
   }
}

Este archivo lo coloco en: srv/www/juanjo13.com (no se si sera el lugar correcto)

Muchas gracias.

Un saludo



« Last Edit: August 19, 2012, 10:16:51 am by juanjo13 »

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #7 on: August 20, 2012, 10:03:22 am »
El archivo va mejor en

/var/www

Y la entrada DNS debe existir, de tal forma que los clientes pueden encontrar el archivo.

Saludos.
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
Re: WPAD
« Reply #8 on: August 21, 2012, 05:15:31 pm »
Hola Escorpiom.

Perdona por mi torpeza pero estoy mas perdido que un pulpo en un garaje.

Creo que ya he hecho todas las combinaciones posibles (menos una evidentemente) y no consigo hacerlo funcionar.

Un par de cosas:

A que te refieres con : "Y la entrada DNS debe existir, de tal forma que los clientes pueden encontrar el archivo"

El "ALIAS" esta bien el que tengo puesto, (www).

Muchas gracias de nuevo.

Un saludo.

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #9 on: August 23, 2012, 03:26:45 am »
"www" en sí no es un alias.

Lo que trata de explicar Christian es que la entrada DNS permite a los clientes encontrar el archivo wpad, solo colocando "www" no es suficiente.
En el caso tuyo, es probable que no estan correctamente puesto las entradas DNS, y por lo tanto los clientes no logran encontrar el archivo.
Voy a pedir a Christian que nos da la mano, aunque el no habla Español, puedo traducirlo.
 
Saludos.
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

christian

  • Guest
Re: WPAD
« Reply #10 on: August 23, 2012, 08:07:19 am »
Hi folks,

I'll reply in English because I definitely can't speak or even right in Spanish and do not trust Google or Babelfish to produce accurate enough translation.

WPAD concept is pretty simple but implementation in Zentyal is not straightforward because this is not taken in account and Zentyal brings some limitations.

1 - the easiest way, kind of, is to tweak DHCP module, adding one line in with "option 252". However, this means CLI instead of GUI and use of hook at the end makes it not so easy. I did it with previous Zentyal version.

2 - Since I reinstalled my server, I tested another approach that is using GUI only. Let me try to describe it hereafter.

Principle is what I've described in this documentation. But Zentyal DNS module doesn't permit to create "A" record for host that already exists.
Trick here is to:
- create network virtual interface attached to internal interface so that you get one dedicated IP. Here Zentyal internal IP is 192.168.10.254 (all my default gateways are at .254  ;) ) I just added virtual interface with 192.168.10.252 (.253 being already in use)
- Add "wpad" DNS entry (hostname, meaning A record) pointing to 192.168.10.252
- create virtual host (web server): wpad.mydomain
- for some strange reason, web virtual hosts are not, by default, storing files in /var/www but in /usr/www  ::)  either you put there your proxy.pac  or wpad.dat or you will have to edit /etc/apache2/sites-available/ebox-wpad.mydomain file.
- Be sure you added, in DNS, TXT record containing "service: wpad:!http://wpad.mydomain:80/proxy.pac" and also SRV record pointing to wpad host created earlier.

I hope this helps.



juanjo13

  • Zen Apprentice
  • *
  • Posts: 11
  • Karma: +1/-0
    • View Profile
Re: WPAD (solucionado)
« Reply #11 on: August 23, 2012, 11:15:15 am »
Hola a todos y muchas gracias.

Por fin esta solucionado, el problema ha sido mi poca paciencia (los ordenadores tardan del orden de 2 a 5 minutos en coger el wpad.dat) el motivo no lo se.

Voy a enumerar los pasos que he seguido:

1- IP ZENTYAL: 192.168.2.1

2- DOMINIO: wpad.juanjo13.com

3- RED - DNS: En "Lista de traductores de servidores de nombre de Dominio" nada. En "Dominio de Búsqueda" wpad.juanjo13.com

4- SERVIDOR WEB: En "Hosts virtuales" he creado wpad.juanjo13.com

5- DNS: Tengo habilitado el cache de DNS transparente. Dentro de dominio wpad.juanjo13.com la ip es 192.168.2.1, en "Alias" que esta dentro de "nombre de maquina" tengo puesto lo siguiente sin las comillas, "www" "wpad" "wpad.juanjo13.com" "wpad.private.juanjo13.com", (se que solo una funciona pero al realizar tantas pruebas fui poniendo alias a la desesperada por mi poca paciencia)

6- wpad.dad: Esta dentro de "/var/www" y el texto es el siguiente:

function FindProxyForURL(url, host)
{
   if (isInNet(host, "192.168.0.0", "255.255.255.0")) {
      return "DIRECT";
   } else {
      if (shExpMatch(url, "http:*"))
         return "PROXY wpad.juanjo13.com:3128" ;
      if (shExpMatch(url, "https:*"))
         return "PROXY wpad.juanjo13.com:3128" ;
      if (shExpMatch(url, "ftp:*"))
         return "PROXY wpad.juanjo13.com:3128" ;
      return "DIRECT";
   }
}

7- PROXY HTTP: "Proxy transparente" desactivado. En "Política predeterminada" tengo puesto Autorizar y filtrar.

8- CORTAFUEGOS - FILTRADO DE PAQUETES - REGLAS DE FILTRADO PARA LAS REDES INTERNAS: Elimino la que viene por defecto que deja entrar a cualquiera. (con esto consigo que ni el "ULTRASURF" se pueda saltar el proxy)

9- USUARIOS Y GRUPOS: He creado dos usuarios y dos grupos. Para de este modo poderlos filtrar.

10- PERFILES DE FILTRADO: He creado dos uno para cada grupo. Uno con una configuración muy restrictiva.

11- POLÍTICA DE GRUPO: Una para cada GRUPO con su respectivo PERFIL DE FILTRADO.

12- NAVEGADORES: Esta probado en Internet Explorer, Chome y Mozilla firefox. El funcionamiento perfecto siempre que este activado la detección automática del proxy.

13- Y por último esperar unos minutos con el ordenador conectado a la red hasta que coja el wpad.dat.


Lo que he conseguido con el WPAD ha sido un control total sobre las ordenadores portátiles particulares a los que no tengo acceso, incluido ULTRASURF. Por eso creo que seria muy interesante que esta opción estuviera incluida de forma nativa en ZENTYAL.

Perdonad si he cometido algún error y si es así pues a corregirlo.

Lo próximo sera incluir el WPAD en una red con diferentes VLANS. Si alguien lo ha realizado le agradecería que me ilumine.

Un saludo a todos, y agradecer a Escorpiom y Chistian la paciencia que yo no suelo tener.
« Last Edit: August 23, 2012, 11:41:35 am by juanjo13 »

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: WPAD
« Reply #12 on: August 23, 2012, 12:11:34 pm »
Que bueno que pudiste solucionarlo, aunque creo que no todo esta bien configurado. Primero traduzco la explicación de Christian:

Quote from: christian
Hola mi gente,

Voy a contestar en Ingles porque definitivamente no hablo ni escribo Español y no confío que el traductor Google o Babelfish me producen una traducción lo suficiente preciso.
El concepto de WPAD es sencillo pero la implementación en Zentyal no es tan fácil porque no viene por defecto con Zentyal, e entonces conlleva algunas limitaciones.

1 - La manera mas facil, mas o menos, es una configuración en el modulo DHCP, agregando una linea con "option 252". Mas sin embargo, esto significa usar la consola en vez de GUI e usar "ganchos" no lo hace tan fácil al final. Yo lo hice en versiones anteriores de Zentyal.

2 - Cuando re-configuré mi servidor, he ensayado con otro método, usando unicamente la interfaz gráfica. Dejame explicarlo enseguida.
En principio es lo que ya había explicado en esta documentación. Pero Zentyal no permite la creación de un registro "A" para un host que ya existe.
El truco es:       
- crear una interfaz de red virtual, atada a la interfaz interna asi que vas a tener una IP dedicada. Aqui, la IP de Zentyal es 192.168.10.254 (todas mis puertas de enlace estan en .254) y solo agregue una interfaz virtual con la IP 192.168.10.252 (.253 ya esta en uso)
- Agregar una entrada DNS "wpad" (nombre de host, significa un registro "A") apuntando a 192.168.10.252
- Crear un host virtual (web server): wpad.mydomain
- Por una extraña razón, los archivos de web virtual hosts no se guardan por defecto en /var/www pero en cambio en /usr/www.
Así que ahí es donde colocas el archivo proxy.pac o wpad.dat o sino, debes editar el archivo /etc/apache2/sites-available/ebox-wpad.mydomain.
- Asegurate que agregaste, en DNS, un registro TXT con el contenido "service: wpad:!http://wpad.mydomain:80/proxy.pac" y también un registro SRV apuntando al host wpad creado previamente.

Espero que esto ayuda.

Phew! Un Holandes traduciendo al Español un Frances que escribe en Ingles. Esto es una sopa internacional  ;D

Saludos.
« Last Edit: August 23, 2012, 12:29:08 pm by Escorpiom »
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...

LLiLo

  • Zen Apprentice
  • *
  • Posts: 18
  • Karma: +0/-0
    • View Profile
Re: {RESUELTO} WPAD
« Reply #13 on: June 04, 2013, 04:50:40 am »
He intentado esto, pero solamente funciona para le internet explorer Chrome y Firefox no me pide la autenticación del proxy