Как IP ограничить доступ к сайту в IIS8,5 (Windows 2012R2)

Я прочитал это, чтобы ограничить IP-адрес веб-сайта в IIS8, чтобы разрешить только один или несколько IP-адресов и запретить всем остальным, вы делаете это:

  1. Установите "Доступ для неуказанных клиентов" на "Запретить"
  2. Добавить IP-адрес для "Разрешить"

(как указано на скриншоте ниже)

Однако, когда я делаю это (как указано на скриншоте ниже), я все еще могу получить доступ к сайту с других IP-адресов.

Чего здесь не хватает? Есть ли что-то еще, что нужно сделать?

введите описание здесь

Я попробовал iisreset и страница не кэшируется браузером на тестовых машинах, которые не должны иметь доступа.

5 ответов

Если IP Security в IIS Windows Features установлен, вы можете добавить это в ваш web.config для блокировки IP:

<location path="Default Web Site">
   <system.webServer>
      <security>
         <ipSecurity allowUnlisted="false"><!-- this line blocks everybody, except those listed below -->                
            <clear/> <!-- removes all upstream restrictions -->
            <add ipAddress="192.168.100.1" />
            <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" />
         </ipSecurity>
      </security>
   </system.webServer>
</location>

После долгих раздумий я обнаружил, что у меня работает следующее (IIS 8.5.X на win server 2012 R2)

Убедитесь, что функция включена для управления web.config

  • В IIS
  • Нажмите на корневой сервер
  • Дважды щелкните Делегирование объектов (под управлением)
  • Прокрутите вниз до IP-адреса и ограничений домена
  • Изменить на чтение / запись

(в моем случае это был только для чтения, что было проблемой)

Затем отредактируйте файл web.config, чтобы включить

<system.webServer>
        <security>
            <!-- this line blocks everybody, except those listed below -->                
            <ipSecurity allowUnlisted="false">
                <!-- removes all upstream restrictions -->            
                <clear />
                <add ipAddress="X.X.X.X" allowed="true" />
                <add ipAddress="127.0.0.1" allowed="true" /> 
            </ipSecurity>
        </security>
</system.webServer>

Где XXXX - это IP-адрес, который вы хотите разрешить (добавьте такую ​​строку для каждого IP или IP-подсети, которую вы хотите разрешить)

Заслуживает внимания тот факт, что документация, по-видимому, пропускает allow ="true" и любое упоминание о требовании разрешить делегирование этой функции. Спасибо @Summit за этот совет здесь

У вас есть прокси-сервер между клиентами и вашим сервером IIS? В журналах IIS вы можете указать, с какого IP идет ваш клиент.

Я нашел решение для моей ситуации.

СИТУАЦИЯ: Необходимо заблокировать IP-адреса в сети, но разрешить IIS доступ к веб-сайту для локальных приложений сервера. Случайный индивидуальный и общий доступ к подсети на веб-сайте IIS.

ПРОБЛЕМА. Установка "Изменить параметры" на "Запретить" не работает должным образом. Это не относится к списку "Разрешить". Ничто, локальное или сетевое, не имеет доступа к размещенному веб-сайту.

ВОЗМОЖНОЕ РЕШЕНИЕ: оставьте "Редактировать настройки функций" в "Разрешить". Последняя запись в списке "Разрешить / Запретить" - "Запретить" для полной подсети. Запись "Разрешить" для IP-адреса локального сервера предшествует подсети "Запретить". Любые отдельные компьютеры в подсети, которым разрешен доступ, имеют записи "Разрешить", предшествующие "Запретить" для полной подсети.

Действия по ограничению IP-адресов на уровне файлов в IIS 7 и выше

В диспетчере IIS-> в представлении "Содержимое" выделите конкретный файл-> нажмите "Переключиться на представление компонентов" на панели "Действия" -> в представлении "Функции" дважды щелкните "IP-адрес и ограничения домена", а затем установите ограничение

Я думаю, что это работает и с классическими ASP-страницами.

Другие вопросы по тегам