Contate-Nos

info@serverion.com

Ligue para nós

+1 (302) 380 3902

Guia completo para construir um proxy reverso Nginx seguro

Guia completo para construir um proxy reverso Nginx seguro

Criar um proxy reverso seguro, confiável e escalável é crucial para empresas e profissionais de TI que gerenciam sites de alto tráfego ou aplicativos complexos. O Nginx, um servidor web e proxy reverso de código aberto, é uma solução poderosa para roteamento, otimização e proteção do tráfego para seus serviços de back-end. Neste guia, explicaremos o processo de configuração de um proxy reverso robusto usando o Nginx no Ubuntu 24.04, abordando etapas críticas como criptografia TLS, limitação de taxa e integração com o Cloudflare.

Se você gerencia sites de nível empresarial, plataformas de comércio eletrônico ou servidores de mídia, este guia permitirá que você melhore o desempenho, garanta o tempo de atividade e proteja sua infraestrutura contra vulnerabilidades.

O que é um proxy reverso Nginx?

Um proxy reverso Nginx atua como um servidor intermediário entre clientes e serviços de back-end. Ele encaminha as solicitações dos clientes para o servidor de back-end apropriado, otimizando a distribuição de carga, aumentando a segurança e habilitando recursos como cache, terminação SSL e filtragem de tráfego. Essa configuração é particularmente útil para hospedar servidores de mídia, aplicativos multisite e serviços atrás de firewalls.

Por que você precisa de um proxy reverso

Um proxy reverso oferece vários benefícios importantes:

  • Segurança aprimorada: Oculta os IPs dos servidores de backend e habilita a criptografia via TLS/SSL.
  • Balanceamento de carga: Distribui o tráfego uniformemente entre vários servidores de backend.
  • Otimização: Reduz a latência e melhora a eficiência dos recursos.
  • Escalabilidade: Facilita o gerenciamento de cenários de alto tráfego.
  • Facilidade de gerenciamento: Simplifica a configuração de vários serviços de backend por trás de um domínio unificado.

Neste tutorial, demonstraremos como:

  • Configure o Nginx como um proxy reverso.
  • Proteja sua configuração com os certificados TLS da Let's Encrypt.
  • Configure otimizações avançadas, como limitação de taxa e encaminhamento de solicitações.
  • Integre o Cloudflare para ignorar as restrições de porta do ISP.

Etapa 1: Instalando o Nginx e o Certbot no Ubuntu 24.04

Atualize seu sistema

Antes de instalar qualquer software, certifique-se de que seu sistema esteja atualizado:

sudo apt update && sudo apt upgrade 

Instalar Nginx e Certbot

Use os seguintes comandos para instalar o Nginx e o Certbot com o plugin Nginx:

sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y 

Verificar instalação

Confirme se o Nginx está em execução:

sudo systemctl status nginx 

Para testar o acesso, determine o endereço IP do seu servidor:

ip a 

Acesse o endereço IP em um navegador. Se for bem-sucedido, você verá a página de boas-vindas padrão do Nginx.

Etapa 2: Configurando regras de firewall

Habilitar Firewall Descomplicado (UFW)

O UFW permite que você gerencie regras de firewall facilmente:

sudo ufw permitir 'Nginx Full' sudo ufw permitir OpenSSH sudo ufw ativar 

Verifique o status do seu firewall para garantir que as portas corretas estejam abertas:

status do sudo ufw 

Etapa 3: Configurando a configuração do proxy Nginx

Criar arquivos de configuração personalizados

Para maior flexibilidade e segurança, use arquivos de snippet para armazenar configurações específicas. Crie os seguintes arquivos:

  1. Cabeçalhos de segurança:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Defina cabeçalhos de segurança para aumentar a proteção:
    adicionar_cabeçalho X-Frame-Options "MESMA ORIGEM"; adicionar_cabeçalho X-Content-Type-Options "nosniff"; adicionar_cabeçalho X-XSS-Protection "1; modo=bloco"; 
  2. Configurações de proxy:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Otimize fluxos longos e evite respostas lentas:
    tempo limite de conexão do proxy 60s; tempo limite de envio do proxy 60s; tempo limite de leitura do proxy 60s; 
  3. Limites de taxa:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Mitigar solicitações excessivas:
    limit_req_zone $binary_remote_addr zona=meulimite:10m taxa=10r/s; 

