Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как использовать портал Azure для создания шлюза приложений с брандмауэром веб-приложения (WAF). Для защиты приложения WAF использует правила OWASP. Эти правила включают защиту от атак, например от внедрения кода SQL, межсайтовых скриптов и захватов сеанса. После создания шлюза приложений вы протестируете его, чтобы убедиться, что он работает правильно. С помощью Шлюза приложений Azure вы направляете веб-трафик приложения к определенным ресурсам, назначая прослушиватели портам, создавая правила и добавляя ресурсы во внутренний пул. Для простоты в этом руководстве используется простая настройка с общедоступным интерфейсным IP-адресом, базовый прослушиватель для размещения одного сайта на этом шлюзе приложений, две виртуальные машины Linux, используемые для внутреннего пула, и базовое правило маршрутизации запросов.
В этом руководстве вы узнаете, как:
- Создание шлюза приложений с включенным WAF.
- Создание виртуальных машин, используемых в качестве бэкенд-серверов
- Создание учетной записи хранения и настройка диагностики.
- Тестирование шлюза приложений
Замечание
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать, ознакомьтесь с разделом Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
Предпосылки
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Вход в Azure
Войдите на портал Azure.
Создание Шлюза приложений
Выберите Создать ресурс в верхнем левом меню портала Azure. Появится окно Создать ресурс .
Выберите Сеть, а затем выберите Шлюз приложений в списке Популярные службы Azure.
Вкладка "Основные сведения"
На вкладке Основные сведения введите значения для следующих параметров шлюза приложений.
Группа ресурсов: выберите myResourceGroupAG для группы ресурсов. Если она еще не существует, выберите Создать новую, чтобы создать её.
Имя шлюза приложений: введите myAppGateway для имени шлюза приложений.
Уровень: выберите WAF V2.
Политика WAF: выберите Создать новую, введите имя новой политики, а затем нажмите кнопку ОК. При этом создается базовая политика WAF с управляемым набором основных правил (CRS).
В Azure для обмена между создаваемыми ресурсами необходима виртуальная сеть. Вы можете создать новую виртуальную сеть или использовать существующую. В этом примере вы создаете новую виртуальную сеть одновременно с созданием шлюза приложений. Создание экземпляров шлюза приложений происходит в отдельных подсетях. В этом примере вы создаете две подсети: одну для шлюза приложений, а затем добавляете еще одну для внутренних серверов.
В разделе Настройка виртуальной сети создайте виртуальную сеть, выбрав команду Создать. В открывшемся окне Создание виртуальной сети введите следующие значения для создания виртуальной сети и подсети:
Имя. Введите myVNet для имени виртуальной сети.
Адресное пространство : Примите диапазон адресов 10.0.0.0/16 .
Имя подсети (подсеть Шлюза приложений): в области Подсети отображается подсеть с именем Default. Измените имя этой подсети на myAGSubnet и оставьте диапазон адресов IPv4 по умолчанию 10.0.0.0/24.
Подсеть шлюза приложений может содержать только шлюзы приложений. Другие ресурсы запрещены.Выберите ОК, чтобы закрыть окно Создание виртуальной сети и сохранить настройки виртуальной сети.
На вкладке "Основные сведения" примите значения по умолчанию для других параметров, а затем нажмите кнопку Next: Frontends.
Вкладка "Фронтенды"
На вкладке Интерфейсные серверы убедитесь, что для параметра Тип IP-адреса интерфейсных серверов установлено значение Общедоступный.
Вы можете настроить IP-адрес фронтенда как публичный или оба , в зависимости от вашего варианта использования. В этом примере вы выбираете IP-адрес публичного интерфейса.Замечание
Для SKU Шлюза приложений версии 2 поддерживаются типы IP-адресов интерфейса: общедоступные и оба. В настоящее время не поддерживается только конфигурация частного IP-адреса интерфейса.
Выберите Добавить новый для общедоступного IP-адреса и введите myAGPublicIPAddress в качестве имени общедоступного IP-адреса, а затем нажмите кнопку ОК.
Выберите Далее: Бэкенды.
Вкладка "Серверные компоненты"
Серверный пул используется для перенаправления запросов на внутренние серверы, на которых обслуживается запрос. Серверные пулы могут состоять из сетевых адаптеров, масштабируемых наборов виртуальных машин, общедоступных IP-адресов, внутренних IP-адресов, полных доменных имен (FQDN) и многопользовательских серверных частей, таких как Служба приложений Azure. В этом примере вы создаете пустой внутренний пул с помощью шлюза приложений, а затем добавляете серверные целевые объекты в внутренний пул.
На вкладке Серверные компоненты выберите элемент Добавление серверного пула.
В открывшемся окне Добавить внутренний пул введите следующие значения для создания пустого внутреннего пула.
- Имя: введите myBackendPool для имени внутреннего пула.
- Добавьте внутренний пул без целевых объектов: выберите "Да ", чтобы создать внутренний пул без целевых объектов. После создания шлюза приложения вы добавите цели бэкенда.
В окне Добавление внутреннего пула выберите Добавить, чтобы сохранить конфигурацию внутреннего пула и вернуться на вкладку Серверные компоненты.
На вкладке "Серверные части" нажмите кнопку "Далее: конфигурация".
Вкладка "Конфигурация"
На вкладке "Конфигурация" вы подключаете интерфейсный и внутренний пул, созданный с помощью правила маршрутизации.
Выберите элемент Добавление правила маршрутизации в столбце Правила маршрутизации.
В открывшемся окне Добавление правила маршрутизации введите myRoutingRule в поле Имя правила.
В поле Приоритет введите номер приоритета.
Для правила маршрутизации требуется слушатель. На вкладке Прослушиватель в окне Добавление правила маршрутизации введите следующие значения для прослушивателя.
Имя прослушивателя: введите myListener для имени прослушивателя.
Протокол IP-протокола фронтенда: выберите Публичный IPv4 , чтобы выбрать общедоступный IP-адрес, который вы создали для интерфейса.
Примите значения по умолчанию для других параметров на вкладке Прослушиватель, а затем выберите вкладку Серверные целевые объекты, чтобы настроить остальную часть правила маршрутизации.
На вкладке Серверные целевые объекты выберите значение myBackendPool для параметра Серверный целевой объект.
В разделе Параметры серверной части выберите Добавить новый , чтобы создать новую настройку серверной части. Этот параметр определяет поведение правила маршрутизации. В открывшемся окне Добавить настройку бэкенда введите myBackendSetting в поле Имя настроек бэкенда. Примите значения по умолчанию для других параметров в окне, затем нажмите кнопку Добавить , чтобы вернуться в окно Добавить правило маршрутизации .
В окне Добавление правила маршрутизации выберите Добавить, чтобы сохранить правило маршрутизации и вернуться на вкладку Конфигурация.
Выберите Далее: теги и щелкните Далее: просмотр и создание.
Просмотр и создание вкладки
Просмотрите параметры на вкладке Просмотр и создание, а затем выберите Создать, чтобы создать виртуальную сеть, общедоступный IP-адрес и шлюз приложения. Для создания шлюза приложений Azure может потребоваться несколько минут.
Дождитесь успешного завершения развертывания перед переходом к следующему разделу.
Добавление подсети бэкенд-сервера
- Откройте виртуальную сеть myVNet.
- В разделе Параметры выберите Подсети.
- Выберите + Подсеть.
- В поле Имя введите myBackendSubnet.
- Для начального адреса введите 10.0.1.0.
- Нажмите кнопку "Добавить ", чтобы добавить подсеть.
Добавление серверных целевых объектов
В этом примере вы используете виртуальные машины в качестве целевой серверной части. Вы можете использовать существующие виртуальные машины или создать новые. Вы создаете две виртуальные машины, которые Azure использует в качестве внутренних серверов для шлюза приложений.
Для этого сделайте следующее:
- Создайте две новые виртуальные машины Linux, myVM и myVM2, которые будут использоваться в качестве внутренних серверов.
- Установите NGINX на виртуальных машинах, чтобы убедиться в успешном создании шлюза приложений.
- Добавить бэкенд серверы в бэкенд пул.
Создание виртуальной машины
На портале Azure выберите Создать ресурс. Появится окно Создать ресурс .
В разделе Виртуальная машина выберите Создать.
На вкладке Основы введите для следующих параметров виртуальной машины такие значения:
- Группа ресурсов: выберите myResourceGroupAG для имени группы ресурсов.
- Имя виртуальной машины: введите myVM для имени виртуальной машины.
- Изображение: Ubuntu Server 20.04 LTS - Gen2.
- Тип аутентификации: Пароль
- Имя пользователя: Введите имя пользователя администратора.
- Пароль: Введите пароль для пароля администратора.
- Общедоступные входящие порты: выберите Нет.
Примите другие значения по умолчанию и нажмите кнопку Далее: Диски.
Примите вкладку "Диски" по умолчанию и нажмите кнопку "Далее: Сеть".
На вкладке Сети убедитесь, что для параметра Виртуальная сеть выбрано значение myVNet, а для параметра Подсеть — значение myBackendSubnet.
В поле Общедоступный IP-адрес выберите значение Нет.
Примите другие значения по умолчанию и нажмите кнопку "Далее: управление".
Выберите Далее: Мониторинг, установите для параметра Диагностика загрузки значение Отключить. Примите остальные значения по умолчанию и выберите Review + create.
На вкладке Review + create (Просмотр и создание) проверьте параметры, устраните ошибки проверки, а затем выберите Создать.
Прежде чем продолжить, дождитесь завершения создания виртуальной машины.
Установите NGINX для тестирования
В этом примере вы устанавливаете NGINX на виртуальных машинах только для проверки того, что Azure успешно создала шлюз приложений.
Откройте Bash Cloud Shell. Для этого щелкните значок Cloud Shell на верхней панели навигации портала Azure, а затем выберите Bash в раскрывающемся списке.
Убедитесь, что сеанс Bash настроен для вашей подписки:
az account set --subscription "<your subscription name>"
Выполните следующую команду, чтобы установить NGINX на виртуальную машину:
az vm extension set \ --publisher Microsoft.Azure.Extensions \ --version 2.0 \ --name CustomScript \ --resource-group myResourceGroupAG \ --vm-name myVM \ --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
Создайте вторую виртуальную машину и установите NGINX, выполнив эти действия. Используйте myVM2 в качестве имени виртуальной машины и параметра
--vm-name
командлета.
Добавление серверов в пул серверов бэкенда
Выберите Все ресурсы, а затем — myAppGateway.
Выберите Серверные пулы в меню слева.
Выберите myBackendPool.
В разделе Тип цели выберите Виртуальная машина из раскрывающегося списка.
В разделе Цель выберите связанный сетевой интерфейс для myVM из раскрывающегося списка.
Повторите для myVM2.
Нажмите кнопку "Сохранить".
Прежде чем переходить к следующему шагу, дождитесь завершения развертывания.
Тестирование шлюза приложений
Хотя NGINX не требуется для создания шлюза приложений, вы установили его, чтобы проверить, успешно ли Azure создал шлюз приложений. Используйте веб-службу для тестирования шлюза приложений:
Найдите общедоступный IP-адрес для шлюза приложений на странице Обзор.
Или вы можете выбрать Все ресурсы, ввести myAGPublicIPAddress в поле поиска, а затем выбрать его в результатах поиска. Общедоступный IP-адрес отобразится в Azure на странице Обзор.
Скопируйте общедоступный IP-адрес и вставьте его в адресную строку браузера.
Проверьте ответ. Допустимый ответ подтверждает, что шлюз приложений создан и может успешно подключиться к серверу.
Очистите ресурсы
Если вам больше не нужны ресурсы, созданные с помощью шлюза приложений, удалите группу ресурсов. При удалении группы ресурсов также удаляется шлюз приложений и все связанные с ним ресурсы.
Чтобы удалить группу ресурсов:
- На портале Azure в меню слева выберите Группы ресурсов.
- На странице Группы ресурсов выполните поиск группы myResourceGroupAG в списке и выберите ее.
- На странице группы ресурсов выберите Удалить группу ресурсов.
- Введите myResourceGroupAG в поле Введите имя группы ресурсов, а затем выберите Удалить.