Azure - веб-роли - фильтрация запросов на основе хоста

Недавно мы столкнулись с проблемой, что наша веб-роль в Azure получила IP-адрес, который ранее был связан с трекером theraterate. Это означало около 5 000 000 запросов, которые были 404. Проблема DNS-сервера, я считаю.

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

<ServiceDefinition name="AB.AzureSite" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
  <WebRole name="AllBlacksdotcom" vmsize="Medium">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1"  hostHeader=""/>
        </Bindings>
      </Site>
    </Sites>

Мы бы хотели, чтобы запросы не попадали на наши сайты вообще (например, запрос, предназначенный для хоста track.thepiratebay.org). Это возможно?

2 ответа

Решение

Там нет никакого способа полностью skip /turn off обработка нежелательных запросов. Однако используя hostHeader Атрибут примет вас довольно близко с некоторыми компромиссами. Проверьте документацию здесь.

Есть как минимум один улов:

  • Когда вы используете заголовок узла, ваш сайт будет отвечать только на запросы с этим заголовком.

  • Вы не можете использовать подстановочные знаки в hostHeader приписывать.

Этот атрибут напрямую применяется к host header обязательное свойство сайта в IIS. И как таковой - подстановочные знаки не поддерживаются.

Так что только запросы, которые описывают то, что вы определили в hostHeader попадет на ваш сайт. Остальные запросы, тем не менее, в любом случае окажутся на Default Web Site в IIS.

Вы можете отключить Default Web Site с помощью задачи запуска ( пример изменения настроек IIS с помощью задач запуска).

Если вы находитесь на уровне заголовка узла, трафик уже попадает в ваши экземпляры роли. Единственный способ заблокировать трафик до этого - использовать списки контроля доступа (ACL) на ваших конечных точках.

Если проблема связана исключительно с конкретным IP-адресом, с которым вы столкнулись, вы можете удалить, а затем повторно развернуть пакет облачных сервисов, который назначит новый IP-адрес.

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