Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Captive portal e Wpad/Dat no Pfsense 2.3.4

    Scheduled Pinned Locked Moved Portuguese
    29 Posts 3 Posters 4.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • empbillyE
      empbilly
      last edited by

      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.

      https://eliasmoraispereira.wordpress.com/

      1 Reply Last reply Reply Quote 0
      • H
        Helpfast
        last edited by

        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!

        1 Reply Last reply Reply Quote 0
        • empbillyE
          empbilly
          last edited by

          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.

          https://eliasmoraispereira.wordpress.com/

          1 Reply Last reply Reply Quote 0
          • H
            Helpfast
            last edited by

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

            1 Reply Last reply Reply Quote 0
            • H
              Helpfast
              last edited by

              Cadê os amigos do fórum? Hehehe

              1 Reply Last reply Reply Quote 0
              • marcellocM
                marcelloc
                last edited by

                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/

                Treinamentos de Elite: http://sys-squad.com

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • H
                  Helpfast
                  last edited by

                  @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

                  1 Reply Last reply Reply Quote 0
                  • marcellocM
                    marcelloc
                    last edited by

                    // 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

                    Treinamentos de Elite: http://sys-squad.com

                    Help a community developer! ;D

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helpfast
                      last edited by

                      @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!

                      1 Reply Last reply Reply Quote 0
                      • marcellocM
                        marcelloc
                        last edited by

                        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";
                        
                        }
                        
                        

                        Treinamentos de Elite: http://sys-squad.com

                        Help a community developer! ;D

                        1 Reply Last reply Reply Quote 0
                        • H
                          Helpfast
                          last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • marcellocM
                            marcelloc
                            last edited by

                            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.

                            Treinamentos de Elite: http://sys-squad.com

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • H
                              Helpfast
                              last edited by

                              @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!

                              1 Reply Last reply Reply Quote 0
                              • marcellocM
                                marcelloc
                                last edited by

                                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.

                                patch_captive_portal.PNG
                                patch_captive_portal.PNG_thumb

                                Treinamentos de Elite: http://sys-squad.com

                                Help a community developer! ;D

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Helpfast
                                  last edited by

                                  @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

                                  1 Reply Last reply Reply Quote 0
                                  • marcellocM
                                    marcelloc
                                    last edited by

                                    @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…

                                    Treinamentos de Elite: http://sys-squad.com

                                    Help a community developer! ;D

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      Helpfast
                                      last edited by

                                      @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!

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        Helpfast
                                        last edited by

                                        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!

                                        1 Reply Last reply Reply Quote 0
                                        • empbillyE
                                          empbilly
                                          last edited by

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

                                          https://eliasmoraispereira.wordpress.com/

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            Helpfast
                                            last edited by

                                            @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!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.