Incluir Snippets na Configuração Principal

Edite a configuração principal do Nginx:

sudo nano /etc/nginx/nginx.conf 

Adicione o seguinte sob o http bloquear:

incluir /etc/nginx/snippets/*.conf; 

Reinicie o Nginx para aplicar as alterações:

sudo systemctl reload nginx 

Etapa 4: Configurando Proxy Reverso para um Serviço de Backend

Criar um Host Virtual

Crie um arquivo de configuração para seu serviço de backend:

sudo nano /etc/nginx/sites-available/jellyfin 

Exemplo de configuração para um servidor de mídia Jellyfin:

servidor { ouvir 80; nome_do_servidor jelly.seudominio.com; localização / { senha_do_proxy http://10.10.0.112:8096; incluir /etc/nginx/snippets/proxy.conf; } } 

Habilite o site criando um link simbólico:

sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ 

Teste e recarregue o Nginx:

sudo nginx -t sudo systemctl reload nginx 

Etapa 5: Protegendo seu domínio com Let's Encrypt TLS

Para proteger seu domínio, use o Let's Encrypt para emitir certificados gratuitos:

sudo certbot --nginx -d jelly.seudominio.com 

O Certbot configura automaticamente o SSL no seu arquivo de site Nginx. Para garantir que os certificados sejam renovados automaticamente, verifique se o timer do systemd está ativo:

sudo systemctl list-timers | grep certbot 

Etapa 6: Integração do Cloudflare para segurança adicional e desvio de porta do ISP

Instalar Cloudflared

A Cloudflared cria um túnel seguro para rotear o tráfego através da Cloudflare, ignorando as restrições do ISP nas portas 80 e 443:

  1. Baixe o .deb pacote da página GitHub da Cloudflare.
  2. Instale o pacote:
    sudo dpkg -i cloudflared-version.deb 

Configurar um túnel

Autentique com sua conta Cloudflare:

login do túnel Cloudflared 

Crie um novo túnel:

túnel cloudflared criar meu-túnel 

Edite o arquivo de configuração do Cloudflare:

sudo nano /etc/cloudflared/config.yml 

Exemplo de configuração:

túnel: meu-túnel arquivo de credenciais: /home/user/.cloudflared/my-tunnel.json entrada: - nome do host: jelly.seudominio.com serviço: http://localhost:8096 - serviço: http_status:404 

Inicie e habilite o serviço de túnel:

sudo systemctl enable cloudflared sudo systemctl start cloudflared 

Principais conclusões

  • Proxy reverso Nginx: Essencial para rotear o tráfego com segurança e otimizar os serviços de backend.
  • Criptografia TLS: Use o Let's Encrypt para proteger seus domínios com certificados SSL gratuitos.
  • Regras de firewall: Abra as portas necessárias para HTTP (80), HTTPS (443) e SSH (22).
  • Otimização de Segurança: Implemente cabeçalhos e limitação de taxa para evitar ataques.
  • Integração Cloudflare: Use túneis Cloudflared para hospedagem segura e amigável a ISPs.
  • Automação: Os temporizadores do Systemd garantem que os certificados SSL sejam renovados automaticamente.

Conclusão

Configurar um proxy reverso Nginx seguro exige atenção aos detalhes e uma configuração cuidadosa, mas os benefícios compensam o esforço. Seja hospedando servidores de mídia como o Jellyfin ou gerenciando aplicativos corporativos, este guia fornece as ferramentas e o conhecimento necessários para construir um ambiente altamente seguro e eficiente. Com recursos como TLS, túneis Cloudflare e otimizações avançadas, sua infraestrutura está pronta para as demandas modernas.

Fonte: "Pare de Expor Seus Aplicativos! Crie um Proxy Reverso Nginx Seguro!" – KeepItTechie, YouTube, 19 de agosto de 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g

Uso: Incorporado para referência. Citações breves usadas para comentários/revisões.

Postagens de blog relacionadas

pt_PT