Модуль доступа NGINX и внутренний DNS: как разрешить только локальным клиентам

Модуль доступа NGINX и внутренний DNS: как разрешить только локальным клиентам

Я искал в serverfault, но не смог найти ответ на этот вопрос. Может быть, я просто не знаю правильного ключевого слова или это концептуальное недопонимание. Любая помощь будет оценена по достоинству!

Ситуация:

  1. Мои локальные службы работают через обратный прокси-сервер NGINX
  2. Я используюLAN DNS на маршрутизаторе (Draytek)для разрешения локальных запросов к *.example.com непосредственно на моем локальном сервере (192.168.1.2).

Даже если нет подключения к интернету, домены будут разрешены на локальном сервере и все сервисы будут доступны. Вот почему я использую LAN DNS. Пока все хорошо.

Теперь я хочу разрешить локальным клиентам доступ к определенным сервисам с помощьюМодуль доступа NGINXс:

allow 192.168.1.0/24;
deny all;

Но NGINX видит только публичный IP-адрес маршрутизатора вместо IP-адреса клиента (192.168.1.100), поэтому все запросы отклоняются:

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

Мой вопрос:

Как в этом сценарии отличить локальных и удаленных клиентов на NGINX?

Ссылка на схему сети


решение1

Сначала предположение/условие, которое заключается в проверке того, добавляет ли ваш маршрутизаторX-Forwarded-Forзаголовок или что-то подобное (отслеживает фактический IP-адрес клиента)

Сначала вам следует разрешить клиентский IP-адрес черезngx_http_realip_module

Пример конфигурации, представленный там:

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;

При этом IP-адрес, используемый для проверки доступа, должен быть правильным (реальным клиентом).

Одно предостережение заключается в том, что при такой конфигурации попытки добавить маршрутизатор в заголовок X-Forwarded-For невозможны.автоматическис proxy_add_x_forwarded_for, так как IP, добавленный через, будет изменен предыдущей директивой. Этот конкретный случай обсуждалсяпри переполнении стека

Связанный контент