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 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии