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

    [GUIA] Proxy HTTP/HTTPS + SquidGuard + sgerror.php + WPAD via DHCP e DNS 100%

    Scheduled Pinned Locked Moved Portuguese
    182 Posts 40 Posters 55.9k 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.
    • R
      Rene_Probst
      last edited by

      boa tarde;

      Vcs Saberiam me dizer onde que fica o arquivo sgerror.php (pagina de bloqueio do squid guard) gostaria de colocar uma personalizada.

      1 Reply Last reply Reply Quote 0
      • L
        leo_pfsense
        last edited by

        Oi Rene,

        Procura através do comando "find / -name sgerror.php"

        Ele vai retornar onde está. Se você configurou o ambiente com o script do marcelloc vai estar numa pasta wpad0. É esse que vc muda. Terá outro também na www mas o que está valendo é a dentro da pasta wpad0.

        1 Reply Last reply Reply Quote 0
        • B
          brunok
          last edited by

          @guitarcleiton:

          @brunok:

          Tem contato com o Shell?

          Me mostre a saída do comando:

          cat /usr/local/etc/nginx/nginx_wpad*.conf
          

          Refiz as configurações dei um reboot no firewall e acabou o problema de conflito na porta 80.

          o problema agora é a pagina de erro que não são interpretada pelo php, sempre que vai efetuar o bloqueio é feito o download do sgerror, em qualquer navegador e em qualquer computador da rede.

          
          # nginx configuration file
                  user  root wheel;
                  worker_processes  10;
                  pid     /var/run/nginx_wpad0.pid;
                  error_log  syslog:server=unix:/var/run/log,facility=local5;
                  events {
                      worker_connections  1024;
                  }
                  http {
                          include       /usr/local/etc/nginx/mime_wpad.types;
                          default_type  application/octet-stream;
                          sendfile        on;
                          access_log      syslog:server=unix:/var/run/log,facility=local5 combined;
                          keepalive_timeout 65;
                          server {
                                  listen 192.168.0.1:80;
                                  server_name wpad.localdomain
                                  server name 127.0.0.1
                                  client_max_body_size 200m;
          
                                  root "/usr/local/www/wpad0/";
          
                                  location / {
                                          index index.php sgerror.php index.html index.htm;
                                  }
          
                                  location ~ \.php$ {
                                          try_files $uri =404; #  This line closes a potential security hole
                                          # ensuring users can't execute uploaded files
                                          # see: http://forum.nginx.org/read.php?2,88845,page=3
                                          fastcgi_pass   unix:/var/run/php-fpm.socket;
                                          fastcgi_index  index.php;
                                          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                                          # Fix httpoxy - https://httpoxy.org/#fix-now
                                          fastcgi_param  HTTP_PROXY  "";
                                          fastcgi_read_timeout 180;
                                          include        /usr/local/etc/nginx/fastcgi_params;
                                  }
          
                          }
          
          

          Este arquivo é gerado pelo pacote WPAD que o Marcello criou.
          Aparentemente, está diferente do meu, que eu tinha aqui no manual. Talvez as atualizações que ele fez, pode estar conflitando com alguma coisa.

          Faça o seguinte:

          Substitua o conteúdo do arquivo, por este

          
          # nginx configuration file
          worker_processes  10;
          pid     /var/run/nginx_wpad0.pid;
          
          events {
              worker_connections  1024;
          }
          
          http {
                  include       /usr/local/etc/nginx/mime.types;
                  default_type  application/octet-stream;
                  sendfile        on;
                  keepalive_timeout 65;
                  server {
                          listen 192.168.0.1;
                          server_name wpad.localdomain
                          server name 127.0.0.1
                          client_max_body_size 200m;
          
                          root "/usr/local/www/wpad0/";
          
                          location ~ \.php$ {
          
                                  try_files $uri =404;
                                  fastcgi_pass   unix:/var/run/php-fpm.socket;
                                  fastcgi_index  index.php;
                                  fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                  fastcgi_read_timeout 180;
                                  include        /usr/local/etc/nginx/fastcgi_params;
          
                          }
          
                  }
          
          }
          
          

          Depois, reinicie a instância do nginx, ou reinicia o servidor e testa novamente.

          1 Reply Last reply Reply Quote 0
          • J
            julioelbueno
            last edited by

            Parabéns pelo Manual, funcionou muito bem, está bem explicativo, até para quem não tem tanto conhecimento.
            E sobre dar a mensagens para paginas HTTPS tem alguma novidade?

            1 Reply Last reply Reply Quote 0
            • L
              leo_pfsense
              last edited by

              Beleza jamers!

              Pessoal, estou com uma questão com o seguinte cenário:

              • Wan
              • LanA: 192.168.28.1/22
              • LANB: 192.168.50.1/24

              Configurei o wpad para ser disponibilizado através da LanB (192.168.50.1). Tudo certo, funcional para as duas interfaces LAN. Porém, após o primeiro host da LanA estar conectado ao pfSense, surge no pfSense mensagens de erro (anexo).

              Tal situação não ocorre se apenas hosts da LanB forem conectados ao firewall. Mesmo surgindo as mensagens de erro o wpad funciona para a LanA, mas gostaria de saber o que está acontecendo.

              Desde já agradeço o apoio!

              ningx_erro.png
              ningx_erro.png_thumb

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

                Está usando a última versão do pacote?

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

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • G
                  guitarcleiton
                  last edited by

                  @leo_pfsense:

                  Beleza jamers!

                  Pessoal, estou com uma questão com o seguinte cenário:

                  • Wan
                  • LanA: 192.168.28.1/22
                  • LANB: 192.168.50.1/24

                  Configurei o wpad para ser disponibilizado através da LanB (192.168.50.1). Tudo certo, funcional para as duas interfaces LAN. Porém, após o primeiro host da LanA estar conectado ao pfSense, surge no pfSense mensagens de erro (anexo).

                  Tal situação não ocorre se apenas hosts da LanB forem conectados ao firewall. Mesmo surgindo as mensagens de erro o wpad funciona para a LanA, mas gostaria de saber o que está acontecendo.

                  Desde já agradeço o apoio!

                  Eu estava com esse mesmo problema, existe um conflito na porta 80, não sei se é funcional ou foi conhecidencia, mas eu fiz o seguinte:
                  no pacote Wpad desativei o serviço.
                  reboot no firewall
                  novamente no pacote ative o serviço.

                  estou tentando chegar a uma conclusão e solução, mas aqui os conflitos cessaram mas ainda estou com problema da 2º instância não interpretar o PHP.

                  Analista de Sistemas
                  Bacharel em Sistemas de Informação

                  https://cleiton.tech.blog/

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

                    O meu wpad interpreta php normalmente. Não está confundindo a saída do sgerror sem parâmetros? Ele realmente parece que esta estático mas não é.

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

                    Help a community developer! ;D

                    1 Reply Last reply Reply Quote 0
                    • B
                      brunok
                      last edited by

                      Para quem estiver com os seguintes problemas:

                      Baixa o sgerror.php ao invés de interpretar a página;

                      OU

                      Erros no log, indicando conflito na porta 80;

                      Troquem o conteúdo do arquivo /usr/local/etc/nginx/nginx_wpad.conf* por este abaixo.

                      
                      # nginx configuration file
                      worker_processes  10;
                      pid     /var/run/nginx_wpad0.pid;
                      
                      events {
                          worker_connections  1024;
                      }
                      
                      http {
                              include       /usr/local/etc/nginx/mime.types;
                              default_type  application/octet-stream;
                              sendfile        on;
                              keepalive_timeout 65;
                              server {
                                      listen 192.168.0.1;
                                      server_name wpad.localdomain
                                      server name 127.0.0.1
                                      client_max_body_size 200m;
                      
                                      root "/usr/local/www/wpad0/";
                      
                                      location ~ \.php$ {
                      
                                              try_files $uri =404;
                                              fastcgi_pass   unix:/var/run/php-fpm.socket;
                                              fastcgi_index  index.php;
                                              fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                              fastcgi_read_timeout 180;
                                              include        /usr/local/etc/nginx/fastcgi_params;
                      
                                      }
                      
                              }
                      
                      }
                      

                      *** Não se esqueçam de alterar o IP LAN e o DOMINIO.

                      ** Reiniciar o server

                      *** Testar**

                      1 Reply Last reply Reply Quote 0
                      • L
                        leo_pfsense
                        last edited by

                        Bom dia pessoal!

                        • marcelloc, a versão que utilizei foi baixada a uns 20 dias pelo menos, não sei se é a última, então vou configurar um ambiente novo para testar;

                        • Caso continue dando erro, vou seguir a orientação do guitarcleiton;

                        • Caso continue dando erro vou seguir a orientação do brunok.

                        Agradeço o apoio de vocês, nos próximos dias posto o resultado.

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

                          @leo_pfsense:

                          • marcelloc, a versão que utilizei foi baixada a uns 20 dias pelo menos, não sei se é a última, então vou configurar um ambiente novo para testar;

                          Habilita o repositório e instala ele via interface web ou executa o script de instalação dele novamente.

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

                          Help a community developer! ;D

                          1 Reply Last reply Reply Quote 0
                          • L
                            leo_pfsense
                            last edited by

                            Olá pessoal,

                            Configurei um server novo e está funcional, sem erros.

                            Obrigado!

                            marcelloc, você aconselha setar quantos Max Processes no script do wpad?

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

                              @leo_pfsense:

                              marcelloc, você aconselha setar quantos Max Processes no script do wpad?

                              Depende do tamanho da rede, mas 10 acho que é um numero bom.

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

                              Help a community developer! ;D

                              1 Reply Last reply Reply Quote 0
                              • R
                                Rene_Probst
                                last edited by

                                @leo_pfsense:

                                Oi Rene,

                                Procura através do comando "find / -name sgerror.php"

                                Ele vai retornar onde está. Se você configurou o ambiente com o script do marcelloc vai estar numa pasta wpad0. É esse que vc muda. Terá outro também na www mas o que está valendo é a dentro da pasta wpad0.

                                Blz fecho achei o arquivo consegui edita-lo sem problemas valeu…

                                1 Reply Last reply Reply Quote 0
                                • G
                                  guitarcleiton
                                  last edited by

                                  Acho que eu sou o sem sorte, outro servidor e mesmo problema de conflito na porta 80

                                  resultado do log de instalação

                                  Configuring package components...
                                  Loading package instructions...
                                  Custom commands...
                                  Executing custom_php_resync_config_command()...nginx: [emerg] bind() to 192.168.0.1:80 failed (48: Address already in use)
                                  nginx: [emerg] bind() to 192.168.0.1:80 failed (48: Address already in use)
                                  nginx: [emerg] bind() to 192.168.0.1:80 failed (48: Address already in use)
                                  nginx: [emerg] bind() to 192.168.0.1:80 failed (48: Address already in use)
                                  nginx: [emerg] bind() to 192.168.0.1:80 failed (48: Address already in use)
                                  nginx: [emerg] still could not bind()
                                  done.
                                  Menu items... done.
                                  Writing configuration... done.
                                  >>> Cleaning up cache... done.
                                  Success
                                  
                                  

                                  Analista de Sistemas
                                  Bacharel em Sistemas de Informação

                                  https://cleiton.tech.blog/

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

                                    tente abrir o wpad. Se abrir nao tem conflito.

                                    Esta usando o repositório ou instalou via script?

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

                                    Help a community developer! ;D

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      guitarcleiton
                                      last edited by

                                      @marcelloc:

                                      tente abrir o wpad. Se abrir nao tem conflito.

                                      Esta usando o repositório ou instalou via script?

                                      Instalei via repositório, quando voce diz abrir wpad seria acessar pelo navegador?
                                      se eu tento acessar o .dat .da .pac via http://meuip/wpad.* ele me retorna "403 Forbidden"

                                      Analista de Sistemas
                                      Bacharel em Sistemas de Informação

                                      https://cleiton.tech.blog/

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        guitarcleiton
                                        last edited by

                                        Marcelo acho que resolvi o problema de conflito, vou testar em mais ambientes para ter a certeza.

                                        Quem estiver com os mesmos problemas se puder testar, agradeceremos!

                                        no arquivo /usr/local/etc/nginx/nginx.conf alterei de listen 192.168.0.1:80;para```
                                        listen 192.168.0.1:8080;

                                        
                                        reinicia o server e conflitos cessaram.

                                        Analista de Sistemas
                                        Bacharel em Sistemas de Informação

                                        https://cleiton.tech.blog/

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

                                          O nginx.conf é da interface web do pfSense.
                                          Provavelmente você não passou ela pra https.

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

                                          Help a community developer! ;D

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            guitarcleiton
                                            last edited by

                                            @marcelloc:

                                            O nginx.conf é da interface web do pfSense.
                                            Provavelmente você não passou ela pra https.

                                            Sim, correto, não sei se alterando na interface web ele deveria alterar ali, mas ajustando manualmente para uma porta alternativa funcionou.

                                            Trabalhar sem https é correr riscos desnecessários.

                                            Minha base é antiga já passou por diversos upgrades, também não sei se isso pode influenciar em algo.

                                            Agora estou tentando entender o código para saber o motivo da 2º instancia não interpretar o PHP.

                                            Analista de Sistemas
                                            Bacharel em Sistemas de Informação

                                            https://cleiton.tech.blog/

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