PfSense 2.3 – WPAD con nginx
-
juancho…imagino que si modificamos desde el gui la opcion de http o https en Opciones generales, se puerde todo lo que hayamos puesto manualmente en el archivo de nginx?
saludos
-
Hola
El fichero "/usr/local/etc/nginx/nginx.conf" es independiente de la instancia nginx de la GUI de pfSense.
Si analizas su conf del fichero original, está perfilado para que escuche por defecto en el tcp80 (HTTP)
Así que yo lo que hago es lanzar una instancia de ngninx para que escuche en el tcp80 en el servidor wpad.undominio.algo para que brinde el proxy.pac / wpad.dat / wpad.da
Si reviertes a HTTP la GUI de pfSense no va a funcionar, ya que hay 2 instancias de nginx escuchando en el mismo puerto (tcp80) a la vez
Salu2
nota: No me llamo Juancho.
-
Una pregunta si uso esta configuracion con proxy modo transparente
como seria la parte de: Host Overrides, uso el rango de ip en lan 192.168.255.0"http://wpad.sequreisphome.net/proxy.pac"
"http://wpad.sequreisphome.net/wpad.dat"
"http://wpad.sequreisphome.net/wpad.da" -
Hola
Si usas el proxy squid en modo transparente, WPAD no vale para nada, WPAD es para modo no transparente y que los navegadores de los clientes autodetecten la config del proxy vía dhcp y/o query DNS y obtengan el fichero de conf proxy.pac o wpad.dat o wpad.da vía query http
Salu2
-
Ok hermano en ese caso me gustaria saber lo que pregunte anteriormente para implemetarlo tal como tu lo haces sin modo transparente
-
Hola
Puedes configurarlo vía
- script cli: https://forum.pfsense.org/index.php?topic=112715.msg628966#msg628966
- script gui: https://forum.pfsense.org/index.php?topic=113441.0
Y si lo haces a mano, se crea un Host Override o entrada en unbound para wpad-undominio.algo <–-> ip lan o de la interfaz pfSense donde los clientes vía http obtengan el proxy.pac, etc: http://wpad.undominio.algo/proxy,pac
Salu2
Nota: No soy tu hermano, no sea que mi hermano real piense que le suplantas :) jaja
-
Ok disculpa lo de hermano no era mi intencion ofender mil disculpas
-
Ciero ya vi, el proceso del gui toma la configuracion de
/var/etc/nginx-webConfigurator.conf
buenos tips que posteas
saludos
Hola
El fichero "/usr/local/etc/nginx/nginx.conf" es independiente de la instancia nginx de la GUI de pfSense.
Si analizas su conf del fichero original, está perfilado para que escuche por defecto en el tcp80 (HTTP)
Así que yo lo que hago es lanzar una instancia de ngninx para que escuche en el tcp80 en el servidor wpad.undominio.algo para que brinde el proxy.pac / wpad.dat / wpad.da
Si reviertes a HTTP la GUI de pfSense no va a funcionar, ya que hay 2 instancias de nginx escuchando en el mismo puerto (tcp80) a la vez
Salu2
nota: No me llamo Juancho.
-
Que tal @Javcasta muy bueno el tutorial sobre wpad, aun no implemento. Sólo tengo una duda: Qué sucede cuando wpad solo sirve para que el navegador tenga salida a internet, pero no los programas que hacen usao de la configuración del proxy de manera global?
Espero haberme explicado
-
Hola y ante todo muchas gracias por tu aporte y por tu ayuda.
Tengo dos dudas:
La primera es si debo configurar algo en la parte NAT del firewall y la segunda es como debo configurar el proxy.pac si tengo varias vlan configuradas en pfsense y la ip de mi lan es la 10.0.0.1/24
vlan102 (10.0.102.1/24)
vlan103 (10.0.103.1/24)
…..
.....Es así:
function FindProxyForURL(url, host) {
//proxy 10.0.0.1:3028; by Javcasta
var wpad = "PROXY wpad.localdomain.lan:3028";
host = host.toLowerCase();
var hostIP = dnsResolve(host);
if (hostIP == 0) return wpad;
if (isPlainHostName(host)) return "DIRECT";
if (shExpMatch(host, ".local")) return "DIRECT";
//mi dominio localdomain.lan;
if (shExpMatch(host, ".localdomain.lan")) return "DIRECT";
//redes privadas;
if (isInNet(dnsResolve(host), "127.0.0.0", "255.0.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.255.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.255.255.0")) return "DIRECT";
//mi red privada;
if (isInNet(dnsResolve(host), "10.0.0.0", "255.255.255.0")) return "DIRECT";
//end mi red privada;
if (isInNet(dnsResolve(host), "IP de la vlan102", "255.255.255.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "IP de la vlan103", "255.255.255.0")) return "DIRECT";
if (shExpMatch(host, "fe80::")) return "DIRECT";
if (shExpMatch(url, "http:")) return wpad;
if (shExpMatch(url, "https:*")) return wpad;
return wpad;
}He aplicado esta regla a la vlan102 que es con la que estoy probando y si desactivo la ultima regla no puedo navegar. ¿Que estoy haciendo mal?. Tengo la sensacion de que el problema puede estar en la configuracion de mis dns. Mi dashboard me muestra:
DNS server(s)
127.0.0.1
80.58.61.250
80.58.61.254
194.179.1.100
194.179.1.101Y en servicios tengo activado el dns resolver y configurado tal y como indicas el host override. Si ejecuto:
Shell Output - nslookup wpad 10.0.0.1
Server: 10.0.0.1
Address: 10.0.0.1#53** server can't find wpad: NXDOMAIN
y si ejecuto:
Shell Output - nslookup wpad.localdomain.lan 10.0.0.1
Server: 10.0.0.1
Address: 10.0.0.1#53Name: wpad.localdomain.lan
Address: 10.0.0.1Muchas gracias.
-
A ver si alguien me puede echar una mano ya que no consigo que funcione correctamente. Mi error esta o en las reglas o en el proxy.pac.
Mi lan tiene la ip 10.0.0.1/24, pero yo estoy intentando hacerlo funcionar desde una vlan (10.0.102.1/24). Mas adelante configurare mas vlan y una interfaz para servir wifi (172.30.0.1/23) con portal cautivo y dhcp.El caso es que ahora medio funciona pero va muy mal. Tarda mucho en cargar cualquier pagina desde los clientes. Estas son mis reglas en la vlan y la primera la pongo porque sino no me sirve el proxy.pac,wpad.dat, wpad.da, es decir, puedo hacer ping a wpad.localdomain.local, pero si hago http://wpad.localdomain.local entonces no lo coge:
Y este es mi proxy.pac/wpad.dat/wpad.da alojado en /usr/local/www/nginx
function FindProxyForURL(url, host) {
var wpad = "PROXY wpad.localdomain.local:3128";
host = host.toLowerCase();
var hostIP = dnsResolve(host);
if (hostIP == 0) return wpad;
if (isPlainHostName(host)) return "DIRECT";
if (shExpMatch(host, ".local")) return "DIRECT";
//mi dominio localdomain.local;
if (shExpMatch(host, ".localdomain.local")) return "DIRECT";
//redes privadas;
if (isInNet(dnsResolve(host), "127.0.0.0", "255.0.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.255.0.0")) return "DIRECT";
if (isInNet(dnsResolve(host), "10.0.0.0", "255.255.255.0")) return "DIRECT";
//mi red privada;
if (isInNet(dnsResolve(host), "10.0.102.0", "255.255.255.0")) return "DIRECT";
//end mi red privada;
if (isInNet(dnsResolve(host), "172.30.0.0", "255.255.254.0")) return "DIRECT";
if (shExpMatch(host, "fe80::")) return "DIRECT";
if (shExpMatch(url, "http:")) return wpad;
if (shExpMatch(url, "https:*")) return wpad;
return wpad;
}Mi cliente de ejemplo tiene ip 10.0.102.19/24 puerta de enlace 10.0.102.1 y dns 10.0.0.1
Gracias.
-
Hola, yo también tengo tu mismo problema, no me coge el archivo pac, dat, o da….
Lo voy a volver a intentar hoy.
La última vez, me quedé sin Internet, y tuve que aplicar un respaldo porque no logré revertir >.<
Lamento que tenga que abrir este post, pero prefiero para no abrir un nuevo hilo
De antemano gracias