Перед тем как приступить к настройке 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 провайдере.