Jump to content

Nginx como proxy reverso


rodrigo286

Recommended Posts

Bom dia pessoal, eu tinha feito um tópico de como trabalhar com meu cloud protegendo meu dedicado.

No caso tenho um cloud com uma boa proteção e gostaria de que o tráfego entrasse por ele antes de chegar ao dedicado e assim eu conseguiria proteger bem meus sites escondendo o IP real do dedicado.

Pela ajuda que tive e pelas pesquisas parece que o PROXY REVERSO seria melhor, isso procede?

No caso eu achei alguns guias do Nginx e inclusive instalei em meu dedicado no cPanel e teoricamente está com o serviço rodando tudo direitinho.

Mas surgiu uma duvida, como eu configuro para meu cloud intermediar a conexão e virar o proxy?

No caso eu preciso que o cloud receba todo o tráfego e repasse para o dedicado e assim o mesmo é filtrado. 

Já tenho 2 túneis GRE configurados entre as maquinas.

Como deve ser feita essa configuração para existir essa ponta entre cloud proxy até o dedicado?

 

Abraço e obrigado.

Link to comment
Share on other sites

Nesse caso recomendo o varnish.

Instala ele numa maquina, onde ele vai receber o conteúdo, lembrando que os dns devem ser apontados para essa maquina afim dos domínios responderem primeiro para ela, depois repassar o tráfego para o php em outra maquina.

Se for cPanel, vai ter uma bela de uma geringonça.

Link to comment
Share on other sites

Boa tarde @LucasOliveira, você que está no mercado a um bom tempo recomendaria eu tentar outra forma?

Eu tentei inicialmente túneis GRE, onde usaria meu Cloud como DNS, mas não deu muito certo e achei pouco material na internet e nenhum colega utilizando tal sistema.

Pelo que pesquisei o Varnish também é um sistema de cache, no caso eu consigo ocultar meu servidor principal, pois minha ideia seria essa, deixa meu servidor principal oculto e seguro, e caso alguém fosse me atacar, o ataque iria para o Cloud.

Obrigado.

Link to comment
Share on other sites

3 horas atrás, rodrigo286 disse:

Boa tarde @LucasOliveira, você que está no mercado a um bom tempo recomendaria eu tentar outra forma?

Eu tentei inicialmente túneis GRE, onde usaria meu Cloud como DNS, mas não deu muito certo e achei pouco material na internet e nenhum colega utilizando tal sistema.

Pelo que pesquisei o Varnish também é um sistema de cache, no caso eu consigo ocultar meu servidor principal, pois minha ideia seria essa, deixa meu servidor principal oculto e seguro, e caso alguém fosse me atacar, o ataque iria para o Cloud.

Obrigado.

Se você mal conhece as tecnologias envolvidas, vá de Nginx, é mais simples. Varnish é um proxy-reverso para cache, o que implica em dizer que você vai precisar de regras específicas para cada URL.

Quanto ao Nginx, vamos pensar no cenário:

oculto.exemplo.com.br IP4 10.0.0.1 --> Servidor com Apache que você quer ocultars
site1.com.br --> site que está no servidor oculto.exemplo.com.br
proxy.exemplo.com.br --> servidor com nginx

 

No servidor proxy.exemplo.com.br

  1. Instale o Nginx;
     
  2. Configure um virtualhost para cada site que deseja ocultar as URLs (em /etc/nginx/sites-available), seguindo o modelo
    server {
            listen   80; 
    
            root /var/www/site.com.br/; 
            index index.html index.htm;
    
            server_name site1.com.br
    
            location / {
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;  
              ##########################################
              ## COLOQUE AQUI O IP DE SEU SERVIDOR WEB
              ##########################################
              proxy_pass http://10.0.0.1:8080; 
            }
    
            location ~ \.php$ {
            
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;  
              ##########################################
              ## COLOQUE AQUI O IP DE SEU SERVIDOR WEB
              ##########################################
              proxy_pass http://10.0.0.1:8080; 
    
             }
    
             location ~ /\.ht {
                    deny all;
            }
    }

     

  3. Crie um link simbólico do vitualhost para o diretório /etc/ngninx/sites-enabled/

 

É isso a configuração básica... SSL e similares já começam a aumentar nossa config.

 

 

Recomendo você executar esse tipo de coisa onde haja possibilidade de tráfego na rede interna do datacenter.

Att


 

Link to comment
Share on other sites

Obrigado @joaopaulo, vou tentar aqui, vou instalar o apache e nginx no cloud e apontar para o dedicado.

Eu preciso fazer isso funcionar para o WHM/cPanel por isso fiz a config abaixo:

No caso meu cloud está ligado ao dedicado por GRE.

IP GRE Cloud: 10.0.0.1 e 10.0.0.3

Ip GRE Dedicado: 10.0.0.2 e 10.0.0.4

No caso minha configuração ficaria desse modo:

