Captive portal e Wpad/Dat no Pfsense 2.3.4



  • Antes de mais nada, peço desculpas por postar algo tão comentado por aqui!

    Sobre o Captive portal, a pergunta é bem simples:

    É possível cadastrar usuários que tem privilégios sob o servidor?

    São 3 os administradores da escola, e eles precisam ter acesso sem restrição a internet, com fazer?

    –-------------- WPAD ----------------

    Sou novo no Pfsense, peço desculpas!

    Estou com a versão 2.3.4, rodando squid, squidguard…

    Estou com dificuldade em trabalhar somente com o modo transparente, devido alguns sites que o meu cliente precisa que sejam bloqueados, serem HTTPS.

    Não consegui também, fazer o squidguard trabalhar corretamente com o squid, mesmo baixando a black list e selecionando as regras ACLS, ele não bloqueia nem por reza, passa batido, portanto, deixei somente Squid no servidor.

    Precisamente, estou desde hoje as 13:00 até agoa, 00:40 tentando fazer a configuração do WPAD/DAT neste servidor, já li mais de uns 20 tutoriais, sempre um ou outro resulta no erro e o serviço não caminha...

    Passei tempos nestes dois:

    https://nguvu.org/pfsense/pfSense-2.3-WPAD-PAC-proxy-configuration-guide/
    https://forum.pfsense.org/index.php?topic=114686.0
    https://www.javcasta.com/pfsense-2-3-wpad-con-nginx/

    Sem sucesso, quando não é um problema, é outro, principalmente para fazer o server wpad funcionar...

    Este servidor em questão, é também o DHCP da rede...

    Alguém teria um outro caminho pra me fornecer?

    Grato até o momento!

    Bom dia a todos!



  • Antes de mais nada, peço desculpas por postar algo tão comentado por aqui!

    Sobre o Captive portal, a pergunta é bem simples:

    É possível cadastrar usuários que tem privilégios sob o servidor?

    São 3 os administradores da escola, e eles precisam ter acesso sem restrição a internet, com fazer?

    A liberação do acesso sem restrição pode ser feito com regras no firewall. Tu pode setar um IP estático no pc de cada um dos administradores, criar um Alias com os 3 IPs e depois liberar eles na tua LAN.

    Sou novo no Pfsense, peço desculpas!

    Estou com a versão 2.3.4, rodando squid, squidguard…

    Estou com dificuldade em trabalhar somente com o modo transparente, devido alguns sites que o meu cliente precisa que sejam bloqueados, serem HTTPS.

    Você esta tentando no modo transparente com interceptação SSL?

    Não consegui também, fazer o squidguard trabalhar corretamente com o squid, mesmo baixando a black list e selecionando as regras ACLS, ele não bloqueia nem por reza, passa batido, portanto, deixei somente Squid no servidor. Precisamente, estou desde hoje as 13:00 até agoa, 00:40 tentando fazer a configuração do WPAD/DAT neste servidor, já li mais de uns 20 tutoriais, sempre um ou outro resulta no erro e o serviço não caminha…

    Como estão tuas configurações? Poste algumas printscreens.



  • A liberação do acesso sem restrição pode ser feito com regras no firewall. Tu pode setar um IP estático no pc de cada um dos administradores, criar um Alias com os 3 IPs e depois liberar eles na tua LAN.

    Certo, na verdade, essa foi a primeira idéia que dei para ele, porém, ele perguntou do tipo, chegar com outro computador, que não tem o IP ESTÁTICO, não teria o acesso privilegiado…

    Você esta tentando no modo transparente com interceptação SSL?

    Estava tentando de todas as formas, mas, neste momento, seguindo este tutorial ( http://www.friendsti.com.br/tutorial-configurando-wpad-utilizando-dhcp-do-pfsense/ ) porém, criando os arquivos diretos via shell "ee", obtive exito no bloqueio, desativando claro, o modo transparente…

    Uma dúvida, e se um aluno ir lá, e alterar as configurações de proxy, ou mesmo levar um computador novo, ele terá acesso SSL liberado?

    Se sim, existe uma forma de resolver?

    Como estão tuas configurações? Poste algumas printscreens.

    Estou com problemas agora, rodando o squid + squidguard, ele bloqueia tudo, principalmente o site da escola, rsrsrs…

    Captive portal, ainda não configurei, mas ele não vem a ser o grande problema, só poderia ter uma forma, de um usuário ter um acesso total, com as configurações automáticas, não?

    Alguma alternativa ao uso do captive portal? Vi que quando coloco ele junto a autenticação no squid, ele bloqueia tudo também, fico sem acesso...

    Seguem as imagens!



  • Certo, na verdade, essa foi a primeira idéia que dei para ele, porém, ele perguntou do tipo, chegar com outro computador, que não tem o IP ESTÁTICO, não teria o acesso privilegiado…

    Como não são muitos usuários com esse acesso privilegiado, ficaria mais facil setar um IP para esse novo computador e adicioná-lo no Alias de liberação. Pode ser feito também com a integração do squid + squidguar com um AD/ldap. Ai tu faz a liberação por usuário.

    Uma dúvida, e se um aluno ir lá, e alterar as configurações de proxy, ou mesmo levar um computador novo, ele terá acesso SSL liberado?

    Se sim, existe uma forma de resolver?

    Terá acesso liberado. O que tu pode fazer é deixar somente a entrada no firewall de liberação para a porta do proxy.

    https://forum.pfsense.org/index.php?topic=118346.0

    Nesse link acima tem um tutorial bem completo e nas respostas do tópico tem algo relacionado as regras de firewall. Só dar uma lida.

    Estou com problemas agora, rodando o squid + squidguard, ele bloqueia tudo, principalmente o site da escola, rsrsrs…

    Squidguard > Common ACL > Target Categories, no final tem a opção "default" que por padrão vem em "Deny". Mude para "Allow" e trabalhe do principio de deixar tudo liberado e ir bloqueando conforme tua necessidade. Caso já esteja em "Allow" é alguma configuração errada que tu possui.

    Captive portal, ainda não configurei, mas ele não vem a ser o grande problema, só poderia ter uma forma, de um usuário ter um acesso total, com as configurações automáticas, não?

    Até poderia, mas acredito que não seja o intuito do captiveportal.

    Alguma alternativa ao uso do captive portal? Vi que quando coloco ele junto a autenticação no squid, ele bloqueia tudo também, fico sem acesso…

    Acredito que seja algo relacionado a regra "Default" do Target Categories. Dá uma olhada nisso.



  • Como não são muitos usuários com esse acesso privilegiado, ficaria mais facil setar um IP para esse novo computador e adicioná-lo no Alias de liberação. Pode ser feito também com a integração do squid + squidguar com um AD/ldap. Ai tu faz a liberação por usuário.

    Qual seria a solução mais fácil? Minha cabeça não aguenta mais pensar e dar soluções diferentes pro cliente, hehe, toda hora a idéia de acesso dele muda… haha

    Terá acesso liberado. O que tu pode fazer é deixar somente a entrada no firewall de liberação para a porta do proxy.

    https://forum.pfsense.org/index.php?topic=118346.0

    Nesse link acima tem um tutorial bem completo e nas respostas do tópico tem algo relacionado as regras de firewall. Só dar uma lida.

    Vou dar uma lida sim, vamos ver se não é muito complexo pra mim! rsrs

    Squidguard > Common ACL > Target Categories, no final tem a opção "default" que por padrão vem em "Deny". Mude para "Allow" e trabalhe do principio de deixar tudo liberado e ir bloqueando conforme tua necessidade. Caso já esteja em "Allow" é alguma configuração errada que tu possui.

    Exatamente isso, alterei aqui, e vou testar.

    Até poderia, mas acredito que não seja o intuito do captiveportal.

    Acredito que seja algo relacionado a regra "Default" do Target Categories. Dá uma olhada nisso.

    Cheguei a ver a configuração, vou continuar mexendo, mas, de antemão, avisar que por senha, logando no captive portal, não será possível…. você comentou do AD/ldap, é complexa a configuração? Foge do que estou rodando por aqui?

    Notei que usando o Squid + Squid Guard, a conexão flui devagar, é motivado por alguma configuração errada?

    A princípio, muito obrigado pela ajuda até agora!

    Edit: Creio que com a configuração automática de Proxy, provida do Wpad, fiquei sem acesso ao captive portal, não aparece a tela de Login…

    Este é o meu wpad.dat:

    function FindProxyForURL(url, host){
    var host_ip;
    //Exceção por rede de destino
    host_ip= dnsResolve(host);
    if (isInNet(host_ip, “127.0.0.1”, “255.255.255.255”))
    return “DIRECT”;
    if (isInNet(host_ip, “10.10.0.0”, “255.255.255.0”))
    return “DIRECT”;
    if (localHostOrDomainIs(host, “.listenx.lan”))
    return “DIRECT”;
    else
    return “PROXY 10.10.0.1:3128”;
    }
    

    Alguma coisa que eu possa alterar, para que ele faça somente a utilização do Proxy quando for Https?

    Na opção Dns Forwarder, coloquei além de criar o novo host, coloquei o gateway da rede, domínio e dns do servidor…

    Para o momento, é só o que falta...



  • Cadê os amigos do fórum? Hehehe



  • Essa é fácil de achar no Google.

    Veja as variáveis de teste em um wpad nos exemplos deste site
    https://auth0.com/blog/heads-up-https-is-not-enough-when-using-wpad/



  • @marcelloc:

    Essa é fácil de achar no Google.

    Veja as variáveis de teste em um wpad nos exemplos deste site
    https://auth0.com/blog/heads-up-https-is-not-enough-when-using-wpad/

    Já devo ter lido quase todos os tópicos do Google, hahahaha

    Alguns eu vi, mas eram bem complicados para o meu conhecimento restrito, haha

    Vou tentar, posso pedir ajuda qualquer coisa?

    Grato



  • // If the protocol or URL matches, send direct.
        if (url.substring(0, 5)=="https:" ||
            shExpMatch(url, "http://abcdomain.com/folder/*"))
            return "DIRECT";
    
    

    Exemplo de código wpad



  • @marcelloc:

    // If the protocol or URL matches, send direct.
        if (url.substring(0, 5)=="https:" ||
            shExpMatch(url, "http://abcdomain.com/folder/*"))
            return "DIRECT";
    
    

    Exemplo de código wpad

    Certo, me desculpe tantas perguntas que para seu nível, são simples, mas realmente sou novo nessa história! Rsrs

    Eu postei exatamente o meu wpad, quais alterações baseados neste exemplo que você postou, eu devo fazer?

    E, em relação a segurança, caso a pessoa retire a configuração de Proxy, existe uma forma de ainda bloquear o Facebook e demais https listados na blacklist?

    No aguardo!



  • Helpfast,

    Se não conseguiu identificar onde encaixar o código que postei no seu wpad, pode significar que você não está sabendo exatamente o que fazer nem como configurar um script. Sugiro a você buscar um treinamento para melhorar suas habilidades com firewall.
    Na parte de cima do fórum tem bastante tutorial, no youtube também e na minha assinatura, um link para treinamento no pfSense.

    @Helpfast:

    Este é o meu wpad.dat:

    function FindProxyForURL(url, host){
    var host_ip;
    //Exceção por rede de destino
    host_ip= dnsResolve(host);
    if (isInNet(host_ip, “127.0.0.1”, “255.255.255.255”))
    return “DIRECT”;
    if (isInNet(host_ip, “10.10.0.0”, “255.255.255.0”))
    return “DIRECT”;
    if (localHostOrDomainIs(host, “.listenx.lan”))
    return “DIRECT”;
    else
    return “PROXY 10.10.0.1:3128”;
    }
    

    olha o padrão da sintaxe:

    
    // If the protocol or URL matches, send direct.
        if (url.substring(0, 5)=="https:" ||
            shExpMatch(url, "http://abcdomain.com/folder/*"))
            return "DIRECT";
    
    

    se o que quer é usar proxy somente para ssl com proxy marcado, por mais esquisito que isso possa parecer, o seu arquivo ficaria assim:

    
    function FindProxyForURL(url, host){
    var host_ip;
    /
    /Exceção por rede de destino
    host_ip= dnsResolve(host);
    
    if (isInNet(host_ip, "127.0.0.1", "255.255.255.255"))
    return "DIRECT";
    if (isInNet(host_ip, "10.10.0.0","255.255.255.0"))
    return "DIRECT";
    if (localHostOrDomainIs(host, ".listenx.lan"))
    return "DIRECT";
    
    if (url.substring(0, 6)=="https:")
       return "PROXY 10.10.0.1:3128";
    else
       return "DIRECT";
    
    }
    
    


  • @marcelloc:

    Helpfast,

    Se não conseguiu identificar onde encaixar o código que postei no seu wpad, pode significar que você não está sabendo exatamente o que fazer nem como configurar um script. Sugiro a você buscar um treinamento para melhorar suas habilidades com firewall.
    Na parte de cima do fórum tem bastante tutorial, no youtube também e na minha assinatura, um link para treinamento no pfSense.

    @Helpfast:

    Este é o meu wpad.dat:

    function FindProxyForURL(url, host){
    var host_ip;
    //Exceção por rede de destino
    host_ip= dnsResolve(host);
    if (isInNet(host_ip, “127.0.0.1”, “255.255.255.255”))
    return “DIRECT”;
    if (isInNet(host_ip, “10.10.0.0”, “255.255.255.0”))
    return “DIRECT”;
    if (localHostOrDomainIs(host, “.listenx.lan”))
    return “DIRECT”;
    else
    return “PROXY 10.10.0.1:3128”;
    }
    

    olha o padrão da sintaxe:

    
    // If the protocol or URL matches, send direct.
        if (url.substring(0, 5)=="https:" ||
            shExpMatch(url, "http://abcdomain.com/folder/*"))
            return "DIRECT";
    
    

    se o que quer é usar proxy somente para ssl com proxy marcado, por mais esquisito que isso possa parecer, o seu arquivo ficaria assim:

    
    function FindProxyForURL(url, host){
    var host_ip;
    /
    /Exceção por rede de destino
    host_ip= dnsResolve(host);
    
    if (isInNet(host_ip, "127.0.0.1", "255.255.255.255"))
    return "DIRECT";
    if (isInNet(host_ip, "10.10.0.0","255.255.255.0"))
    return "DIRECT";
    if (localHostOrDomainIs(host, ".listenx.lan"))
    return "DIRECT";
    
    if (url.substring(0, 6)=="https:")
       return "PROXY 10.10.0.1:3128";
    else
       return "DIRECT";
    
    }
    
    

    Desculpe a falta de conhecimento, e sim, irei procurar tutoriais para ler e aprender, sempre.

    A minha intenção, era somente ter o captive portal de volta, usando da forma que está, com wpad.

    Li em outro lugar, que fazendo isso, iria funcionar, mas, vejo estar enganado…

    Poderia me responder sobre isso?

    Un abraço, e obrigado até agora.



  • Tenta o modo transparente com o modo splice all habilitado na interceptação de ssl e veja se o resultado é o que precisa.

    dispositivos móveis (celulares e tablets) ignoram a configuração automática e precisam ser configurados um a um para utilização de proxy no wifi.



  • @marcelloc:

    Tenta o modo transparente com o modo splice all habilitado na interceptação de ssl e veja se o resultado é o que precisa.

    dispositivos móveis (celulares e tablets) ignoram a configuração automática e precisam ser configurados um a um para utilização de proxy no wifi.

    As configurações estão desta forma…

    https://image.ibb.co/bJbbt5/squid_ssl_pfsense.png

    https://image.ibb.co/cp0KD5/SSL_Interception_pfsense.png

    Apaguei as configurações do captive portal e criei novamente, mesmo assim, não passa por ele....

    As máquinas recebem normalmente as configurações de proxy, mas, o cliente quer o captive portal...

    O que pode estar faltando?

    Obrigado até agora!



  • você está precisando aplicar um patch que o pacote tinha mas foi removido.

    veja o que precisa ser alterado nesse link

    https://redmine.pfsense.org/issues/5594

    muito cuidado ao editar arquivos do sistema operacional.




  • @marcelloc:

    você está precisando aplicar um patch que o pacote tinha mas foi removido.

    veja o que precisa ser alterado nesse link

    https://redmine.pfsense.org/issues/5594

    muito cuidado ao editar arquivos do sistema operacional.

    Obrigado, irei ver aqui…

    De qualquer forma, fazendo um backup, se der algo errado, formato e busco tudo via backup, certo?

    Um abraço



  • @Helpfast:

    De qualquer forma, fazendo um backup, se der algo errado, formato e busco tudo via backup, certo?

    é só um arquivo. você pode fazer o backup localmente mesmo…



  • @marcelloc:

    @Helpfast:

    De qualquer forma, fazendo um backup, se der algo errado, formato e busco tudo via backup, certo?

    é só um arquivo. você pode fazer o backup localmente mesmo…

    Tranquilo…

    Eu até olhei, tentei entender, mas não adianta, como é algo novo pra mim, não vou arriscar a escrever esse patch...

    Marcelo, obrigado pela ajuda, acho que irei retirar o wpad e mandar os bloqueios somente em HTTP mesmo, ai o captive portal funciona... posso até procurar um outro meio de fechar https de outra forma que o captive funcione, mas....

    Eu pego as coisas, vou lendo e mexendo e faço dar certo, mas, como foge da minha área de trabalho, é complicado dominar técnicas ou ter o "feeling" da coisa, pra fazer dar certo...

    A imagem do patch, que está anexado no tópico, é exatamente o necessário pra rodar aqui?

    Consigo os códigos, ou são privados?

    Grato!



  • Opa Marcelo, bom dia!

    Só vim para avisar, que contratamos um serviço de Hotspot, Tanaza, para o cliente, assim, pularemos o Captive portal.

    Existe uma outra maneira, de bloquear uns 5 sites específicos HTTPS, fora ao uso do WPAD?

    Obrigado!



  • @Helpfast:

    Opa Marcelo, bom dia!

    Só vim para avisar, que contratamos um serviço de Hotspot, Tanaza, para o cliente, assim, pularemos o Captive portal.

    Existe uma outra maneira, de bloquear uns 5 sites específicos HTTPS, fora ao uso do WPAD?

    Obrigado!

    Squid + squidguard e interceptação ssl no modo Splice ALL. Dessa forma tu não precisa setar proxy e nem instalar certificado nas máquinas dos clientes. Aqui no fórum tem vários tópicos sobre o assunto.



  • @empbilly:

    @Helpfast:

    Opa Marcelo, bom dia!

    Só vim para avisar, que contratamos um serviço de Hotspot, Tanaza, para o cliente, assim, pularemos o Captive portal.

    Existe uma outra maneira, de bloquear uns 5 sites específicos HTTPS, fora ao uso do WPAD?

    Obrigado!

    Squid + squidguard e interceptação ssl no modo Splice ALL. Dessa forma tu não precisa setar proxy e nem instalar certificado nas máquinas dos clientes. Aqui no fórum tem vários tópicos sobre o assunto.

    Desculpe a pergunta, mas como eu configuro a interceptação ssl? O modo Splice All já está setado, creio que eu precise ativar a opção do Ssl filtering, pra que isso funcione, certo?

    Após, desativo o dns forwarder e apago o wpad?

    Obrigado pela ajuda!



  • @Helpfast:

    Desculpe a pergunta, mas como eu configuro a interceptação ssl? O modo Splice All já está setado, creio que eu precise ativar a opção do Ssl filtering, pra que isso funcione, certo?

    Após, desativo o dns forwarder e apago o wpad?

    Obrigado pela ajuda!

    Ative a opção ssl filtering. Não precisa desativar o dns forwarder ou dns resolver e apagar ou não o wpad, fica a seu critério.



  • @marcelloc:

    @Helpfast:

    Desculpe a pergunta, mas como eu configuro a interceptação ssl? O modo Splice All já está setado, creio que eu precise ativar a opção do Ssl filtering, pra que isso funcione, certo?

    Após, desativo o dns forwarder e apago o wpad?

    Obrigado pela ajuda!

    Ative a opção ssl filtering. Não precisa desativar o dns forwarder ou dns resolver e apagar ou não o wpad, fica a seu critério.

    Ativei, criei um certificado interno no servidor, ao meu ver, essa criação não precisa seguir um padrão, e sim, somente configurar as telas, certo?

    O que acontece, mesmo assim, já havia testado, o captive portal não aparece…

    Digamos, sem a distribuição do wpad com as informações do Proxy, deveria funcionar o captive portal, não?

    Obrigado a todos, no aguardo!



  • A interceptação de ssl não tem relação com o captive portal.

    Configure um site http no navegador para ser a página inicial e coloque ele no bypass do squid em modo transparente. Dessa forma ao abrir o navegador, você vai cair no captive.



  • @marcelloc:

    A interceptação de ssl não tem relação com o captive portal.

    Configure um site http no navegador para ser a página inicial e coloque ele no bypass do squid em modo transparente. Dessa forma ao abrir o navegador, você vai cair no captive.

    Putz, muito obrigado!!!

    Por que então, após eu ter feito a configuração do wpad, perdi o acesso ao captive portal?

    Eu estava tendo acesso normal, porém, ao usar o Proxy automático, parou…

    Pode me responder?



  • @Helpfast:

    Eu estava tendo acesso normal, porém, ao usar o Proxy automático, parou…

    Pode me responder?

    Quando você configura uma conexão direto a um serviço/porta do firewall, sem o patch, ele permite comunicação local sem autenticação no captive.



  • @Helpfast:

    @marcelloc:

    A interceptação de ssl não tem relação com o captive portal.

    Configure um site http no navegador para ser a página inicial e coloque ele no bypass do squid em modo transparente. Dessa forma ao abrir o navegador, você vai cair no captive.

    Putz, muito obrigado!!!

    Por que então, após eu ter feito a configuração do wpad, perdi o acesso ao captive portal?

    Eu estava tendo acesso normal, porém, ao usar o Proxy automático, parou…

    Pode me responder?

    Tu tem alguma regra de firewall redirecionando tudo pra porta 3128?



  • @marcelloc:

    @Helpfast:

    Eu estava tendo acesso normal, porém, ao usar o Proxy automático, parou…

    Pode me responder?

    Quando você configura uma conexão direto a um serviço/porta do firewall, sem o patch, ele permite comunicação local sem autenticação no captive.

    Entendi…

    Bom, fiz as configurações e não foi, resolvei por restaurar um backup que tinha mais antigo, e começar de novo...

    Pois bem, tenho o captive portal funcionando e autenticando normalmente, porém, quando marcado o SSL Filtering, eu tenho erro de certificado nos sites HTTPS...

    Nem foi preciso por a pagina no bypass, abriu a tela do captive normalmente...

    O que pode ser agora?

    Grato!



  • @empbilly:

    @Helpfast:

    @marcelloc:

    A interceptação de ssl não tem relação com o captive portal.

    Configure um site http no navegador para ser a página inicial e coloque ele no bypass do squid em modo transparente. Dessa forma ao abrir o navegador, você vai cair no captive.

    Putz, muito obrigado!!!

    Por que então, após eu ter feito a configuração do wpad, perdi o acesso ao captive portal?

    Eu estava tendo acesso normal, porém, ao usar o Proxy automático, parou…

    Pode me responder?

    Tu tem alguma regra de firewall redirecionando tudo pra porta 3128?

    Tinha, porém, como não tive sucesso, tirei as regras…

    Neste momento, tenho o captive portal, com as restrições, basta ver os erros de certificado.

    Abraços!


Log in to reply