Palo Alto VM-Series Firewall: AWS HA Multi AZ для GlobalProtect — Часть 1

 

Для обеспечения высокой доступности Palo Alto VM-Series Firewall используется конфигурация active/passive. В которой активный фаервол постоянно синхронизирует свою конфигурацию и информацию об активных сессиях с аналогично настроенным пассивным фаерволом. Существует два варианта достижения HA в AWS: «Secondary IP Move» и «Dataplane Interface Move«.

Secondary IP Move

При недоступности активного фаервола, пассивный переходит в роль активного. Так же делает API запросы на перенос вторичных IP адресов с недоступного узла на себя и обновляет таблицы маршрутизации, для того чтобы траффик отправлялся на новый активный фаервол. Переключение ролей фаерволов в данном способе быстрее, чем в «Dataplane Interface Move«.

Dataplane Interface Move

Как и в случае «Secondary IP Move«, если пассивный фаервол обнаруживает, что активный больше недоступен, то он переходит в роль активного, но вместо переноса IP адресов, переносит ENI с недоступного фаервола на себя.

Так как планируется использовать VM Firewall как GlobalProtect для доступа к локальным ресурсам из вне, и фаерволы должны быть в разных AZ, подходит только вариант «Secondary IP Move«, но в данном случае это будет EIP который ассоциирован с основным приватным IP адресом.

Для HA необходимо минимум 4 интерфейса на каждом из фаеволов:

  • ENI0: MGMT — для управления и конфигурации через консоль или веб интерфейс. Так же этот интерфейс будет использоваться как HA1 линк
  • ENI1: HA2 — для проверки состояния фаерволов
  • ENI2: Untrust — интерфейс для подключения к GlobalProtect. На активном фаерволе с этим интерфейсом будет ассоциирован EIP
  • ENI3: Trust — интерфейс, через который будут доступны локальные ресурсы

Нужно учитывать, что есть лимит на максимальное количество присоединенных ENI к инстансу в зависимости от его типа и размера. С лимитами можно ознакомится тут. В данном случае будут использоваться инстансы — m5.xlarge

Для наглядности диапазоны сетей будут формироваться следующим образом:

10.0.»номер_фаервола»+»номер_интерфейса».0/24

Итого имеем:

По типам это будут публичные сети и изолированные/приватные (для GP им не нужен доступ в Интернет)

В итоге имеем следующую схему:

AWS Infrastructure

VPC

Перейдем в раздел «VPC» и выберем «Create VPC«. Визард использовать не будем, создадим необходимые ресурсы сами. Укажем имя и CIDR, остальное оставим по умолчанию.

Во вкладке «VPC» найдем «Internet gateways» и выберем «Create internet gateway»

Приаттачим созданный IGW к нашей VPC

Subnets

Создадим необходимые сети, для этого перейдем «VPC» -> «Subnets» и выберем «Create subnet«. Необходимо создать по 4 сети в 2-х AZ согласно таблице выше

Проверяем созданные сети, их CIDR и Availability zone

Route tables

Создадим 3 таблицы маршрутизации:

  • PA-LAB-NETWORK-DEFAULT-RT
  • PA-LAB-NETWORK-PUBLIC-RT
  • PA-LAB-NETWORK-GP-TRUST-RT

Для этого перейдем «VPC» -> «Route tables» и выберем «Create route table»

Для «TRUST» зоны мы создаем отдельную таблицу, так как потом будем добавлять в нее маршруты на Transit Gateway.

Выберем таблицу маршрутизации «PA-LAB-NETWORK-PUBLIC-RT» перейдем во вкладку «Routes» и выберем «Edit routes» и добавим маршрут по умолчанию на IGW

Так же ассоциируем таблицу маршрутизации с публичными сетями:

  • MGMT-A
  • MGMT-B
  • UNTRUST-A
  • UNTRUST-B

Перейдем во вкладку «Subnet associations» и выберем «Edit subnet associations»

