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

    Port Forward - Multiplas URLS

    Scheduled Pinned Locked Moved Portuguese
    32 Posts 4 Posters 13.4k 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.
    • marcellocM Offline
      marcelloc
      last edited by

      se voce conseguiu ver a mesma página quer dizer que voce já conseguiu:

      • desativar o nat

      • desativar o http redirect da gui do pfsense

      • criar a regra na wan que libera acesso a porta 80

      • criar os backends.

      Muito bom.

      O proximo passo é definir que paginas cada backend responde.
      Vi nas suas telas que voce configurou a probe url.

      A probe url define que parte do site o varnish vai testar para saber se o servidor esta no ar ou não.
      precisar ser uma url completa e não o mapeamento do site:
      ex: http://www.meusite.com.br/index.php

      configura agora o backend mappings
      sua configuracao pode ficar assim:
      host equal omsteste1.dyndns-remote.com para um backend e
      host equal omsteste.dyndns-remote.com para o segundo backend

      Na nomeclatura do varnish, backend significa servidor web.
      Uma cofiguracao mais avançada é criar o backends sem nenhum mapeamento e atribuir os sites na aba load balancer.

      att,
      Marcello Coutinho

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

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 0
      • V Offline
        vromero.rj
        last edited by

        Marcelo,

        Mais uma vez obrigado pela atenção. Estarei efetuando os testes e te retorno com o feedback. Sua atenção foi de grande valia.

        Abraços

        1 Reply Last reply Reply Quote 0
        • V Offline
          vromero.rj
          last edited by

          Marcelo,

          Segui todas as dicas que me passou, mas não funciona..nao sei o que estou fazendo de errado. Agora nao abre a pagina. Só esta brindo quando coloco NAT.

          Segue o print das telas.

          abcs

          imagem1.JPG
          imagem1.JPG_thumb
          imagem2.JPG
          imagem2.JPG_thumb
          imagem3.JPG
          imagem3.JPG_thumb
          imagem5.JPG
          imagem5.JPG_thumb

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

            Posta o arquivo de configuracao(aba view configuration)

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

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • V Offline
              vromero.rj
              last edited by

              Varnish configuration file

              Automatically generated by the pfSense package system

              This file is located in /var/etc/default.vcl

              sub vcl_error {
              if (obj.status == 503 && req.restarts < 1) {
              restart;
              }

              set obj.http.Content-Type = "text/html; charset=utf-8";
              synthetic {"
              "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

              <title>"} obj.status " " obj.response {"</title>

              We are very sorry but an error occurred during this request.

              Please press refresh in your browser to try again.

              Varnish Error "} obj.status " " obj.response {"

              "} obj.response {"

              Guru Meditation:

              XID: "} req.xid {"

              "};
              return(deliver);

              }

              backend omstesteBACKEND {

              used in catch_all

              .host = "192.168.2.5";
              .port = "80";
              .first_byte_timeout = 300s;
              .connect_timeout = 25s;
              .probe = {
              .url = "http://omsteste.dyndns-remote.com/testando.htm";
              .interval = 1s;
              .timeout = 1s;
              .window = 5;
              .threshold = 5;
              }
              }

              backend omsteste1BACKEND {

              used in catch_all

              .host = "192.168.2.6";
              .port = "80";
              .first_byte_timeout = 300s;
              .connect_timeout = 25s;
              .probe = {
              .url = "http://omsteste1.dyndns-remote.com/index.htm";
              .interval = 1s;
              .timeout = 1s;
              .window = 5;
              .threshold = 5;
              }
              }

              sub vcl_recv {

              #BASIC VCL RULES SETTING
              #set X-forward
              set req.http.X-Forwarded-For = client.ip;

              if (req.http.host == "omsteste.dyndns-remote.com") {
              set req.backend = omstesteBACKEND;
              }
              else if (req.http.host == "omsteste1.dyndns-remote.com") {
              set req.backend = omsteste1BACKEND;
              }

              #respect client wish to refresh the page
              if (req.http.Pragma ~ "no-cache")
              {
              return(pass);
              }

              #BASIC VCL RULES ACTIONS
              #Disable session cache
              if (req.http.Cookie && req.http.Cookie ~ "(PHPSESSID|phpsessid)") {
              return(pass);
              }
              if (req.http.Cookie && req.http.Cookie ~ "(JSESSION|jsession)") {
              return(pass);
              }
              if (req.http.X-Requested-With == "XMLHttpRequest" || req.url ~ "nocache") {
              return(pass);
              }
              #Enable static cache
              if (req.request=="GET" && req.url ~ ".(css|js|txt|zip|pdf|rtf|flv|swf|html|htm)$") {
              unset req.http.cookie;
              return(lookup);
              }
              if (req.request=="GET" && req.url ~ ".(gif|jpg|jpeg|bmp|png|ico|img|tga|wmf|mp3|ogg)$") {
              unset req.http.cookie;
              return(lookup);
              }
              if (req.request != "GET" && req.request != "HEAD") {return(pipe);}

              return(lookup);
              }

              sub vcl_pipe {

              If we don't set the Connection: close header, any following

              requests from the client will also be piped through and

              left untouched by varnish. We don't want that.

              set req.http.connection = "close";

              Note: no "pipe" action here - we'll fall back to the default

              pipe method so that when any changes are made there, we

              still inherit them.

              }

              sub vcl_fetch {

              #Disable cache when backend is starting a session
              if (beresp.http.Set-Cookie && beresp.http.Set-Cookie ~ "(PHPSESSID|phpsessid)") {
              return(pass);
              }
              if (beresp.http.Set-Cookie && beresp.http.Set-Cookie ~ "(JSESSION|jsession)") {
              return(pass);
              }
              if (beresp.http.X-Requested-With == "XMLHttpRequest" || req.url ~ "nocache") {
              return(pass);
              }

              Varnish respects the wishes of the backend application.

              if (beresp.http.Pragma ~ "no-cache" || beresp.http.Cache-Control ~ "(no-cache|no-store|private)") {
              return(pass);
              }
                  ## If the request to the backend returns a code other than 200, restart the loop
                  ## If the number of restarts reaches the value of the parameter max_restarts,
                  ## the request will be error'ed.  max_restarts defaults to 4.  This prevents
                  ## an eternal loop in the event that, e.g., the object does not exist at all.
                  if (beresp.status != 200 && beresp.status != 403 && beresp.status != 404 &&
                  beresp.status != 303 && beresp.status != 302 && beresp.status != 301) {
              restart;
                      }

              return(deliver);
              }

              sub vcl_deliver {
              ##set resp.http.X-Served-By = server.hostname;
                if (obj.hits > 0) {
                  set resp.http.X-Cache = "HIT";
                  set resp.http.X-Cache-Hits = obj.hits;
                } else {
                  set resp.http.X-Cache = "MISS";
                }
              return(deliver);
              }

              1 Reply Last reply Reply Quote 0
              • V Offline
                vromero.rj
                last edited by

                Marcelo,

                Voce tem skype ou msn?

                O meu msn é vromero_rj@hotmail.com e victor-romero1

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

                  Percebi um bug na probe url quando o site tem caracteres especiais '-', tenta mudar somente para
                  /index.htm  e vê se funciona.

                  o probe deve ficar assim:
                    .probe = {
                       .url = "/index.htm";
                       .interval = 1s;

                  Se o probe der errado, voce vai receber a tela de erro 503 do varnish.

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

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • V Offline
                    vromero.rj
                    last edited by

                    Fala Marcelo,

                    Não foi nao. Só consigo abrir a url externamente, quando habilito o NAT forward. Fora isso a pagina nao abre? Voce chegou a verificar a regra que criei de WAN?Voce havia me dito que não posso deixar nenhuma regra de NAT forward habilitada. Mas como vou conseguir fazer a acesso externo na porta 80? Pela regra normal em firewall- rules- wan eu consigo?

                    abcs

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

                      vai na console e vê se o varnish tá rodando

                      ps ax | grep -i varnish

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

                      Help a community developer! ;D

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

                        você habilitou o varnish na porta 80 na aba 'settings'

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

                        Help a community developer! ;D

                        1 Reply Last reply Reply Quote 0
                        • V Offline
                          vromero.rj
                          last edited by

                          Fala Marcelo,

                          Cara consegui. O serviço do Varnish, nao tava subindo. Olhei o log e fiz o seguinte:

                          Em settings, alterei Storage Type de memory para disk.

                          Depois coloquei Cache storage size in megabytes para 9046. O Serviço do Vanish subiu. Olha que beleza!!!

                          Muito obrigado cara pelas informações. Forte abraço

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

                            Excelente! 8)

                            Depois volta ele para cache em memória e testa a diferença de performance.

                            Parabéns pela configuração.

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

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • V Offline
                              vromero.rj
                              last edited by

                              Fala Marcelo.

                              Ta show de bola cara. Fiz o Varnish funcionar direito. Meus servidores estao em cluster tambem. Agora to querendo publicar um endereço na porta https. Ex: https://omsteste.dyndns-remote.com . No meu IIS configurei  a porta TCP 80 e a porta SSL 443. Internamente funciona. Externamente não. Gostaria de saber se o Varnish faz isso tambem. Um aoutra dúvida é a seguinte. Eu consigo digitar por exemplo, http://omsteste.dyndns-remote.com no meu browser e fazer um redirecionamento automatico para https://omsteste.dyndns-remote.com ? Se não meu engano você me disse que o HAPROXY faz isso certo?

                              abraços

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

                                Olá vromero.rj,

                                É gratificante ver a evolução das configurações do pfsense aqui na lista.

                                Agora vamos aos pontos:
                                @vromero.rj:

                                Agora to querendo publicar um endereço na porta https.

                                Se for só em um dos sites, pode usar o nat mesmo, caso contrário você vai precisar do Haproxy para fazer isso.
                                Outra solução seria o apache+modsecurity, mas nesse caso você teria que colocar os certificados ssl no firewall também.
                                Fazendo uma escala de complexidade/funcionalidade, ficaria assim:

                                • NAT (mais facil porem restrito a um host)

                                • HAPROXY (intermediario)

                                • apache+mod_security(dificil porem mais seguro)

                                @vromero.rj:

                                Eu consigo digitar por exemplo, http://omsteste.dyndns-remote.com no meu browser e fazer um redirecionamento automatico para https://omsteste.dyndns-remote.com ?

                                O redirect é feito na programação da página, voce verifica o protocolo que o cliente chamou e se for o caso,faz um redirect para a mesma página com https

                                att,
                                Marcello Coutinho

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

                                Help a community developer! ;D

                                1 Reply Last reply Reply Quote 0
                                • V Offline
                                  vromero.rj
                                  last edited by

                                  Opa…Estamos todos evoluindo. Sua ajuda tem sido de grande valia para todos nós.Sempre usei o ISA SERVER. Mas ele tem me desapontado, principalmente no quesito performance. Na verdade, segmentei minha rede toda. Estou usando o PfSense com cluster para publicar serviços web e usando o Endian Firewall para serviço de proxy, visto que considero ele o melhor nesse sentido. Ele faz autenticação NTLM.
                                  Estou efetuando os testes que me falou. Vou instalar o hpaproxy!!abcsss

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

                                    @vromero.rj:

                                    usando o Endian Firewall para serviço de proxy, visto que considero ele o melhor nesse sentido. Ele faz autenticação NTLM.

                                    Nao considero instalar o samba no firewall uma boa solução, mas enfim. Se Voce quiser o squid do pfsense autenticando NTLM, basta instalar o winbind, o samba e colocar o pf no domínio.

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

                                    Help a community developer! ;D

                                    1 Reply Last reply Reply Quote 0
                                    • V Offline
                                      vromero.rj
                                      last edited by

                                      Marcelo,

                                      Usei o NAT mesmo. Como só tenho esse endereço na porta https, não terei problema.

                                      Eu consigo fazer aquele redirect pelo NAT na porta 80 pra 443?

                                      abraçosss

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

                                        Infelizmente nao, so via programação mesmo.

                                        Usa JavaScript. O google Te ajuda.

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

                                        Help a community developer! ;D

                                        1 Reply Last reply Reply Quote 0
                                        • V Offline
                                          vromero.rj
                                          last edited by

                                          Humm.. tranquilo meu camarada.

                                          Mas ja foi uma ajuda e tanto.

                                          Forte abraço

                                          1 Reply Last reply Reply Quote 0
                                          • V Offline
                                            vromero.rj
                                            last edited by

                                            Fala Marcelo,

                                            Fiz o seguinte. Criei a regra de NAT na porta 443 para o IP de nat 192.168.2.5(IP do servidor WEB)
                                            Depois criei uma regra no varnish na porta 443 ao inves da 80.

                                            Quando tentava acessar esse endereço pela web ele dava erro do Varnish.

                                            Pois bem, fui na configuraçao do varnish na customização da pagina de erro e inseri o seguinte:

                                            Quando digito no browser, ele automaticamente redireciona para a pagina desejada….

                                            Agora ta fechado!!!!

                                            abraçossss

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