server {
        listen   80; 
		## Path do site pelo cPanel ##
        root /home/site/; 
        index index.html index.htm;

        server_name site.com.br

        location / {
          proxy_set_header X-Real-IP  $remote_addr;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_set_header Host $host;  
          ##########################################
          ## COLOQUE AQUI O IP DE SEU SERVIDOR WEB
          ##########################################
          proxy_pass http://10.0.0.2:8080; 
        }

        location ~ \.php$ {
        
          proxy_set_header X-Real-IP  $remote_addr;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_set_header Host $host;  
          ##########################################
          ## COLOQUE AQUI O IP DE SEU SERVIDOR WEB
          ##########################################
          proxy_pass http://10.0.0.2:8080; 

         }

         location ~ /\.ht {
                deny all;
        }
}

Quer dizer no Cloud vou ter que por também o bind para reconher o domínio, quando alguém acessar o endereço site.com.br ele vai jogar para o IP 10.0.0.2.

Estou correto?

Também me deram uma dica sobre o HAProxy.

Abraço.

Link to comment
Share on other sites

54 minutos atrás, rodrigo286 disse:

Obrigado @joaopaulo, vou tentar aqui, vou instalar o apache e nginx no cloud e apontar para o dedicado.

Eu preciso fazer isso funcionar para o WHM/cPanel por isso fiz a config abaixo:

No caso meu cloud está ligado ao dedicado por GRE.

IP GRE Cloud: 10.0.0.1 e 10.0.0.3

Ip GRE Dedicado: 10.0.0.2 e 10.0.0.4

Quer dizer no Cloud vou ter que por também o bind para reconher o domínio, quando alguém acessar o endereço site.com.br ele vai jogar para o IP 10.0.0.2.

Estou correto?

Também me deram uma dica sobre o HAProxy.

Abraço.

 

Vamos lá, não vamos confundir porco com feijoada:

  • Se seu objetivo é esconder o servidor real, então não hospede o DNS nele, use o cloduflare ou similar. Isso vale para e-mails também. No DNS você irá colocar todas as entradas A de fluxo HTTP para o IP público do cloud;
  • HA Proxy é outra coisa, aí envolve balanceamento de carga, espehamento e diabo A4
Link to comment
Share on other sites

Então é isso que eu gostaria de fazer.

O meu cloud tem proteção para mitigar DoS / DDoS por isso queria deixar ele cuidando dos DNS e assim proteger a identidade do dedicado que seria mais desprotegido.

Tentei vários modos e pesquisei muito porem ainda não consegui fazer isso, inclusive tentei até com GRE.

 

Quando me passaram sobre o HAProxy me passaram que ele tinha essa função de proxy reverso e com isso eu conseguiria esconder a identidade do meu dedicado.

Tentei criando um túnel GRE entre as maquinas, eles se comunicavam mas não conseguir deixar o WHM/cPanel funcionando desse modo.

Mas pelo que você passou é exatamente isso, seria hospedar os DNS no meu cloud, mas ainda tenho o problema, como vou deixar o dedicado ligado ao cloud.

 

Obrigado e grande abraço.

 

#EDIT

Estou configurando o BIND9 aqui no Cloud com Centos 7, vou tentar configurar tudo de novo apontando o domínio e qualquer coisa eu posto aqui se eu consegui ou não e passando o que eu fiz.

Abraço.

Link to comment
Share on other sites

1 hora atrás, rodrigo286 disse:

Então é isso que eu gostaria de fazer.

O meu cloud tem proteção para mitigar DoS / DDoS por isso queria deixar ele cuidando dos DNS e assim proteger a identidade do dedicado que seria mais desprotegido.

Tentei vários modos e pesquisei muito porem ainda não consegui fazer isso, inclusive tentei até com GRE.

 

Quando me passaram sobre o HAProxy me passaram que ele tinha essa função de proxy reverso e com isso eu conseguiria esconder a identidade do meu dedicado.

Tentei criando um túnel GRE entre as maquinas, eles se comunicavam mas não conseguir deixar o WHM/cPanel funcionando desse modo.

Mas pelo que você passou é exatamente isso, seria hospedar os DNS no meu cloud, mas ainda tenho o problema, como vou deixar o dedicado ligado ao cloud.

 

Obrigado e grande abraço.

 

#EDIT

Estou configurando o BIND9 aqui no Cloud com Centos 7, vou tentar configurar tudo de novo apontando o domínio e qualquer coisa eu posto aqui se eu consegui ou não e passando o que eu fiz.

Abraço.

Deixe esse esquema de Tunel em Off, é gastar tempo a toa. No dedicado, mude todos os serviços para portas não-padrão e habilite proteção contra port-scanners.

 

 

Link to comment
Share on other sites

Então esse dedicado eu peguei secundário para testar e ver se é possível colocar em produção.

No caso não estou mais usando o GRE, estou tentando fazer o que você disse de deixar o DNS no Cloud.

Acabei de configurar o DNS nele, só estou esperando mapear para testar.

O DC é Dacentec, então qualquer ataque que eu levar cai fácil por esse motivo do Cloud ser usado para proteção.

 

Abraço.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Do you agree with our terms?