PfSense 2.3 – WPAD con nginx



  • Hola

    Un aporte.

    He actualizado el procedimiento para WPAD para pfSense 2.3.

    Lo tengo en: https://www.javcasta.com/pfsense-2-3-wpad-con-nginx/

    (como mejora: He adaptado el proxy.pac/wpad.dat/wpad.da para todas las redes privadas locales y pongo como ejemplo enlaces locales ipv6.)

    ======

    Al actualizarse pfSense a la versión 2.3, ha cambiado su servidor web a nginx.

    Por lo que actualizo el procedimiento para WPAD con pfSense 2.3.:
    Escenario:
    ◾IP LAN del pfSense (y por lo tanto del proxy (paquete Squid)): 10.168.0.254
    ◾Puerto del proxy: 3028
    ◾Dominio: localdomain.local
    ◾Paquete Squid instalado y configurado en modo NO transparente

    PROCEDIMIENTO:
    ◾Revertimos la GUI a HTTP
    ◾Creamos las entradas 252 en el servicio DHCP Server:

    option 252 <-string-> “http://wpad.localdomain.local/wpad.dat”
    option 252 <-string-> “http://wpad.localdomain.local/wpad.da”
    option 252 <-string-> “http://wpad.localdomain.local/proxy.pac”
    
    

    ◾Crear en DNS resolver un host overrides:

    wpad.localdomain.local <—> 10.168.0.254
    

    ◾Reiniciar servicios: Unbound y dhcpd

    ◾Editar /usr/local/etc/nginx/mime.types , y añadir:

    application/x-ns-proxy-autoconfig     pac;
     application/x-ns-proxy-autoconfig     dat;
     application/x-ns-proxy-autoconfig     da;
    
    

    • Idem para "/usr/local/etc/nginx/mime.types-dist"

    (Nota: Lo que tengo la duda es si pfsense guardará en un reinicio los cambios en mime.types y mime.types-dist, pero bueno, como no se reinicia a diario el firewall, ya lo investigaré para que sean persitentes los cambios)

    ◾Alojar en la ruta /usr/local/www el fichero proxy.pac , tal que:

    function FindProxyForURL(url, host) {
    //proxy  10.168.0.254:3028; by Javcasta
    var wpad = "PROXY wpad.localdomain.local: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.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.168.0.0", "255.255.255.0")) return "DIRECT";
    //end mi red privada;
    if (isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) return "DIRECT";
    if (isInNet(dnsResolve(host), "192.168.0.0", "255.255.255.0")) return "DIRECT";
    if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0")) return "DIRECT";
    if (shExpMatch(host, "fe80::*")) return "DIRECT";
    if (shExpMatch(url, "http:*")) return wpad;
    if (shExpMatch(url, "https:*")) return wpad;
    return wpad;
    }
    
    

    ◾Desde Shell: Crear enlaces simbólicos a wpad.dat y wpad.da

    ln -s /usr/local/www/proxy.pac /usr/local/www/wpad.dat
    ln -s /usr/local/www/proxy.pac /usr/local/www/wpad.da
    
    

    ◾Configurar reglas para que el tráfico se enrute vía proxy.

    ◾Monitorizar vía Shell si hay tráfico por el proxy

     tail -f /var/squid/logs/access.log
    

    ◾ 1460618082.435  78309 10.168.0.11 TCP_TUNNEL/200 5760 CONNECT forum.pfsense.org:443 - HIER_DIRECT/208.123.73.18 -
    1460618082.627  78505 10.168.0.11 TCP_TUNNEL/200 10080 CONNECT forum.pfsense.org:443 - HIER_DIRECT/208.123.73.18 -
    1460618082.655  78539 10.168.0.11 TCP_TUNNEL/200 10607 CONNECT forum.pfsense.org:443 - HIER_DIRECT/208.123.73.18 -
    1460618089.242  86211 10.168.0.11 TCP_TUNNEL/200 57051 CONNECT forum.pfsense.org:443 - HIER_DIRECT/208.123.73.18 -

    ◾

    ◾Configurar navegadores clientes con “Autodetectar  o detectar la configuración automáticamente

    ◾Tareas por hacer: Sin revertir la GUI a HTTP >> ¿Crear otra instancia de nginx para http para el wpad?
    Se admiten ideas :)
    =====

    Salu2



  • Hola.

    Una ampliación al procedimiento para tener WPAD con ngnix en pfSense 2.3, sin revertir la GUI a HTTP.

    pfSense 2.3 – WPAD con ngnix sin revertir GUI a HTTP.
    https://www.javcasta.com/pfsense-2-3-wpad-con-ngnix-sin-revertir-gui-a-http/

    Salu2



  • Hola.

    Mi proxy.pac depurado:

    function FindProxyForURL(url, host) {
    //proxy  wpad.localdomain.local:3028 == 10.168.0.254:3028;
    var wpad = "PROXY wpad.localdomain.local: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.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.168.0.0", "255.255.255.0")) return "DIRECT";
    //end mi red privada;
    if (isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) return "DIRECT";
    if (isInNet(dnsResolve(host), "192.168.0.0", "255.255.255.0")) return "DIRECT";
    if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0")) return "DIRECT";
    if (shExpMatch(host, "fe80::*")) return "DIRECT";
    if (shExpMatch(url, "http:*")) return wpad;
    if (shExpMatch(url, "https:*")) return wpad;
    return wpad;
    }
    

    Muchas veces falla el WPAD por un proxy.pac/wpad.dat/wpad.da con algún error de sintaxis (es javascript).

    Para depurar el proxy.pac en windows, existe una utilidad de linea de comandos, llamada autoprox.exe.
    Se puede bajar de: http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10093-00-00-03-60-80-47/autoprox.zip

    Más info en:
    http://blogs.technet.com/b/emeaie/archive/2013/11/04/optimizing-performance-with-automatic-proxyconfiguration-scripts-pac.aspx

    Un ejemplo:

    C:\Windows>autoprox -h https://www.google.es
    The Winsock 2.2 dll was found okay
    Will call InternetInitializeAutoProxyDll with helper functions
    url: https://www.google.es
            Calling DetectAutoProxyUrl with PROXY_AUTO_DETECT_TYPE_DHCP first
            WPAD Location is: http://wpad.localdomain.local/proxy.pac
    wpad.dat file saved at C:\Users\ADMINI~1.LOC\AppData\Local\Temp\3A23.tmp
    Calling InternetInitializeAutoProxyDll with C:\Users\ADMINI~1.LOC\AppData\Local
    Temp\3A23.tmp
            Deleting the auto-config script temporary file :
        C:\Users\ADMINI~1.LOC\AppData\Local\Temp\3A23.tmp
            Calling InternetGetProxyInfo with url https://www.google.es and host www
    .google.es
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: 216.58.210.227
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    IsInNet called with lpszIPAddress: 216.58.210.227 lpszDest 127.0.0.0 lpszMask 25
    5.0.0.0
    IsInNet returning FALSE
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: 216.58.210.227
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    IsInNet called with lpszIPAddress: 216.58.210.227 lpszDest 10.0.0.0 lpszMask 255
    .0.0.0
    ….
    ...
    IsInNet returning FALSE
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: 216.58.210.227
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    IsInNet called with lpszIPAddress: 216.58.210.227 lpszDest 172.16.0.0 lpszMask 2
    55.240.0.0
    IsInNet returning FALSE

    ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.

    Ese código de error 0x3eb 1003 indica error de sintaxis en el proxy.pac.

    Una vez corregido, si vuelves a ejecutar la utilidad debe dar algo similar a:

    C:\Windows>autoprox -h https://www.google.es
    The Winsock 2.2 dll was found okay
    Will call InternetInitializeAutoProxyDll with helper functions
    url: https://www.google.es
            Calling DetectAutoProxyUrl with PROXY_AUTO_DETECT_TYPE_DHCP first
            WPAD Location is: http://wpad.localdomain.local/proxy.pac
    wpad.dat file saved at C:\Users\ADMINI~1.LOC\AppData\Local\Temp\1730.tmp
    Calling InternetInitializeAutoProxyDll with C:\Users\ADMINI~1.LOC\AppData\Local
    Temp\1730.tmp
            Deleting the auto-config script temporary file :
        C:\Users\ADMINI~1.LOC\AppData\Local\Temp\1730.tmp
            Calling InternetGetProxyInfo with url https://www.google.es and host www
    .google.es
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: 216.58.210.227
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    IsInNet called with lpszIPAddress: 216.58.210.227 lpszDest 127.0.0.0 lpszMask 25
    5.0.0.0
    IsInNet returning FALSE

    255.255.255.0
    IsInNet returning FALSE
    ResolveHostByName called with lpszHostName: www.google.es
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    ResolveHostByName called with lpszHostName: 216.58.210.227
    ResolveHostByName returning lpszIPAddress: 216.58.210.227
    IsInNet called with lpszIPAddress: 216.58.210.227 lpszDest 172.16.0.0 lpszMask 2
    55.240.0.0
    IsInNet returning FALSE
          Proxy returned for url https://www.google.es is:
    PROXY 10.168.0.254:3028

    Salu2



  • Hola.

    Sigo con la serie de posts sobre pfSense 2.3 como servidor WPAD con ngninx (sin revertir GUI a HTTP).
    ( http://www.javcasta.com/pfsense-2-3-wpad-con-ngnix-sin-revertir-gui-a-http/ )

    Ahora explico como Monitorizar WPAD con ngnix.

    Lo tengo en: http://www.javcasta.com/pfsense-2-3-monitorizar-wpad-con-ngnix/.

    –-=-=-=-=-

    Si se ha seguido en procedimiento:

    Una forma de habilitar los logs de la instancia de ngnix que sirve el wpad.dat/proxy.pac/wpad.da para Monitorizar WPAD o accesos a wpad.dat/wpad.da/proxy.pac
    Es:

    Crear una carpeta llamada ngnix en /var/log/

    Y en ese directorio crear un fichero llamado access.log

    desde shell como root:

    
    mkdir /var/log/ngnix
    echo > /var/log/ngnix/access.log
    
    

    Paramos ngnix
           ```
    /usr/local/etc/rc.d/nginx onestop

        Editar
        **/usr/local/etc/ngnix.conf**
    
    Y en su sección http, habilitar log_format main
    Y en su sección server, indicar donde tiene el log
    
    > #…
    >     http {
    >     include      mime.types;
    >     default_type  application/octet-stream;
    > 
    >   **log_format  main**  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
    >     ‘$status $body_bytes_sent “$http_referer” ‘
    >     ‘”$http_user_agent” “$http_x_forwarded_for”‘;
    > 
    >     #access_log  logs/access.log  main;
    > 
    >     sendfile        on;
    >     #tcp_nopush    on;
    > 
    >     #keepalive_timeout  0;
    >     keepalive_timeout  65;
    > 
    >     #gzip  on;
    > 
    >     #listen 80;
    >     #listen 443 default_server ssl;
    > 
    >     server {
    >     listen      10.168.0.254:80;
    >     server_name  wpad.localdomain.local;
    > 
    >     #charset koi8-r;
    >     **access_log  /var/log/ngnix/access.log  main;**
    >     #access_log  logs/host.access.log  main;
    >     #….
    
        Salvamos fichero
        Lanzamos ngninx:
           ```
    /usr/local/etc/rc.d/nginx onestart
    

    Desde shell podemos monitorizar los accesos a wpad.dat/proxy.pac/wpa.da

    tail -f "/var/log/ngnix/access.log" | grep -E "wpad.dat|proxy.pac|wpad.da"
    

    [2.3-RELEASE][root@pfSense3.localdomain.local]/root: tail -f "/var/log/ngnix/access.log" | grep -E "wpad.dat|proxy.pac|wpad.da"
    10.168.0.10 - - [20/Apr/2016:11:23:33 +0000] "GET /wpad.dat HTTP/1.1" 200 1215 "-" "Mozilla/4.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/2000000 Firefox/44.0" "-"
    10.168.0.12 - - [20/Apr/2016:11:29:00 +0000] "GET /wpad.dat HTTP/1.1" 200 1215 "-" "Dalvik/2.0.0 (Linux; U; Android 4.1.1; SM-T220 Build/NOY37X)" "-"
    10.168.0.12 - - [20/Apr/2016:11:29:01 +0000] "GET /wpad.dat HTTP/1.1" 200 1215 "-" "Dalvik/2.0.0 (Linux; U; Android 4.1.1; SM-T2200 Build/NOY37X)" "-"
    10.168.0.12 - - [20/Apr/2016:11:29:41 +0000] "GET /wpad.dat HTTP/1.1" 200 1215 "-" "Dalvik/2.0.0 (Linux; U; Android 4.1.1; SM-T2200 Build/NOY37X)" "-"
    10.168.0.11 - - [20/Apr/2016:11:31:54 +0000] "GET /wpad.dat HTTP/1.1" 200 1215 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/2000000 Firefox/44.0" "-"
    10.168.0.11 - - [20/Apr/2016:11:37:51 +0000] "GET /proxy.pac HTTP/1.1" 304 0 "-" "WinHttp-Autoproxy-Service/5.1" "-"

    Si deseas verlo desde navegador. Crea un fichero wpad-mon.php en “/usr/local/www/wpad-mon.php”

    tal que contenga:

    /*
    wpad-mon.php
    by Javier Castañón - https://javcasta.com/ - PIyMenta 2016
    VorumServer 2.0 SecureLAN
    
    */
    echo "
    
    ## Monitor WPAD
    
    ";
    $ejecutar = "tail -50 /var/log/ngnix/access.log | grep -E 'wpad.dat|wpad.da|proxy.pac'";
    $salida2 = shell_exec($ejecutar);
    "
    
    * * *
    
    ";
    echo "Ultimos 50 accesos a wpad.dat / wpad.da / proxy.pac"."
    ";
    echo "==================================================="."
    ";
    echo "```
    $salida2
    ```";
    echo "
    
    * * *
    
    ";
    echo "[By Javier Castañon - javcasta - PIyMenta 2016](https://javcasta.com/)";
    ?>
    

    Y lo abres desde navegador: https://wpad.localdomain.local/wpad-mon.php

    O si tienes un widget personal (como estoy implementandolo en VorumServer 2 SecureLAN, aprovecho para incluirlo)
    puedes incluir un link a https://wpad.localdomain.local/wpad-mon.php y desde el dashboard lo tienes disponible

    ref Como crear widgets >> https://doc.pfsense.org/index.php/Creating_widgets

    Salu2



  • quiero ser como tu.



  • @Finger:

    quiero ser como tu.

    jajajajajaja



  • Hola.

    Se nota que es viernes … jaja, buen finde :)

    Salu2



  • 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

    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

    @javcasta:

    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.101

    Y 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#53

    Name: wpad.localdomain.lan
    Address: 10.0.0.1

    Muchas 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