Pull to refresh

IIS 8: динамическое ограничение доступа по IP

Reading time4 min
Views21K
Original author: Shaun Eagan


Сервер IIS 7 и предыдущие версии содержали встроенную функциональность, которая позволяла администраторам разрешить или запретить доступ к серверу для определенных IP-адресов (или их диапазонов). Когда IP-адрес блокировался, любой HTTP-клиент с таким IP получал в ответ на запрос к серверу HTTP-ошибку "403.6 Forbidden". Этот функционал позволял администраторам настроить доступ к их серверу на основе активности, которую они могли проанализировать по логам сервера. Тем не менее, это был ручной процесс. Даже при том, что управление функциями могло настраиваться через скрипты для определения подозрительных пользователей с помощью анализа логов утилитами типа Microsoft's LogParser, все равно требовалось много ручной работы.

Решение


В IIS 8 встроенная функциональность была расширена для того, чтобы предложить следующие функции:
  • Динамическая фильтрация IP-адресов, которая позволяет администраторам настроить их сервер на блокировку IP-адресов, которые создают слишком много запросов к серверу;
  • Фильтрация IP-адресов теперь позволяет администраторам указать поведение сервера во время блокировки IP-адреса, так что запросы от злоумышленников могут быть прерваны сервером, вместо того, чтобы возвращать клиенту HTTP 403.6;
  • Фильтрация по IP теперь поддерживает функцию прокси-режима, которая позволяет блокировать адреса не только по IP-адресу клиента, который получает сервер, но и по полученным значениям HTTP-заголовков x-forwarded-for.

Пошаговая инструкция


Требования:
  • Предустановленная Windows 8 с включенным IIS 8;
Замечание: функция IP and Domain Restrictions должна быть установлена вместе с IIS.

image

Конфигурирование IIS для блокировки доступа на основе HTTP-запросов


Сервер IIS 8.0 может быть сконфигурирован для блокировки доступа к веб-сайтам на основе определенного числа запросов в единицу времени, которые производит клиент. Другим вариантом является блокировка на основе количества одновременных подключений клиента.

Для конфигурирования IIS для блокировки доступа основанной на числе HTTP-запросов проделайте следующие шаги:

Осуществите вход в систему с учетной записью администратора. Откройте Internet Information Services (IIS) Manager. Выберите свой сервер, сайт или папку в окне Connections и затем в панели функций запустите IP Address and Domain Restrictions.

image

Нажмите Edit Dynamic Restriction Settings на панели Actions.

image

В окне Dynamic IP Restriction Settings выберите Deny IP Address based on the number of concurrent requests, если вы хотите предотвратить слишком много одновременных подключений от пользователя. Если вы хотите предотвратить слишком большое количество запросов от пользователя, выберите Deny IP Address based on the number of requests over a period of time.

image

Нажмите ОК.

Конфигурирование поведения IIS при запрете IP-адресов


В IIS 7 и ранних версиях, сервер возвращал HTTP-ошибку "403.6 Forbidden", когда происходила блокировка IP-адреса. В IIS 8.0 администраторы могут сконфигурировать свой сервер для того, чтобы запрещать доступ с IP-адресов несколькими дополнительными вариантами.

Для того чтобы указать то, как должен поступать IIS, когда он блокирует IP-адрес, выполните следующие шаги:

Осуществите вход в систему с учетной записью администратора. Откройте Internet Information Services (IIS) Manager. Выберите свой сервер, сайт или папку в окне Connections и затем в панели функций запустите IP Address and Domain Restrictions.

image

Нажмите Edit Feature Settings на панели Actions.

image

В окне Edit IP and Domain Restriction Settings выберите в ниспадающем меню Deny Action Type предпочтительное поведение сервера:
  • Unauthorized: IIS вернет ответ HTTP 401;
  • Forbidden: IIS вернет ответ HTTP 403;
  • Not Found: IIS вернет HTTP 404;
  • Abort: IIS закроет HTTP-соединение.
image

Нажмите ОК.

Конфигурирование IIS для прокси-режима


Одной из проблем при IP-фильтрации является возможная ситуация, когда с одного IP-адреса на сервер обращаются множество разных клиентов (через firewall, балансировщик нагрузки, прокси). Так что для каждого такого клиента IP-адрес будет одинаковым. В IIS 8.0 администраторы могут сконфигурировать сервер с учетом HTTP-заголовка x-forwarded-for, в дополнение к IP-адресу клиента, для того, чтобы точнее определять какие именно запросы необходимо блокировать. Такое поведение называется «прокси-режимом».

Для конфигурирования IIS для прокси-режима проделайте следующие шаги.

Осуществите вход в систему с учетной записью администратора. Откройте Internet Information Services (IIS) Manager. Выберите свой сервер, сайт или папку в окне Connections и затем в панели функций запустите IP Address and Domain Restrictions.

image

Нажмите на Edit Feature Settings в панели Actions.

image

В окне Edit IP and Domain Restriction Settings выберите Enable Proxy Mode.

image

Нажмите ОК.

Заключение


В этом руководстве вы познакомились с конфигурирование IIS для динамического блокирования доступа к вашему серверу на основе числа запросов от клиента, а так же с настройкой поведения IIS, которое сервер будет использовать при блокировке потенциальных злоумышленников.

От переводчика


Вы можете прочитать обзорную статью о многих других нововведениях в IIS 8 (на русском) по этому адресу.

Для полноты картины я хотел бы дополнить статью полезными ссылками, которые более полно раскрывают многие новые функции IIS 8:Еще одна полезная вещь – выпуск бесплатного легкого сервера IIS 8 Express для разработчиков, который вы уже можете скачать и установить. Подробности по ссылке.

3 апреля в Самаре пройдет бесплатная конференция WebProfessionals, на которой будет рассказано про IIS 8 и другие элементы веб-платформы Microsoft. Регистрация уже открыта.
Tags:
Hubs:
Total votes 38: ↑25 and ↓13+12
Comments6

Articles