Módulo de acesso NGINX e DNS interno: como permitir apenas clientes locais

Módulo de acesso NGINX e DNS interno: como permitir apenas clientes locais

Pesquisei no serverfault, mas não consegui encontrar uma resposta para isso. Talvez eu simplesmente não saiba a palavra-chave certa ou seja um mal-entendido conceitual. Qualquer ajuda seria apreciada!

A situação:

  1. Meus serviços locais estão sendo executados por trás de um proxy reverso NGINX
  2. Eu uso umDNS da LAN no roteador (Draytek)para resolver solicitações locais para *.example.com diretamente para meu servidor local (192.168.1.2).

Mesmo que não haja conexão com a internet, os domínios serão resolvidos para o servidor local e todos os serviços estarão acessíveis. É por isso que uso o DNS da LAN. Até agora tudo bem.

Agora quero permitir que apenas clientes locais acessem determinados serviços usando oMódulo de acesso NGINXcom:

allow 192.168.1.0/24;
deny all;

Mas o NGINX vê apenas o IP público do roteador em vez do IP do cliente (192.168.1.100) e então toda solicitação é recusada:

[...] access forbidden by rule, client: 123.123.123.123, server: service.example.de, request: [...]"

Minha pergunta é:

Como posso distinguir entre clientes locais e remotos no NGINX neste cenário?

Link para diagrama de rede


Responder1

Primeiro, uma suposição/condição, que é verificar se o seu roteador adiciona oX-encaminhado paracabeçalho ou algo semelhante (mantém rastreamento do IP real do cliente)

Você deve resolver o IP do cliente primeiro, atravésngx_http_realip_module

O exemplo de configuração fornecido lá:

set_real_ip_from  192.168.1.0/24;
set_real_ip_from  192.168.2.1;
set_real_ip_from  2001:0db8::/32;
real_ip_header    X-Forwarded-For;
real_ip_recursive on;

Com isso, o IP utilizado para verificações de acesso deverá ser o correto (cliente real).

Uma ressalva é que com tal configuração, as tentativas de adicionar o roteador ao cabeçalho X-Forwarded-For não podem ser feitasautomaticamentecom proxy_add_x_forwarded_for, pois o IP adicionado através terá sido alterado pela diretiva anterior. Esse caso específico foi discutidono estouro de pilha

informação relacionada