Так же ассоциируем таблицу «TRUST-RT» с сетями «TRUST-A» и «TRUST-B»

Теперь выбираем таблицу «DEFAULT-RT» и задем ее как основную таблицу.

Security Group

Далее нам нужно создать 4 группы безопасности:

  • PA-LAB-NETWORK-GP-MGMT-SG
  • PA-LAB-NETWORK-GP-HA-SG
  • PA-LAB-NETWORK-GP-UNTRUST-SG
  • PA-LAB-NETWORK-GP-TRUST-SG

Для HA можно оставить только необходимые порты, но мы просто разрешим траффик внутри группы безопасности.

Для этого перейдем «VPC» -> «Security» и выберем «Create security group«. Создадим 4 группы безопасности со следующими правилами:

Проверяем группы безопасности, что они относятся к правильной VPC и их правила

ENI

Создадим 8 ENI согласно именам наших SG, ассоциируем с соответствующими группами безопасности, добавим описание и тег «Name«.

Переходим в раздел «EC2» -> «Network & Security» -> «Network Interfaces» и выберем «Create network interface»

Проверяем созданные интерфейсы, что они относятся к правильной VPC, AZ и сетям

EIP

Теперь необходимо создать 3 EIP:

  • GP-MGMT-A
  • GP-MGMT-B
  • GP-PORTAL

Для этого перейдем «VPC» -> «Virtual private cloud» -> «Elastic IPs» и выберем «Allocate Elastic IP address«. И добавим тег «Name»

Проверяем созданные EIP

IP адреса «MGMT-A-EIP» и «MGMT-B-EIP» ассоциируем с соответствующими интерфейсами, «GP-PORTAL-IP» ассоциируем с интерфейсом «GP-UNTRUST-A«, именно инстанс в AZ A будет у нас изначально активным.

IAM

Для HA режима необходимо создать IAM Policy со следующим содержимым:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachNetworkInterface",
                "ec2:DetachNetworkInterface",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkInterfaces",
                "ec2:AssignPrivateIpAddresses",
                "ec2:AssociateAddress",
                "ec2:DescribeRouteTables"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:ReplaceRoute"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:route-table/*"
            ],
            "Effect": "Allow"
        }
    ]
}

Больше информации о необходимых правах можно найти тут.

Для этого переходим в раздел «IAM» -> «Access management» -> «Policies» и выбираем «Create policy«, переключимся с визуального редактора во вкладку «JSON» и вставим нашу политику.

Так же создадим IAM Role, переходим в раздел «IAM» -> «Access management» -> «Roles» и выбираем «Create role»

  • Trusted entity type: «AWS service»
  • Use case: «EC2»

И ассоциируем ранее созданную политику.

MarketPlace

Мы будем использовать «VM-Series Next-Generation Firewall (BYOL and ELA)» AMI, но перед этим нужно подписаться на нее в AWS MarketPlace

После того, как подписались на AMI, если перейти к конфигурации можно найти AMI ID для вашего региона

EC2 Instance

Создадим первый инстанс для зоны A, AMI ID указываем с предыдущего шага, instance type: m5.xlarge. Обязательно укажем SSH ключ, предварительно создате или экспортируйте его.

Network settings

Выберем нашу VPC, сеть выбираем любую из AZ A, так как будем присоединять сетевые интерфейсы вручную и обязательно указываем, что в качестве группы безопасности будем использовать существующую и оставляем это поле пустым.

Дальше во вкладке «Advanced network configuration» в качестве «Network interface 1» выбираем «MGMT» интерфейс, все остальные настройки не трогаем.

Добавляем еще 3 дополнительных интерфейса в следующем порядке:

  • HA
  • UNTRUSTED
  • TRUSTED

Во вкладке «Advanced details» находим пункт «IAM instance profile» и выбираем созданную IAM Role.

Точно так же создаем инстанс для AZ B.

Метки: Метки

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии