Перед тем как приступить к настройке GlobalProtect, необходимо сгенерировать/импортировать SSL сертификат и создать SSL/TLS Service Profile. А так же необходим Authentication Profile, можно как создать локальную базу пользователей, так и использовать внешнюю. Пример использования OneLogin и AWS SSO.
Security zone
Прежде всего нужно создать зону безопасности для VPN интерфейса. Для этого переходим во вкладку "Network" -> "Zones" и кликаем "Add".
Задаем имя, выбираем "Layer3" в качестве "Type" и включаем "Enable User Identification" параметр. Все остальное оставляем по умолчанию.
Tunnel interface
Теперь создадим туннель, для этого переходим во вкладку "Network" -> "Interfaces" -> "Tunnel" и добавляем новый.
- Number: произвольное число от 1 до 9999
- Comment: опционально, для более быстрой идентификации
- Virtual Router: default
- Security Zone: vpn-zone
Все остальное оставляем по умолчанию.
Кликаем "OK" и проверяем созданный интерфейс.
Static routes
Внутренние сети согласно нашей схемы могут быть доступны через "trust" интерфейс, для этого необходимо создать 2 статических маршрута.
Для этого переходим во вкладку "Network" -> "Virtual Routers" и выбираем "default" роутер.
Переходим во вкладку "Static Routes" и добавляем маршрут
- Destination: "10.0.0.0/8"
- Interface: "ethernet1/3" (trusted-zone)
- Next Hop: "IP Address" — "10.0.13.1"
- Admin Distance: "10"
- Metric: "10"
Где "10.0.13.1" — AWS гейтвей для сети "GP-TRUST-A"
Есть такой момент, в режиме "Active-Passive" статические маршруты синхронизируются между инстансами, а так же синхронизируются "Admin Distance" и "Metric", поэтому мы не можем повлиять на выбор маршрута для каждого инстанса таким образом. В качестве маршрута будет выбираться маршрут с меньшим значением "Admin Distance" и "Metric", а так как параметр "Next Hop" является обязательным, то может получится так, что для инстанса в AZ A будет маршрут через AZ B, который не будет работать. Чтобы обойти этот момент, можно воспользоваться "Path Monitoring Destination", суть в следующем, мы будем проверять доступность гейтвея, и если не доступен, мы не используем данный маршрут. Таким образом на инстансе в AZ A будет активным маршрут через AZ A, на инстансе AZ B через AZ B соответственно.
Проверяем созданный маршрут и мониторинг.
Создаем второй маршрут через AZ B:
- Destination: "10.0.0.0/8"
- Interface: "ethernet1/3" (trusted-zone)
- Next Hop: "IP Address" — "10.0.23.1"
- Admin Distance: "20"
- Metric: "20"
Где "10.0.23.1" — AWS гейтвей для сети "GP-TRUST-B"
А так же добавляем мониторинг для него, в качестве "Destination IP" указываем "10.0.23.1"
GlobalProtect: Portal
Переходим во вкладку "Network" -> "GlobalProtect" -> "Portals" и кликаем "Add".
Вкладка "General"
Задаем имя и указываем в поле "Interface" — "ethernet1/2" (untrusted-zone).
Вкладка "Authentication"
Указываем "SSL/TLS Service Profile".
Добавляем "Client Authentication"
Указываем имя и выбираем профиль, в данном примере в качестве аутентификации используется OneLogin.
Сохраняем и проверяем.
Вкладка "Agent"
Создаем конфигурацию агента "Agent" -> "Add".
Вкладка "Authentication"
Задаем имя.
(опционально)
Вы можете использовать куки, чтобы избежать двойной аутентификации (сначала на портал, затем на шлю), или задать разное время жизни куки для портала и гейтвея. Подробнее тут.
Вкладка "External"
Добавляем гейтвей, для этого в блоке "External Gateways" кликаем "Add".
Указываем имя и DNS имя. Задаем регион — "Any".
В качестве "Connect Method" задаем "On-demand (Manual user initiated connection)".
On-demand — добавляет в клиент возможность отключения ВПН, а так же при запуске клиента не происходит автоматическое подключение.
На этом настройка портала завершена.
GlobalProtect: Gateway
Переходим во вкладку "Network" -> "GlobalProtect" -> "Gateways" и кликаем "Add".
Вкладка "General"
Задаем имя и указываем в поле "Interface" — "ethernet1/2" (untrusted-zone).
Вкладка "Authentication"
Указываем "SSL/TLS Service Profile".
Добавляем "Client Authentication".
Указываем имя и выбираем профиль, в данном примере в качестве аутентификации используется OneLogin.
Вкладка "Agent" -> "Tunnel Settings"
Включаем режим "Tunnel Mode" и указываем туннельный интерфейс, который мы создали.
Переходим во вкладку "Client Settings" и кликаем "Add".
Вкладка "Config Selection Criteria"
Задаем имя, все критерии оставляем по умолчанию.
(опционально) Вкладка "Authentication Override"
Ставим галочки напротив полей:
- Generate cookie for authentication override
- Accept cookie for authentication override
И указываем сертификат для GlobalProtect.
Вкладка "IP Pools" -> "IP POOL" и кликаем "Add". Задаем IP адресов, которые будут выдаваться VPN клиентам.
Во вкладке "Split Tunnel" указываем сети, которые будет анонсировать VPN сервер. В данном случае "10.0.0.0/8". Так же при необходимости можно исключить сети, которые не нужно анонсировать.
На этом настройка гейтвея завершена.
Security policy
Теперь необходимо создать политику безопасности для VPN зоны. Переходим во вкладку "Policies" -> "Security" и кликаем "Add".
Вкладка "General". Задаем имя и проверяем что "Rule Type" имеет значение "universal (default)".
Вкладка "Source". В "SOURCE ZONE" добавляем зону безопасности созданную для VPN подключений, в данном случае это "vpn-zone".
Вкладка "Destination". В "DESTINATION ZONE" добавляем зону безопасности созданную для внутренних сетей, в данном случае это "trust-zone".
Вкладка "Application". Проверяем, что в качестве приложений указано "Any".
Вкладка "Service/URL Category"
Задаем "Any", в качестве сервисов.
Вкладка "Actions"
Убеждаемся, что в качестве действия указано "Allow".
Сохраняем политику безопасности и проверяем, что она находится перед политиками по умолчанию.
NAT Policy
Теперь нужно создать NAT политику, для это переходим во вкладку "Policies" -> "NAT" и кликаем "Add".
Вкладка "General"
Задаем имя, остальное оставляем по умолчанию.
Вкладка "Original Packet"
"SOURCE ZONE" — добавляем зону безопасности созданную для VPN подключений, в данном случае это "vpn-zone".
"Destination Zone" — выбираем зону безопасности созданную для внутренних сетей, в данном случае это "trust-zone".
"Destination Interface" — выбираем интерфейс в "trust-zone", в данном случае это "ethernet1/3".
"Service", "SOURCE ADDRESS" и "DESTINATION ADDRESS" — указываем "Any".
Вкладка "Translated Packet"
Source Address Translation:
- Translation Type: "Dynamic IP And Port"
- Address Type: "Interface Address"
- Interface: "ethernet1/3" (trusted-zone)
- IP Address: "None" (т.к. IP адрес назначается DHCP сервером)
Destination Address Translation:
- Translation Type: "None"
Сохраняем и проверяем.
GlobalProtect Client
Переходим во вкладку "Device" и находим справа пункт "GlobalProtect Client" и скачиваем список версий клиента, кликнув "Check Now".
Если видите подобное сообщение, значит у вас не выполнена активация лицензии. А так как используется BYOL AMI, то без активации лицензии ничего не получится. Так же если вы скачаете бандл с центра поддержки Palo Alto и импортируете его, вы получите ошибку касаемо лицензии на этапе активации.
После получения списка версий, нужно скачать и установить необходимую версию, к примеру самую актуальную. После того, как вы ее установили, необходимо активировать.
Активация не синхронизируется, ее необходимо выполнять на обоих GlobalProtect инстансах.
Осталось сохранить наши изменения, для этого в правом верхнем углу кликаем "Commit".
GlobalProtect: Подключение
Теперь переходим в IdP портал, в данном случае это OneLogin.
Если вы настраивали локальную базу пользователей, то необходимо перейти по ссылке:
https://YOUR_GP_DOMAIN/global-protect/getsoftwarepage.esp
Страница с загрузкой клиента доступна даже без аутентификации
При открытии приложения GlobalProtect вы будете перенаправлены на страницу загрузки клиента.
После скачивания и установки клиента в качестве портала указываем доменное имя для GlobalProtect и учетные данные настроенные в SAML провайдере.