Шлюз приложений против IP-адреса IIS и ограничений домена
У меня есть виртуальная машина, которая содержит ДВА веб-сайта, и один из них имеет ограниченный доступ по IP-адресу и функции IIS "Ограничения домена", которые работают как чудо и позволяют использовать только IP-адреса из белого списка.
Теперь я должен внедрить Application Gateway, сохраняя тот же подход для общедоступного веб-сайта, где я могу управлять IP-адресами, которые будут внесены в белый список либо IP-адресом текущего домена и ограничениями домена, либо другим решением.
Есть идеи, как этого добиться?
2 ответа
В документе FAQ по шлюзу приложений Azure обсуждается этот сценарий:
В. Могу ли я добавить в "Шлюз приложений" доступ к нескольким исходным IP-адресам?
Этот сценарий может быть выполнен с использованием NSG в подсети шлюза приложений. Следующие ограничения должны быть наложены на подсеть в указанном порядке приоритета:
- Разрешить входящий трафик из исходного диапазона IP/IP
- Разрешите входящие запросы из всех источников на порты 65503-65534 для связи работоспособности бэкэнда.
- Разрешить входящие зонды балансировки нагрузки Azure (тег Azure Load Balancer) и входящий трафик виртуальной сети (тег VirtualNetwork) в NSG.
- Заблокируйте весь другой входящий трафик с помощью правила Запретить все.
- Разрешить исходящий трафик в Интернет для всех направлений.
Только что понял это сам после борьбы с этим около 2 дней.
Я размещаю около 70 различных сайтов .NET CORE в IIS за одним экземпляром Шлюза приложений, и недавно получил запрос на ограничения на основе IP только для одного из них. Я понял, как заставить это работать!
По сути, он использует функцию « Включить режим прокси» , которая заставляет функцию «Ограничения IP-адреса и домена» просматривать содержимое заголовка, который в IIS должен содержать
Так вот пошагово.....
1. Ведение журнала
Прежде всего, полезно внести несколько изменений в Шлюз приложений и IIS, чтобы мы могли вести журнал и просматривать содержимое заголовка.
В диспетчере IIS:
- На уровне сервера, сайта или приложения дважды щелкните «Ведение журнала».
- Нажмите «Выбрать поля».
- В окне «Поля регистрации W3C» нажмите «Добавить поле».
- В окне «Добавить пользовательское поле» заполните следующие поля
- Имя поля: X-Forwarded-For, Тип источника: Заголовок запроса, Источник: X-Forwarded-For
- Нажмите «ОК» в обоих открытых окнах.
- Нажмите «Применить» на панели действий.
В шлюзе приложений:
- Откройте портал Azure
- Перейдите к своему экземпляру Шлюза приложений
- Нажмите на колонку «Перезаписывает»
- Нажмите кнопку «+ Перезаписать набор»
- Установите «Имя» на «X-Forwarded-For»
- Выберите правила маршрутизации, с которыми вы хотите связать это (правила для сайта, которые вы должны ограничить как минимум, но не должно быть сложно выбрать ВСЕ правила)
- Нажмите "Далее"
- Нажмите кнопку «+ Добавить правило перезаписи», затем поле «Выполнить — нажмите, чтобы настроить это действие».
- Установите «Тип перезаписи» = «Заголовок запроса», «Тип действия» = «Установить». «Имя заголовка» = «Общий заголовок», «Общий заголовок» = «X-Forwarded-For» и «Значение заголовка» = «{var_add_x_forwarded_for_proxy}»
- Нажмите «ОК» и «Создать», чтобы сохранить правило перезаписи.
В следующий раз, когда файл журнала IIS будет обновлен (или просто переименован или удален текущий файл журнала), теперь он должен включать содержимоеX-Forwarded-For
заголовок, передаваемый шлюзом приложений, может быть очень полезен для последующего ведения журнала и отладки.
2. Настройте IP-адрес IIS и ограничения домена.
Теперь мы можем начать настройку ограничений IP и домена в IIS. Если вы еще этого не сделали, установите модуль IIS Domain and IP Resections, как описано здесь .
В диспетчере IIS:
- На уровне сервера, сайта или приложения дважды щелкните «IP-адрес и ограничения домена».
- Щелкните параметр «Изменить параметры функции» на панели «Действия».
- Установите «Доступ для неуказанных клиентов» = «Запретить», «Включить режим прокси» = Отмечено, «Тип действия запретить» = «Запрещено» (или что вы хотите, эта часть не имеет большого значения).
- Нажмите «ОК», чтобы сохранить.
- На панели «Действия» нажмите «Добавить разрешительную запись».
( Ниже приведена волшебная недокументированная часть, необходимая для того, чтобы заставить его работать...... )
- Добавьте диапазон IP-адресов из адресного пространства виртуальной сети шлюза приложений . Нажмите «ОК», чтобы сохранить.
- Повторите шаги 5 и 6 с адресным пространством для одноранговой виртуальной сети, на которой находится ваш сервер IIS:
- Наконец, повторите шаги 5. и 6. и добавьте определенные IP-адреса клиентов, которые вы хотите внести в белый список/разрешить, вы должны получить список разрешений, который выглядит примерно так:
Обратите внимание, что в моем списке есть отдельные записи «Разрешить» для IP-адреса нашего офиса, IP-адреса офиса клиентов, а также диапазоны IP-адресов серверов для решения PRTG Cloud Monitoring, которое мы используем на этих виртуальных машинах.
Тестируйте, и, надеюсь, это сработает! Удачи!