[RESUELTO] AYUDA CON WPAD (Proxy No transparente Automático)



  • Amigos del foro, les solicito su apoyo, se que el tema ya está muy trillado, pero por más que leo los manuales de javcasta, no logro echarlo a andar…

    Pondré toda la configuración posible para que me echen la mano.

    Todo lo que he visto, es para una sola RED o LAN, yo tengo múltiples Vlans y es un dolor de cabeza no poder usar el proxy transparente para el filtrado de contenidos.

    Les agradezco nuevamente su apoyo.

    Saludos
    ![DIAGRAMA GENERAL - VISTA GENERAL.jpg](/public/imported_attachments/1/DIAGRAMA GENERAL - VISTA GENERAL.jpg)
    ![DIAGRAMA GENERAL - VISTA GENERAL.jpg_thumb](/public/imported_attachments/1/DIAGRAMA GENERAL - VISTA GENERAL.jpg_thumb)



  • Pongo aquí mi archivo proxy.pac

    y aprovecho para una pregunta.. qué significa el DIRECT??
    y también… si uno implementa esta configuración, todos deben de pasar por el proxy ??

    
    // Ponga el código aquí.
    function FindProxyForURL(url, host) {
        //proxy  wpad.dragonesceb.local:3128 == 192.168.1.1:3128;
        var wpad = "PROXY wpad.dragonesceb.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 dragonesceb.local;
        if (shExpMatch(host, ".dragonesceb.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";
        //mis redes privadas;
        if (isInNet(dnsResolve(host), "192.168.13.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.14.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.15.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.16.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.17.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.18.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.19.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.20.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.21.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.22.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.23.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.24.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.25.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.26.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.27.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.28.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.29.0", "255.255.255.0")) return "DIRECT";
        if (isInNet(dnsResolve(host), "192.168.30.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;
    }
    
    

    Utilizo el DNS Resolver, dejo una imagen de los Host Overrides

    Y como ejemplo, tomaré solamente la Vlan 14, pongo imagen de la configuración del DHCP (adjunto imagen)

    Ngix escucha sobra la dirección física de la LAN 192.168.1.1

    Agrego la imagen de las reglas de firewall de la vlan 14










  • Estas usando pfsense o un servidor web externo?

    Un observacion, ningun servidor web usa UDP para trabajar, en tus reglas puedes eliminar TCP/UDP hacia el pfsense y dejar solo TCP.

    Has seguido este manual?

    https://doc.pfsense.org/index.php/WPAD_Autoconfigure_for_Squid

    Tu archivo esta muy avanzado, inicia por lo basico como lo indica el manual.

    Saludos.



  • Ok, vamos avanzando… el servidor de nginx desde la vlan 14, al escribir wpad.dragonesceb.local responde con la página default del servidor, pero si pongo wpad.dragonesceb.local, está aferrado a contestar con https, aún cuando en el nginx.conf dice 192.168.1.1:80...

    viendo con el wireshark me marca que efectivamente lo cambia al https y me da un error 301






  • Limpia el cache de tus navegadores, ngix que solo responda por el 80, wpad no trabaja en https.



  • Bueno ya limpié el cache.. y he optado por otra opción.

    No usar el pfsense como servidor http, ahora utilizo otra computadora en el 192.168.8.250 con nginx y ya funciona, he logrado recibir el archivo proxy.pac, wpad.dat y wpad.da

    El proxy sigue estando en el pfsense y aquí es lo interesante… Creo que ahora el detalle está en el archivo proxy.pac

    La dirección IP de la tarjeta de red física (LAN) es la 192.168.1.1

    Actualmente, si yo quiero poner la Vlan14 con  192.168.14.0/24, para que pase por el proxy, lo hago de manera manual, y el proxy es el 192.168.14.1:3128 que es la IP virtual de la interface con el pfsense.

    Creo que para usar el wpad, todos tendrían que ir al 192.168.1.1:3128, es así ???

    Creo que ahora todo pasa al archivo proxy.pac y las reglas de firewall

    alguien sabe si el que uso actualmente, está correcto??



  • Ya no logré hacer las pruebas al 100%, ya que hoy salimos temprano y prácticamente me sacaron de la escuela  ;D

    Pero al parecer ya funciona!!

    Había un pequeño detalle en la configuración del squid, donde le dices las interfaces donde va a escuchar, yo en el archivo proxy.pac, le decía que vaya a la 192.168.1.1, la cual es la IP de la LAN, pero no había seleccionado la LAN en el squid, solo las vlans  ::)

    Ya les digo que pasa el día lunes…

    Saludos


Log in to reply