2 NGFW Checkpoint: Active-Active
Описание решения
Сегментация сети с помощью NGFW Checkpoint в двух зонах доступности (ДЦ) в режиме Active-Active
p.s Решение возможно упростить в случае, если применять SOURCE NAT на FW, чтобы избежать ассиметрии
- Решение автоматически создает несколько сегментов сети в 2-х зонах доступности (ДЦ)
- Устанавливает/настраивает NGFW Checkpoint в кол-ве 2 шт. в режиме Active-Active, а также сервер управления
- При этом сетеая связь между зонами возможна и выполняется без ассиметрии
- В случае падения одного из 2-х FW - в этой зоне доступности сетевая связанность с интернетом и другими VPC пропадает
- Для кроссзональной связанности между VPC используется VPC Transit между 2-мя FW. Путь траффика из VPC Servers (zone A) в VPC Database (zone B) : servers-a -> FW-A -> FW-B -> database-b
Что делает решение (детали)
- ☑️ Создает отдельные folder и vpc под каждый сегмент сети: "Servers", "Database", "Mgmt", (несколько "VPC-#" заглушек). Заглушки использованы по причине невозможности добавления дополнительных интерфейсов в ВМ в будущем. Названия VPC вы можете выбрать сами.
- ☑️ Создает сети и подсети для данных VPC в соответствии со схемой и заполненным файлом variables.tf
- ☑️ Создает необходимые облачные статические маршруты и назначает их на подсети VPC
- ☑️ Создает 2 ВМ FW: Check Point CloudGuard IaaS - Firewall & Threat Prevention BYOL и 1 ВМ Сервер Управления: Check Point CloudGuard IaaS - Security Management BYOL. Оба образа имеют триал период. При использовании в прод для FW существует образ PAYG (с оплатой по факту использования), а для Сервера Управления необходимо приобрести лицензию отдельно от CheckPoint либо использовать свою on-prem license.
- ☑️ Выполняет настройку FW с помощью cloud-config в соответствии со схемой (интерфейсы, маршруты, пароли). Благодаря этому нет необходимости проходить First time wizard.
- ☑️ Создает тестовую windows машину для управления файрволами с помощью CheckPoint SMS.
Пререквизиты
- :white_check_mark: должен быть аккаунт в облаке Yandex.Cloud
- :white_check_mark: установлен и настроен yc cli
- :white_check_mark: установлен и настроен git
- :white_check_mark: установлен terraform
- :white_check_mark: учетная запись облака с правами admin облака
Развертывание с помощью Terraform
- скачайте все файлы и перейдите в папку
- заполните файл provider.tf вашим cloud_id и токеном (oauth токен либо файл-ключ сервисного аккаунта). Подробности тут
- заполните файл variables.tf . Файл содержит default значения, но вы можете менять их своими данными (подсети, название vpc, название folder и др.). Обязательный параметр для смены - cloud_id. Пример:
```Python
//-------------For terrafrom
variable "cloud_id" {
default = "Your cloud id" #yc config get cloud-id
}
//------------VPC List
//--VPC 1
variable "vpc_name_1" {
default = "servers" #choose your name for vpc-1
}
variable "subnet-a_vpc_1" {
default = "10.160.1.0/24" #change if you need
}
variable "subnet-b_vpc_1" {
default = "10.161.1.0/24" #change if you need
}
//--VPC 2
variable "vpc_name_2" {
default = "database" #choose your name for vpc-2
}
variable "subnet-a_vpc_2" {
default = "10.160.2.0/24" #change if you need
}
variable "subnet-b_vpc_2" {
default = "10.161.2.0/24" #change if you need
}
...
- запустите команду:
terraform init
- запустите команду:
terraform apply
- по результатам вы получите outputs в консоли:
```Python
Outputs:
a-external_ip_address_of_win-check-vm = "193.32.218.131" # адрес windows ВМ для управления (зайдите скачайте через ui сервера управления gui консоль)
b-password-for-win-check = <sensitive> # пароль для win ВМ (для получения выполните "terraform output b-password-for-win-check")
c-ip_address_mgmt-server = "192.168.1.100" # адрес сервера управления
d-ui_console_mgmt-server_password = "admin" # пароль по умолчанию для ui сервера управления
e-gui_console_mgmt-server_password = <sensitive> # пароль для входа в gui консоль сервера управления ("terraform output e-gui_console_mgmt-server_password")
f-sic-password = <sensitive> # SIC пароль для связи между сервером управления и FW ("terraform output f-sic-password")
g-ip_address_fw-a = "192.168.1.10" # адрес FW-A
h-ip_address_fw-b = "192.168.2.10" # адрес FW-B
i-path_for_private_ssh_key = "./pt_key.pem" # SSH ключ для подключения к Checkpoint ВМ
- последовательность действий:
- подключиться к win ВМ по RDP
- подключиться через браузер к адресу сервера управления (ввести дефолт логин, пароль и сменить его)
- скачать gui консоль из UI
- подключиться через gui к серверу управления (ввести логин admin, пароль e-gui_console_mgmt-server_password)
- добавить оба FW в сервер управления (используя SIC password)
Требования к развертыванию в PROD
По итогам теста следуйте следующим указаниям для обеспечения безопасности вашей инфраструктуры:
- Обязательно смените пароли, которые были переданы через сервис metadata в файлах: check-init...yaml и cloud-int_win...yaml. Пароли:
- Пароль администратора windows ВИ
- Пароль от gui консоли сервера управления
- Пароль SIC для связи сервера управления и FW
- Сохраните ssh ключ pt_key.pem в надеждное место либо пересоздайте его отдельно от terraform с помощью ваших bastion инструментов
- Удалите публичный адрес у windows ВМ
- Настройте ACL и NAT политики в CheckPoint NGFW
- Учесть особенности облачной сети и не назначать публичные адреса средствами облака на ВМ, у которых в качестве default gateway указан CheckPoint NGFW. Подробности (https://cloud.yandex.ru/docs/vpc/concepts/static-routes#internet-routes)
- Выбрать подходящую лицензию и образ: Для FW Либо PAYG из marketplace либо BYOL , для сервера управления BYOL со своей лицензией