В UserGate NGFW версии 7.5.0 и выше серверные правила VPN реализованы в виде модульной структуры, состоящей из трех отдельно настраиваемых объектов:
Подробнее о структуре серверных правил — в разделе «Общие понятия».
Серверные правила создаются для двух сценариев:
Защищенное соединение офисов (site-to-site VPN). Подробнее о создании site-to-site VPN — в разделе «Настройка VPN для защищенного соединения офисов».
Удаленный доступ конечных устройств в сеть офиса (remote access VPN). Подробнее о создании remote access VPN — в разделе «Настройка VPN для удаленного доступа в сеть».
В интерфейсе командной строки серверные правила VPN настраиваются на уровне vpn-server.
Правила подключения описывают первый этап установления соединения. Этап начинается с инициации соединения со стороны VPN-клиента (узла-инициатора) и заканчивается ответом VPN-сервера (узла-ответчика) с предложением обмена ключами, либо разрывом соединения. Правила содержат проверки зоны источника, адреса инициатора, адреса назначения, типа протокола и определяют параметры фазы 1 установления защищенного соединения.
Команда для создания правила подключения:
Admin@nodename# create vpn-server connection-rules [ike|dtls] <parameters>
Дополнительные параметры команды.
|
Параметр |
Описание |
|---|---|
|
ike |
Протокол подключения. Может использоваться в сценариях site-to-site и remote access VPN |
|
dtls |
Протокол подключения. Используется только при подключении конечных устройств с помощью UserGate Client в сценарии remote access VPN |
|
name |
Название правила подключения |
|
description |
Описание правила подключения |
|
protocol |
Версия протокола IKE:
|
|
ike-mode |
Режим работы протокола IKEv1:
|
|
psk |
Значение общего ключа (pre-shared key) |
|
src-zones |
Зона источника трафика |
|
src-ips |
Адрес источника трафика (инициатора соединения):
|
|
dst-ips |
Адрес назначения трафика (интерфейса, на который будут приходить подключения):
|
|
key-lifetime |
Время жизни ключа. По истечении этого времени происходит повторная аутентификация и согласование настроек фазы 1:
|
|
dpd-state |
Режимы работы механизма Dead peer detection (DPD):
|
|
dpd-interval |
Интервал отправки дополнительных запросов DPD. Указывается в секундах |
|
dpd-max-failures |
Количество повторов отправки DPD-запросов |
|
dh-groups |
Группы Диффи-Хеллмана, которые будут использоваться для обмена ключами |
|
security |
Алгоритмы аутентификации и шифрования |
|
dtls-security |
Алгоритмы аутентификации и шифрования для использования с протоколом DTLS. |
Пример создания правила подключения с протоколом IKE:
Admin@nodename# create vpn-server connection-rules ike name Test1 description "Test connection rule #1" protocol ikev1 psk 123321 ike-mode main src-zones [ Untrusted ] dh-groups [ "Group 2 Prime 1024 bit" "Group 14 Prime 2048 bit" ] security [ SHA1/AES256 SHA256/AES256 ] key-lifetime 1h dpd-state always dpd-interval 65 dpd-max-failures 5
Repeat preshared key:
Admin@nodename# show vpn-server connection-rules ike Test1
name : Test1
description : Test connection rule #1
type : ike
protocol : ikev1
ike-mode : main
src-zones : Untrusted
dh-groups : Group 2 Prime 1024 bit; Group 14 Prime 2048 bit
security :
authentication : SHA1
encryption : AES256
authentication : SHA256
encryption : AES256
key-lifetime : 1 h
dpd-state : always
dpd-interval : 65
dpd-max-failures : 5
Admin@nodename#
Для изменения параметров правила подключения используется команда:
Admin@nodename# set vpn-server connection-rules [ike|dtls] [rule-name] <parameters>
Для просмотра созданных ранее правил подключения используется команда:
Admin@nodename# show vpn-server connection-rules [ike|dtls] <rule-name>
Для удаления правил подключения используется команда:
Admin@nodename# delete vpn-server connection-rules [ike|dtls] [rule-name]
Правила аутентификации описывают второй этап установления соединения. Этап начинается с ответа узла-инициатора на предложение по обмену ключами и заканчивается после аутентификации инициатора. Правила содержат проверки типа аутентификации и определяют параметры фазы 2 установления защищенного соединения.
Команда для создания правила аутентификации:
Admin@nodename# create vpn-server authentication-rules [site-to-site|remote-access] <parameters>
Дополнительные параметры команды.
|
Параметр |
Описание |
|---|---|
|
ikev2 |
Протокол установления защищенного соединения IPsec IKEv2 |
|
ipsec |
Протокол установления защищенного соединения IPsec IKEv1. Используется только в сценарии site-to-site |
|
l2tp-ipsec |
Протокол установления защищенного соединения L2TP/IPsec IKEv1 |
|
dtls |
Протокол установления защищенного соединения DTLS. Используется только в сценарии remote access |
|
name |
Название правила аутентификации |
|
description |
Описание правила аутентификации |
|
auth-ptofile |
Профиль аутентификации для пользователей VPN |
|
connection-rules |
Выбор созданного ранее правила подключения |
|
initiator-type |
Выбор параметра идентификации узла-инициатора соединения:
|
|
initiator-value |
Значение параметра идентификации узла-инициатора:
|
|
responder-type |
Выбор параметра идентификации узла-ответчика:
|
|
responder-value |
Значение параметра идентификации узла-ответчика:
|
|
auth-mode |
Выбор режима аутентификации:
|
|
psk |
Значение общего ключа (pre-shared key) для сценария site-to-site с IKEv2 |
|
certificate |
Сертификат сервера. Сертификат используется для аутентификации сервера при установлении VPN-соединения. |
|
client-certificate-profile |
Профиль сертификата VPN-клиента. Профиль клиентского сертификата предназначен для получения имени пользователя из соответствующего атрибута в сертификате клиента, проверки иерархии доверия и подлинности сертификата по спискам отозванных сертификатов. Подробнее о создании профиля клиентского сертификата — в разделе «Настройка профилей клиентских сертификатов» |
|
key-lifetime |
Время жизни ключа. По истечении этого времени происходит повторная аутентификация и согласование настроек фазы 2:
|
|
key-lifesize-enabled |
Включение параметра указания максимального размера данных, шифруемых одним ключом:
|
|
key-lifesize |
Максимальный размер данных, шифруемых одним ключом:
|
|
nat-keepalive |
NAT keepalive применяется в сценариях, когда IPsec-трафик проходит через узел с NAT. Записи в таблице трансляций NAT активны в течение ограниченного времени. Если за этот промежуток времени не было трафика по VPN-туннелю, записи в таблице трансляций на узле с NAT будут удалены и трафик по VPN-туннелю в дальнейшем не сможет проходить. С помощью функции NAT keepalive VPN-сервер, находящийся за шлюзом NAT, периодически отправляет пакеты keepalive в сторону VPN-клиентов для поддержания сессии NAT активной. Необходимо указать интервал отправки пакетов keepalive |
|
local-networks remote-networks |
Адреса локальных и удаленных подсетей. Используются для определения селекторов трафика при организации защищенного канала передачи данных IPsec. В ходе фазы 2 стороны туннеля обмениваются своими предложениями по селекторам трафика. Для успешного установления туннеля сети в селекторах трафика от обеих сторон соединения должны совпасть или пересечься. Если нет совпадения хотя бы по одной из сторон, фаза 2 завершится ошибкой соединения. Адреса указываются в формате [ <ip/mask> <ip/mask> ... ] |
|
dont-check-initiator-annonce |
При активации этого параметра VPN-сервер не будет проверять подсети инициатора соединения в селекторе трафика при организации защищенного канала передачи данных. Функция удобна для подключения множества клиентов (инициаторов) по одному правилу |
|
dynamic-routing |
Разрешить для протокола IKEv2 работу протоколов динамической маршрутизации через туннель |
|
security |
Указание алгоритмов аутентификации и шифрования канала передачи данных |
Пример создания правила аутентификации с протоколом L2TP/IPsec:
Admin@nodename# create vpn-server authentication-rules site-to-site l2tp-ipsec name Test2 description "Test authentication rule #2" initiator-type ipv4 initiator-value 172.16.1.10 responder-type ipv4 responder-value 172.16.1.1 auth-profile "Local auth profile" key-lifetime 1h key-lifesize-enabled on key-lifesize 100MB security [ SHA1/AES256 SHA256/AES256 ] connection-rules [ CR1 ]
Admin@nodename# show vpn-server authentication-rules site-to-site l2tp-ipsec Test2
name : Test2
description : Test authentication rule #2
connection-rules : CR1
initiator-type : ipv4
initiator-value : 172.16.1.10
responder-type : ipv4
responder-value : 172.16.1.1
auth-profile : Local auth profile
key-lifetime : 1 h
key-lifesize-enabled : on
key-lifesize : 100.0 MB
nat-keepalive : 0
security :
authentication : SHA1
encryption : AES256
authentication : SHA256
encryption : AES256
Admin@nodename#
Для изменения параметров правила аутентификации используется команда:
Admin@nodename# set vpn-server authentication-rules [site-to-site|remote-access] [rule-name] <parameters>
Для просмотра созданных правил аутентификации используется команда:
Admin@nodename# show vpn-server authentication-rules [site-to-site|remote-access] [ikev2|ipsec|l2tp-ipsec] <rule-mane>
Для удаления правил аутентификации используется команда:
Admin@nodename# delete vpn-server authentication-rules [site-to-site|remote-access] [ikev2|ipsec|l2tp-ipsec] [rule-name]
Политики VPN описывают третий этап установления соединения. Этап начинается идентификацией инициатора и завершается выделением сетевых параметров подключения: туннельного интерфейса, пула адресов в VPN-туннеле, маршрутов к сетевым ресурсам через туннель, адресов DNS-серверов.
Политики VPN создаются с помощью синтаксиса языка UPL.
Команда для создания политик VPN:
Admin@nodename# create vpn-server vpn-policy [position] upl-rule
Дополнительные параметры команды.
|
Параметр |
Описание |
|---|---|
|
OK |
Действие для создания правила с помощью UPL |
|
enabled |
Включение или отключение правила:
Если при создании правила не указывать, то правило будет включено после создания |
|
name |
Название правила. Например: name("VPN rule example") |
|
desc |
Описание правила. Например: desc("VPN rule example configured in CLI") |
|
auth_rules |
Выбор созданного ранее правила аутентификации. Например: auth_rules("Authentication rule 1") |
|
interface |
VPN-интерфейс, который будет использоваться для подключения клиентов VPN. Например, чтобы указать интерфейс tunnel1: interface(tunnel1). |
|
ip_range |
Диапазон IP-адресов туннеля, которые будут использованы VPN-клиентами. Например: ip_range("172.30.255.2-172.30.255.5") |
|
mask |
Маска сети VPN-туннеля. Например: mask(255.255.255.0) |
|
vpn_routes |
Маршруты, передаваемые узлу-инициатору при установлении VPN-туннеля. Например: vpn_routes(10.10.0.0/24) |
|
use_system_dns |
Использование системных DNS-серверов для VPN-клиентов. Например: use_system_dns(true) или use_system_dns(false) |
|
dns_server |
Адрес DNS-сервера. Например: dns_server(10.10.0.100) |
|
user |
Пользователи и группы пользователей, которым разрешено подключение по VPN. Для добавления LDAP-групп и пользователей необходим корректно настроенный LDAP-коннектор. Подробнее о настройке LDAP-коннектора через CLI — в разделе «Настройка LDAP-коннектора». Пример добавления локального пользователя (local_user) и группы (Local Group), пользователя (example.local\AD_user) и группы LDAP (AD group): user = (local_user, "CN=Local Group,DC=LOCAL", "example.loc\\AD_user", "CN=AD group,OU=Example,DC=example,DC=loc") Заранее был настроен домен Active Directory example.loc. При добавлении пользователей и групп LDAP можно указать список путей на сервере, начиная с которых система будет осуществлять поиск пользователей и групп. |
|
type |
Сценарий установления VPN-соединения. Возможные значения:
|
|
include_routes |
Для каждого включенного адреса в таблице маршрутизации конечного устройства добавляется маршрут вида n.n.n.n/c ➜ VPN-шлюз с гарантированно минимальной метрикой 2. Например: include_routes(10.10.10.10/32) |
|
exclude_routes |
При добавлении IP-адресов в список исключаемых, в таблице маршрутизации конечного устройства будет добавлен маршрут по умолчанию вида 0.0.0.0/0 ➜ VPN-шлюз. Имеющийся ранее маршрут по умолчанию будет удален из таблицы. Для каждого исключаемого адреса добавляется свой маршрут через интерфейс с лучшей метрикой в обход VPN. Например: exclude_routes(10.10.10.10/32) |
|
disable_lan |
Если включен этот параметр (disable_lan(true)), то для каждой подсети локального интерфейса создается копия маршрута через VPN-шлюз с гарантированно минимальной метрикой 2. Такие же копии маршрутов создаются для всех адресов, которые имеют тип local interface |
|
tunnel_all |
Если включен этот параметр (tunnel_all(true)), в таблицу маршрутизации конечного устройства будет добавлен маршрут по умолчанию (default route) вида 0.0.0.0/0 ➜ VPN-шлюз. Имеющийся ранее маршрут по умолчанию будет удален из таблицы маршрутизации конечного устройства |
Пример политики VPN для сценария site-to-site с протоколом L2TP/IPsec:
Admin@nodename# create vpn-server vpn-policy 6 upl-rule \
...OK
...auth_rules(AR1) \
...vpn_routes(10.10.0.0/24) \
...ip_range("172.30.255.2-172.30.255.5") \
...desc("Серверная политика VPN 1") \
...mask(255.255.255.0) \
...use_system_dns(false) \
...user = "CN=VPN users,DC=LOCAL" \
...dns_server(8.8.8.8) \
...enabled(false) \
...type(s2s_l2tp) \
...interface(tunnel2) \
...name(VR1)
Для изменения параметров политики VPN используется команда:
Admin@nodename# set vpn-server vpn-policy [position] upl-rule
Для просмотра созданных политик VPN используется команда:
Admin@nodename# show vpn-server vpn-policy <position>
Для удаления политик VPN используется команда:
Admin@nodename# delete vpn-server vpn-policy [position]
В режиме диагностики интерфейса командной строки вы можете просматривать события журналов диагностики VPN-сервера в статическом и динамическом режиме.
Для вывода всего журнала диагностики VPN-сервера в консоль используйте команду:
Admin@nodename> show logs log vpn-server static
Для вывода событий журнала диагностики VPN-сервера в консоль в реальном времени используйте команду:
Admin@nodename> show logs log vpn-server dynamic
Для отключения вывода событий журнала используйте комбинацию клавиш Ctrl + C.
В командах раздела может использоваться фильтрация вывода. Пример команды с фильтрацией вывода:
Admin@nodename> show logs log vpn-server static | grep l2tp
Подробнее о функции фильтрации вывода — в разделе «Общие положения».
Клиентские правила используются VPN-сервером, который инициирует подключение в сценарии site-to-site VPN. Подробнее о создании site-to-site VPN — в разделе «Настройка VPN для защищенного соединения офисов».
В интерфейсе командной строки клиентские правила VPN настраиваются на уровне vpn-client.
Команда для создания подключения клиента:
Admin@nodename# create vpn-client connections [ikev2|ipsec|l2tp-ipsec] <parameters>
Дополнительные параметры команды.
|
Параметр |
Описание |
|---|---|
|
name |
Название подключения |
|
description |
Описание подключения |
|
ike-mode |
Режим работы IKEv1:
|
|
psk |
Значение общего ключа (pre-shared key) |
|
initiator-type |
Параметр идентификации узла-инициатора:
|
|
initiator-value |
Значение параметра идентификации узла-инициатора:
|
|
responder-type |
Параметр идентификации узла-ответчика:
|
|
responder-value |
Значение параметра идентификации узла-ответчика:
|
|
authentication-login |
Логин для аутентификации узла-инициатора на узле-ответчике в сценарии c протоколом IPsec/L2TP |
|
authentication-password |
Пароль для аутентификации узла-инициатора на узле-ответчике в сценарии c протоколом IPsec/L2TP |
|
check-ip |
Параметр check_ip определяет, будет ли узел-инициатор соединения запрашивать проверку IP-адреса у VPN-сервера. VPN-сервер может принять предложенный IP-адрес или назначить другой. Если параметр разрешен, узел-инициатор соединения добавляет параметр Payload Configuration в сообщение IKE_AUTH и передает в поле INTERNAL_IP4_ADDRESS значение, зависящее от типа туннельного интерфейса:
Если параметр не разрешен, механизм согласования сетевых параметров для проверки IP-адреса туннельного интерфейса на VPN-сервере не применяется. Значение IP-адреса определяется настройками туннельного интерфейса на узле-инициаторе. |
|
auth-mode |
Режим аутентификации:
|
|
certificate |
Сертификат узла-инициатора (клиента) |
|
phase1-key-lifetime |
Время жизни ключа. По истечении этого времени происходит повторная аутентификация и согласование настроек фазы 1:
|
|
dpd-state |
Режимы работы механизма Dead peer detection (DPD):
|
|
dpd-interval |
Интервал отсылки дополнительных запросов DPD. Указывается в секундах |
|
dpd-max-failures |
Количество повторов отправки DPD-запросов |
|
dh-groups |
Группы Диффи-Хеллмана, которые будут использоваться для обмена ключами |
|
phase1-security |
Алгоритмы аутентификации и шифрования для фазы 1 |
|
phase2-key-lifetime |
Время жизни ключа. По истечении этого времени происходит повторная аутентификация и согласование настроек фазы 2:
|
|
key-lifesize-enabled |
Включение параметра указания максимального размера данных, шифруемых одним ключом:
|
|
key-lifesize |
Максимальный размер данных, шифруемых одним ключом:
|
|
dynamic-routing |
Разрешить работу протоколов динамической маршрутизации через туннель (для протокола IKEv2) |
|
local-networks remote-networks |
Адреса локальных и удаленных подсетей. Используются для определения селекторов трафика при организации защищенного канала передачи данных IPsec. В ходе фазы 2 стороны туннеля обмениваются своими предложениями по селекторам трафика. Для успешного установления туннеля сети в селекторах трафика от обеих сторон соединения должны совпасть или пересечься. Если нет совпадения хотя бы по одной из сторон, фаза 2 завершится ошибкой соединения. Адреса указываются в формате [ <ip/mask> <ip/mask> ... ] |
|
phase2-security |
Алгоритмы аутентификации и шифрования канала передачи данных (для фазы 2) |
Пример настройки клиентского подключения с протоколом L2TP/IPsec:
Admin@nodename# create vpn-client connections l2tp-ipsec name Connection1 description "Test connection" ike-mode main authentication-login vpn_client1 authentication-password password111 psk 123321 initiator-type ipv4 initiator-value 172.16.1.10 responder-type ipv4 responder-value 172.16.1.1 phase1-key-lifetime 1h dpd-state off dh-groups [ "Group 2 Prime 1024 bit" "Group 14 Prime 2048 bit" ] phase1-security [ SHA1/AES256 SHA256/AES256 ] phase2-key-lifetime 1h key-lifesize 100MB key-lifesize-enabled on phase2-security [ SHA1/AES256 SHA256/AES256 ]
Repeat preshared key:
Admin@nodename# show vpn-client connections l2tp-ipsec Connection1
name : Connection1
description : Test connection
ike-mode : main
authentication-login : vpn_client1
phase1-key-lifetime : 1 h
phase2-key-lifetime : 1 h
key-lifesize-enabled : on
key-lifesize : 100.0 MB
initiator-type : ipv4
initiator-value : 172.16.1.10
responder-type : ipv4
responder-value : 172.16.1.1
dpd-state : off
dpd-interval : 60
dpd-max-failures : 5
dh-groups : Group 2 Prime 1024 bit; Group 14 Prime 2048 bit
phase1-security :
authentication : SHA1
encryption : AES256
authentication : SHA256
encryption : AES256
phase2-security :
authentication : SHA1
encryption : AES256
authentication : SHA256
encryption : AES256
Admin@nodename#
Для изменения параметров клиентского подключения используется команда:
Admin@nodename# set vpn-client connections [ikev2|ipsec|l2tp-ipsec] <connection-name>
Для просмотра параметров клиентских подключений используется команда:
Admin@nodename# show vpn-client connections [ikev2|ipsec|l2tp-ipsec] <connection-name>
Для удаления клиентского подключения используется команда:
Admin@nodename# delete vpn-client connections [ikev2|ipsec|l2tp-ipsec] <connection-name>
Клиентские правила VPN создаются с помощью синтаксиса языка UPL.
Команда для создания клиентских правил:
Admin@nodename# create vpn-client rules [position] upl-rule
Дополнительные параметры команды.
|
Параметр |
Описание |
|---|---|
|
OK |
Действие для создания правила с помощью UPL |
|
enabled |
Включение или отключение правила:
Если при создании правила не указывать, то правило будет включено после создания |
|
name |
Название правила. Например: name("VPN rule example") |
|
desc |
Описание правила. Например: desc("VPN rule example configured in CLI") |
|
connection |
Название ранее созданного клиентского подключения. Например: connection(Connection1) |
|
interface |
VPN-интерфейс, который будет использоваться для подключения. Например, чтобы указать интерфейс tunnel3: interface(tunnel3) |
|
server_address |
Адрес VPN-сервера (IP-адрес или доменное имя). Например: server_address("172.16.1.1") |
Пример клиентского правила с протоколом L2TP/IPsec:
Admin@nodename# create vpn-client rules 5 upl-rule \
...OK
...server_address(172.16.1.1)
...connection(Connection1)
...interface(tunnel3)
...enabled(false)
...name(Rule1)
Для изменения параметров правила используется команда:
Admin@nodename# set vpn-client rules [position] upl-rule
Для просмотра созданных правил используется команда:
Admin@nodename# show vpn-client rules <position>
Для удаления правил используется команда:
Admin@nodename# delete vpn-client rules [position]
В режиме диагностики интерфейса командной строки вы можете просматривать события журналов диагностики VPN-сервера (когда UserGate NGFW выступает в роли узла-инициатора соединения в сценарии Site-to-site VPN), в статическом и динамическом режиме.
Для вывода всего журнала диагностики VPN-сервера в консоль используйте команду:
Admin@nodename> show logs log vpn-client static
Для вывода событий журнала диагностики VPN-сервера в консоль в реальном времени используйте команду:
Admin@nodename> show logs log vpn-client dynamic
Для отключения вывода событий журнала используйте комбинацию клавиш Ctrl + C.
В командах раздела может использоваться фильтрация вывода. Пример команды с фильтрацией вывода:
Admin@nodename> show logs log vpn-client static | grep l2tp
Подробнее о функции фильтрации вывода — в разделе «Общие положения».