From 37bd04a16463feba1065097adb77f324a50f4f90 Mon Sep 17 00:00:00 2001 From: "srvproxy001.itguys.com.br" Date: Sun, 21 Sep 2025 02:32:58 -0300 Subject: [PATCH] =?UTF-8?q?[Auto-Sync]=20Atualiza=C3=A7=C3=A3o=20das=20con?= =?UTF-8?q?figura=C3=A7=C3=B5es=20em=20srvproxy001.itguys.com.br=20-=20202?= =?UTF-8?q?5-09-21=2002:32:58?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dns-primario.itguys.com.br.conf | 143 ------------------ 1 file changed, 143 deletions(-) delete mode 100644 nginx/sites-available/dns-primario.itguys.com.br.conf diff --git a/nginx/sites-available/dns-primario.itguys.com.br.conf b/nginx/sites-available/dns-primario.itguys.com.br.conf deleted file mode 100644 index 6ead45a..0000000 --- a/nginx/sites-available/dns-primario.itguys.com.br.conf +++ /dev/null @@ -1,143 +0,0 @@ -# ARQUIVO: /etc/nginx/sites-available/dns-primario.itguys.com.br.conf -# OBJETIVO: Atuar como um proxy reverso seguro para a aplicação em 172.16.254.252:53443, -# com redirecionamento de HTTP para HTTPS e uma estratégia de cache híbrida -# para arquivos estáticos. -# -# ------------------------------------------------------------------------------------- -# EXPLICAÇÕES E MELHORIAS APLICADAS -# ------------------------------------------------------------------------------------- -# -# 1. SEGURANÇA (SECURITY HARDENING): -# - [CRÍTICO] `proxy_ssl_verify`: A diretiva `proxy_ssl_verify off;` foi removida. -# Desativar a verificação do certificado SSL do backend é uma FALHA DE SEGURANÇA, -# pois permite ataques "Man-in-the-Middle" (MITM) entre o NGINX e sua aplicação. -# A solução correta é fazer o NGINX confiar no certificado do backend. Se o -# backend usa um certificado autoassinado, você deve usar a diretiva -# `proxy_ssl_trusted_certificate` para apontar para o certificado CA ou o -# próprio certificado público do backend. -# - Cabeçalhos de Segurança: Adicionados cabeçalhos HTTP para fortalecer a -# segurança do lado do cliente (HSTS, X-Frame-Options, X-Content-Type-Options). -# O HSTS (Strict-Transport-Security) força o navegador a usar apenas HTTPS, -# prevenindo ataques de downgrade. -# -# 2. OTIMIZAÇÃO DE DESEMPENHO: -# - Headers de WebSocket Condicionais: As diretivas `Upgrade` e `Connection` -# são específicas para o protocolo WebSocket. Na sua configuração original, elas -# eram enviadas em TODAS as requisições, o que é desnecessário. A nova -# configuração as aplica apenas quando o cliente solicita uma atualização -# para WebSocket, tornando a comunicação mais limpa. -# - Cache de Navegador: Adicionada a diretiva `expires` para os arquivos estáticos. -# Isso instrui o navegador do usuário a armazenar esses arquivos localmente -# por um período, reduzindo o número de requisições ao seu servidor. -# - Redução de I/O de Logs: Para o bloco de arquivos estáticos, as diretivas -# `access_log off;` e `log_not_found off;` foram adicionadas para evitar -# escrever logs desnecessários e poupar recursos de disco. -# -# 3. ESTRUTURA E BOAS PRÁTICAS: -# - Bloco HTTP Simplificado: O bloco de redirecionamento (porta 80) foi simplificado -# para usar a diretiva `return` diretamente no contexto `server`, eliminando -# a necessidade de um bloco `location` para essa única tarefa. -# - Ordem das Localizações: Embora o NGINX processe a localização por regex (`~*`) -# primeiro, a ordem no arquivo foi ajustada para maior clareza lógica, colocando -# a localização mais específica (estáticos) primeiro e a geral (`/`) depois. -# - Comentários de Referência: Adicionados comentários como `` para -# facilitar a referência cruzada entre as explicações no topo e os blocos de -# código correspondentes. -# -# ------------------------------------------------------------------------------------- - -# --- Bloco 1: Redirecionamento HTTP para HTTPS --- -# Redireciona de forma permanente (301) todo o tráfego da porta 80 para a porta 443 (HTTPS). -server { - listen 80; - listen [::]:80; - server_name dns-primario.itguys.com.br; - - # Responde diretamente com o redirecionamento, sem processar location. É mais eficiente. - return 301 https://$host$request_uri; -} - -# --- Bloco 2: Servidor Principal HTTPS --- -server { - listen 443 ssl http2; - listen [::]:443 ssl http2; - server_name dns-primario.itguys.com.br; - - # --- Configurações de SSL/TLS --- - # O Certbot irá gerenciar estas linhas. Mantenha-as comentadas se usar o Certbot. - # ssl_certificate /etc/letsencrypt/live/ns1.itguys.com.br/fullchain.pem; - # ssl_certificate_key /etc/letsencrypt/live/ns1.itguys.com.br/privkey.pem; - # include /etc/nginx/snippets/ssl_params.conf; # Recomendado: Um snippet com parâmetros de segurança SSL - - # --- Configurações de Log --- - access_log /var/log/nginx/access.log detailed_proxy; - error_log /var/log/nginx/error.log warn; # Alterado para 'warn' para evitar logs excessivamente verbosos. - - # --- Cabeçalhos de Segurança --- - # Força o navegador a usar HTTPS por 1 ano, incluindo subdomínios. - add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; - # Previne clickjacking. - add_header X-Frame-Options "SAMEORIGIN" always; - # Previne ataques de "MIME-sniffing". - add_header X-Content-Type-Options "nosniff" always; - - # --- Inclusão de Snippets Personalizados --- - include /etc/nginx/snippets/custom_errors.conf; - include /etc/nginx/snippets/global_robots.conf; - include /etc/nginx/snippets/internal_networks.conf; - - # --- Estratégia de Cache Híbrida --- - # Define a zona de cache a ser usada. - proxy_cache zabbix_cache; - # Adiciona um cabeçalho para depuração, mostrando se o cache foi HIT, MISS, etc. - add_header X-Proxy-Cache $upstream_cache_status; - # REGRA GERAL: Por padrão, não usar o cache. O cache será ativado em blocos `location` específicos. - proxy_no_cache 1; - proxy_cache_bypass 1; - - # --- Cabeçalhos de Proxy Globais --- - # Estes cabeçalhos serão herdados por todos os blocos `location`. - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_http_version 1.1; - - # --- Localização para Arquivos Estáticos (CACHE ATIVADO) --- - # location ~* \.(css|js|jpg|jpeg|gif|png|ico|svg|webp|ttf|woff2)$ { - # Desativa o log de acesso e de erros para "arquivo não encontrado", reduzindo I/O de disco. - access_log off; - log_not_found off; - - # Ativa o cache para esta localização específica. - proxy_no_cache 0; - proxy_cache_bypass 0; - proxy_cache_valid 200 60m; # Cacheia respostas 200 por 60 minutos. - - # Instrui o navegador do cliente a cachear o arquivo por 1 mês. - expires 1M; - - proxy_pass https://172.16.254.252:53443; - } - - # --- Localização Principal (SEM CACHE) --- - # Captura todas as outras requisições. - location / { - # O cache permanece desativado por herança das diretivas no nível `server`. - - # # A linha `proxy_ssl_verify off;` foi REMOVIDA. - # Se o seu backend usa um certificado autoassinado, DESCOMENTE e ajuste a linha abaixo: - # proxy_ssl_trusted_certificate /caminho/para/certificado_do_backend.pem; - # Isso garante que o NGINX confie no seu backend, prevenindo ataques MITM. - proxy_ssl_server_name on; # Importante para que o NGINX envie o SNI para o backend. - - # --- Tratamento Condicional para WebSockets --- - # # Somente envia os cabeçalhos de Upgrade se o cliente os solicitar. - if ($http_upgrade = "websocket") { - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } - - proxy_pass https://172.16.254.252:53443; - } -}