IPsec IKEv2 для мобильных клиентов в pfSense - настройка

IKEv2 (Internet Key Exchange version 2) - наиболее практичный протокол для организации VPN-доступа мобильных пользователей к корпоративной сети через pfSense. Ключевое преимущество IKEv2 перед другими протоколами удалённого доступа - встроенная поддержка во всех современных операционных системах: Windows 10/11, macOS, iOS и Android. Пользователям не требуется устанавливать сторонние VPN-клиенты - подключение выполняется средствами операционной системы.

Данное руководство описывает полный цикл настройки IPsec IKEv2 для мобильных клиентов в pfSense: от создания сертификатов до конфигурации клиентских устройств. Материал рассчитан на администраторов, знакомых с веб-интерфейсом pfSense и базовыми принципами PKI.

Преимущества IKEv2 для удалённого доступа

Перед выбором протокола удалённого доступа следует оценить преимущества IKEv2 по сравнению с альтернативами.

ХарактеристикаIKEv2OpenVPNWireGuard
Встроенная поддержка в ОСWindows, macOS, iOS, AndroidНетНет
Скорость подключенияМенее 1 секунды5-10 секундМенее 1 секунды
Поддержка MOBIKEДа (переключение между Wi-Fi и LTE)НетДа
СтандартизацияRFC 7296ПроприетарныйНестандартный
АутентификацияСертификаты, EAP-MSCHAPv2Сертификаты, паролиPre-shared keys
NAT-TВстроеннаяВстроенная (UDP/TCP)Встроенная

MOBIKE (IKEv2 Mobility and Multihoming Protocol, RFC 4555) позволяет VPN-соединению сохраняться при смене сетевого интерфейса - например, при переключении с Wi-Fi на мобильную сеть. Для мобильных пользователей это критически важная функция.

Подготовка сертификатов

IKEv2 для мобильных клиентов требует инфраструктуру открытых ключей (PKI). Необходимо создать три типа сертификатов: корневой сертификат центра сертификации (CA), серверный сертификат и пользовательские сертификаты (при использовании сертификатной аутентификации).

Создание центра сертификации (CA)

Перейдите в System > Cert. Manager > CAs и нажмите Add.

ПолеЗначениеПояснение
Descriptive NameIKEv2 VPN CAИмя для идентификации CA
MethodCreate an internal Certificate AuthorityСоздание нового CA
Key typeRSAСовместимость со всеми клиентами
Key length4096Минимум 2048 для производственной среды
Digest AlgorithmSHA256Стандартный алгоритм хеширования
Lifetime365010 лет, достаточно для корневого CA
Common NameIKEv2 VPN CAУникальное имя CA
Country Code(ваш код страны)Двухбуквенный код ISO 3166-1
State or Province(ваш регион)Название региона
City(ваш город)Название города
Organization(ваша организация)Название организации

Нажмите Save. Корневой сертификат CA будет использоваться для подписания серверного и пользовательских сертификатов.

Создание серверного сертификата

Перейдите в System > Cert. Manager > Certificates и нажмите Add/Sign.

ПолеЗначениеПояснение
MethodCreate an internal CertificateСоздание нового сертификата
Descriptive NameIKEv2 VPN ServerИмя для идентификации
Certificate authorityIKEv2 VPN CACA, созданный на предыдущем шаге
Key typeRSAСовместимость со всеми клиентами
Key length2048Достаточно для серверного сертификата
Digest AlgorithmSHA256Стандартный алгоритм
Lifetime825Apple ограничивает срок действия серверных сертификатов до 825 дней
Common Namevpn.example.comFQDN сервера или публичный IP-адрес
Certificate TypeServer CertificateТип серверного сертификата

Внимание:

В поле Alternative Names необходимо добавить SAN (Subject Alternative Name) типа FQDN или IP Address, совпадающий с адресом, к которому подключаются клиенты. Без SAN клиенты Windows и iOS откажут в подключении. Если используется IP-адрес, добавьте SAN типа IP Address; если используется доменное имя - SAN типа FQDN.

Внимание:

Apple-устройства (macOS, iOS) не принимают серверные сертификаты с Lifetime более 825 дней. При превышении этого значения подключение завершится ошибкой проверки сертификата.

Создание пользовательских сертификатов

Пользовательские сертификаты необходимы только при использовании аутентификации на основе сертификатов. При использовании EAP-MSCHAPv2 (аутентификация по логину и паролю) этот шаг можно пропустить.

Для каждого пользователя перейдите в System > Cert. Manager > Certificates и нажмите Add/Sign.

ПолеЗначениеПояснение
MethodCreate an internal CertificateСоздание нового сертификата
Descriptive Nameuser-ivanovИмя пользователя для идентификации
Certificate authorityIKEv2 VPN CAТот же CA
Key typeRSAСовместимость со всеми клиентами
Key length2048Достаточно для пользовательского сертификата
Digest AlgorithmSHA256Стандартный алгоритм
Lifetime3651 год - рекомендуемый срок для пользовательских сертификатов
Common Nameuser-ivanovУникальный идентификатор пользователя
Certificate TypeUser CertificateТип пользовательского сертификата

Для экспорта пользовательского сертификата в формате PKCS#12 (.p12) перейдите в System > Cert. Manager > Certificates, найдите нужный сертификат и нажмите иконку экспорта PKCS#12. Этот файл содержит сертификат и закрытый ключ, защищённый паролем.

Настройка Mobile Clients

Конфигурация мобильных клиентов выполняется в разделе VPN > IPsec > Mobile Clients.

Вкладка Mobile Clients

ПолеЗначениеПояснение
Enable IPsec Mobile Client SupportУстановленАктивирует поддержку мобильных клиентов
User AuthenticationLocal DatabaseЛокальная база пользователей pfSense (или RADIUS)
Group Authentication(по необходимости)Ограничение по группе
Virtual Address PoolProvide a virtual IP address to clientsВыдача IP-адресов клиентам
Network ListProvide a list of accessible networks to clientsПередача списка сетей для split tunnel

Virtual Address Pool

ПолеЗначениеПояснение
Virtual Address Pool10.10.10.0/24Пул адресов для VPN-клиентов

Подсеть пула не должна пересекаться с существующими локальными подсетями.

DNS Servers

ПолеЗначениеПояснение
Provide a DNS server list to clientsУстановленПередача DNS-серверов клиентам
DNS Server 110.1.0.1Адрес локального DNS-сервера
DNS Server 21.1.1.1Резервный публичный DNS

Нажмите Save. pfSense предложит создать Phase 1 - нажмите на ссылку для перехода к настройке.

Настройка Phase 1

Phase 1 для мобильных клиентов настраивается в разделе VPN > IPsec > Tunnels. После сохранения настроек Mobile Clients pfSense автоматически создаёт запись Phase 1 с типом mobile.

Phase 1 configuration for mobile clients

Рис. 1. Настройка Phase 1 для мобильных клиентов

General Information

ПолеЗначениеПояснение
Key Exchange versionIKEv2Обязательно IKEv2 для мобильных клиентов
Internet ProtocolIPv4Или IPv6, в зависимости от адресации
InterfaceWANИнтерфейс для приёма подключений
DescriptionIKEv2 Mobile ClientsОписание для идентификации

Phase 1 Proposal - Authentication

ПолеЗначениеПояснение
Authentication MethodEAP-MSCHAPv2Аутентификация по логину и паролю
My identifierDistinguished Name: vpn.example.comДолжен совпадать с CN или SAN серверного сертификата
Peer identifierAnyМобильные клиенты - идентификатор неизвестен заранее
My CertificateIKEv2 VPN ServerСерверный сертификат, созданный ранее
My Certificate AuthorityIKEv2 VPN CACA, подписавший серверный сертификат

При использовании сертификатной аутентификации вместо EAP-MSCHAPv2 выберите Authentication Method: Mutual RSA и укажите соответствующий CA для проверки клиентских сертификатов.

Внимание:

При использовании EAP-MSCHAPv2 необходимо создать пользователей в System > User Manager с паролями. Эти учётные данные используются для аутентификации VPN-подключений.

Phase 1 Proposal - Encryption Algorithm

ПолеЗначениеПояснение
AlgorithmAES-256-GCMАутентифицированное шифрование с аппаратным ускорением
Key Length256 bits (auto)При AES-GCM длина ключа определяется автоматически
HashSHA256PRF (Pseudo-Random Function)
DH Group14 (2048 bit)Минимально рекомендуемая группа

Для совместимости с более широким спектром клиентов допускается добавление дополнительных Encryption Algorithm. Рекомендуемый набор:

AlgorithmHashDH GroupПримечание
AES-256-GCMSHA25614Основной (Windows 10/11, macOS, iOS)
AES-256-CBCSHA25614Резервный (Android, устаревшие клиенты)

Expiration and Replacement

ПолеЗначениеПояснение
Life Time288008 часов
Rekey Time(пусто)Автоматический расчёт
Reauth Time(пусто)Автоматический расчёт

Advanced Options

ПолеЗначениеПояснение
NAT TraversalAutoАвтоматическое определение NAT
MOBIKEEnableПоддержка переключения между сетями
Dead Peer DetectionEnabledОбнаружение отключённых клиентов
DPD Delay30Интервал DPD в секундах
DPD Max Failures5Количество неответов до отключения

Внимание:

MOBIKE необходимо включить для мобильных клиентов. Без MOBIKE VPN-соединение разрывается при смене сети (например, при переходе с Wi-Fi на LTE).

Настройка Phase 2

После сохранения Phase 1 необходимо создать Phase 2. Нажмите Show Phase 2 Entries, затем Add P2.

Phase 2 configuration for mobile clients

Рис. 2. Настройка Phase 2 для мобильных клиентов

General Information

ПолеЗначениеПояснение
ModeTunnel IPv4Стандартный режим
Local NetworkLAN subnetИли конкретная подсеть: 10.1.0.0/24
NAT/BINATNoneБез трансляции адресов
DescriptionIKEv2 Mobile - LAN AccessОписание Phase 2

При необходимости доступа к нескольким подсетям (LAN, DMZ, серверная сеть) следует создать отдельную запись Phase 2 для каждой подсети.

Phase 2 Proposal

ПолеЗначениеПояснение
ProtocolESPШифрование и аутентификация трафика
Encryption AlgorithmsAES-256-GCMДолжен соответствовать возможностям клиентов
Hash AlgorithmsSHA256Для совместимости с клиентами без поддержки GCM
PFS key group14 (2048 bit)Perfect Forward Secrecy

Expiration and Replacement

ПолеЗначениеПояснение
Life Time36001 час
Rekey Time(пусто)Автоматический расчёт

Правила файрвола

Для работы IKEv2 VPN необходимо создать правила на двух вкладках: WAN и IPsec.

Правила на WAN-интерфейсе

На WAN-интерфейсе должен быть разрешён входящий трафик для установления IKE-соединений.

ДействиеПротоколИсточникПорт назначенияОписание
PassUDPAny500IKE - обмен ключами
PassUDPAny4500NAT-T - инкапсуляция ESP в UDP

pfSense автоматически создаёт правила для IKE-трафика при наличии настроенных IPsec-туннелей. Однако при использовании плавающих правил или нестандартной конфигурации файрвола может потребоваться явное добавление этих правил.

Правила на вкладке IPsec

Вкладка Firewall > Rules > IPsec управляет трафиком, проходящим через VPN-туннель. По умолчанию весь трафик блокируется.

Минимальный набор правил:

ДействиеПротоколИсточникНазначениеОписание
PassAny10.10.10.0/24LAN netРазрешить трафик из VPN-пула в LAN
PassAny10.10.10.0/2410.10.10.0/24Разрешить трафик между VPN-клиентами

В производственной среде рекомендуется ограничивать правила конкретными протоколами и портами. Например, разрешить только DNS (UDP/TCP 53), RDP (TCP 3389), SSH (TCP 22) и HTTPS (TCP 443).

Более подробно о правилах файрвола описано в разделе Правила файрвола pfSense .

Настройка клиентов

Windows 10/11

Windows 10 и 11 поддерживают IKEv2 через встроенный VPN-клиент. Для подключения необходимо импортировать сертификат CA и создать VPN-подключение.

Импорт сертификата CA

  1. Экспортируйте сертификат CA из pfSense: System > Cert. Manager > CAs - нажмите иконку экспорта CA Certificate.
  2. Скопируйте файл .crt на компьютер с Windows.
  3. Откройте файл .crt двойным щелчком.
  4. Нажмите Install Certificate.
  5. Выберите Local Machine и нажмите Next.
  6. Выберите Place all certificates in the following store и нажмите Browse.
  7. Выберите Trusted Root Certification Authorities и нажмите OK.
  8. Нажмите Next, затем Finish.

Внимание:

Сертификат CA необходимо установить в хранилище Trusted Root Certification Authorities компьютера (Local Machine), а не пользователя (Current User). В противном случае Windows не сможет проверить серверный сертификат.

Создание VPN-подключения

  1. Откройте Settings > Network & Internet > VPN.
  2. Нажмите Add a VPN connection.
  3. Заполните параметры:
ПолеЗначение
VPN providerWindows (built-in)
Connection nameOffice VPN
Server name or addressvpn.example.com
VPN typeIKEv2
Type of sign-in infoUser name and password
User name(имя пользователя из pfSense)
Password(пароль пользователя)
  1. Нажмите Save.
  2. Для подключения нажмите на созданное VPN-соединение и нажмите Connect.

Усиление безопасности на Windows

По умолчанию Windows может использовать слабые алгоритмы шифрования. Для принудительного использования стойких алгоритмов выполните в PowerShell от имени администратора:

Set-VpnConnectionIPsecConfiguration -ConnectionName "Office VPN" `
    -AuthenticationTransformConstants GCMAES256 `
    -CipherTransformConstants GCMAES256 `
    -EncryptionMethod AES256 `
    -IntegrityCheckMethod SHA256 `
    -DHGroup Group14 `
    -PfsGroup PFS2048 `
    -Force

macOS

macOS поддерживает IKEv2 через встроенные средства. Для настройки необходимо импортировать сертификат CA и создать сетевой профиль.

Импорт сертификата CA

  1. Экспортируйте сертификат CA из pfSense в формате .crt.
  2. Откройте файл на macOS - откроется Keychain Access.
  3. Добавьте сертификат в System keychain.
  4. Откройте добавленный сертификат двойным щелчком.
  5. В разделе Trust установите When using this certificate в значение Always Trust.
  6. Закройте окно и введите пароль администратора для подтверждения.

Создание VPN-подключения

  1. Откройте System Settings > VPN (macOS 13+) или System Preferences > Network (macOS 12 и ранее).
  2. Нажмите Add VPN Configuration > IKEv2.
  3. Заполните параметры:
ПолеЗначение
Display NameOffice VPN
Server Addressvpn.example.com
Remote IDvpn.example.com
Local ID(оставьте пустым)
User AuthenticationUsername
Username(имя пользователя из pfSense)
Password(пароль пользователя)
  1. Нажмите Create.
  2. Для подключения переключите переключатель VPN-соединения.

iOS

iOS поддерживает IKEv2 без установки дополнительных приложений.

Установка профиля с CA-сертификатом

  1. Экспортируйте сертификат CA из pfSense.
  2. Отправьте файл .crt на устройство (через AirDrop, email или веб-сервер).
  3. Откройте файл на устройстве - появится предложение установить профиль.
  4. Перейдите в Settings > General > VPN & Device Management.
  5. Нажмите на загруженный профиль и нажмите Install.
  6. После установки перейдите в Settings > General > About > Certificate Trust Settings.
  7. Включите доверие к установленному CA-сертификату.

Создание VPN-подключения

  1. Перейдите в Settings > General > VPN & Device Management > VPN.
  2. Нажмите Add VPN Configuration.
  3. Заполните параметры:
ПолеЗначение
TypeIKEv2
DescriptionOffice VPN
Servervpn.example.com
Remote IDvpn.example.com
Local ID(оставьте пустым)
User AuthenticationUsername
Username(имя пользователя из pfSense)
Password(пароль пользователя)
  1. Нажмите Done.
  2. Для подключения переключите переключатель VPN в настройках.

Android

Android поддерживает IKEv2 начиная с версии 11 через встроенный VPN-клиент. Для более ранних версий потребуется приложение strongSwan VPN Client из Google Play.

Android 11 и новее (встроенный клиент)

  1. Экспортируйте сертификат CA из pfSense.
  2. Перейдите в Settings > Security > Encryption & credentials > Install a certificate.
  3. Выберите CA certificate и установите файл .crt.
  4. Перейдите в Settings > Network & Internet > VPN.
  5. Нажмите + для добавления нового VPN-профиля.
  6. Заполните параметры:
ПолеЗначение
NameOffice VPN
TypeIKEv2/IPSec MSCHAPv2
Server addressvpn.example.com
IPSec identifier(оставьте пустым)
IPSec CA certificate(выберите установленный CA)
Username(имя пользователя из pfSense)
Password(пароль пользователя)
  1. Нажмите Save.

strongSwan VPN Client (Android 10 и ранее)

  1. Установите strongSwan VPN Client из Google Play.
  2. Импортируйте сертификат CA через приложение.
  3. Создайте новый VPN-профиль:
ПолеЗначение
Servervpn.example.com
VPN TypeIKEv2 EAP (Username/Password)
Username(имя пользователя из pfSense)
Password(пароль пользователя)
CA certificateSelect automatically
  1. Нажмите Save и подключитесь.

Split Tunnel и Full Tunnel

Режим туннелирования определяет, какой трафик клиента проходит через VPN.

Full Tunnel

При полном туннелировании весь трафик клиента направляется через VPN, включая доступ в интернет. Этот режим обеспечивает максимальную защиту, но увеличивает нагрузку на VPN-сервер и канал связи.

Для настройки Full Tunnel:

  1. В VPN > IPsec > Mobile Clients снимите флажок Provide a list of accessible networks to clients.
  2. В Phase 2 установите Local Network в значение Network / 0.0.0.0/0.
  3. Настройте правило NAT для исходящего трафика VPN-клиентов: Firewall > NAT > Outbound - добавьте правило для подсети 10.10.10.0/24 с интерфейсом WAN.

Внимание:

При Full Tunnel необходимо настроить Outbound NAT для подсети VPN-клиентов, иначе VPN-клиенты не получат доступ в интернет через туннель.

Split Tunnel

При раздельном туннелировании через VPN проходит только трафик к указанным сетям. Остальной трафик (включая интернет) идёт через обычное подключение клиента.

Для настройки Split Tunnel:

  1. В VPN > IPsec > Mobile Clients установите флажок Provide a list of accessible networks to clients.
  2. В Phase 2 создайте отдельную запись для каждой защищаемой подсети (например, 10.1.0.0/24 для LAN, 10.2.0.0/24 для серверной сети).
  3. Список подсетей из Phase 2 будет автоматически передан клиентам.

Особенности DNS при Split Tunnel

При Split Tunnel DNS-запросы могут направляться как через VPN, так и через локальное подключение. Это создаёт риск утечки DNS - запросы к внутренним доменам могут уходить через провайдера.

Для минимизации утечки DNS:

  • Передавайте клиентам DNS-сервер через настройки Mobile Clients.
  • На Windows: используйте параметр NRPT (Name Resolution Policy Table) для маршрутизации DNS-запросов к конкретным доменам через VPN.
  • На macOS/iOS: DNS-трафик к указанному серверу автоматически направляется через VPN при корректной настройке маршрутов.

Устранение неполадок

Клиент не может подключиться

ПроблемаПричинаРешение
Timeout при подключенииБлокировка UDP 500/4500Проверьте правила файрвола на WAN и у провайдера
IKE authentication credentials are unacceptableНеверный логин/парольПроверьте учётные данные в User Manager
The certificate chain is not trustedCA-сертификат не установленУстановите CA-сертификат в доверенное хранилище на клиенте
The remote server is not respondingНеверный адрес сервераПроверьте адрес сервера в настройках клиента и DNS-разрешение

Ошибки сертификатов

ПроблемаПричинаРешение
Certificate has expiredИстёк срок действия сертификатаПеревыпустите сертификат в Cert. Manager
Certificate name mismatchCN/SAN не совпадает с адресомПересоздайте серверный сертификат с корректным SAN
iOS отклоняет сертификатLifetime > 825 днейПересоздайте серверный сертификат с Lifetime 825 или менее
Windows: Error 13801Проблема с серверным сертификатомУбедитесь, что CA установлен в Local Machine, а не Current User

Ошибки EAP

ПроблемаПричинаРешение
EAP_MSCHAPV2 failedНеверные учётные данныеСбросьте пароль пользователя в User Manager
no EAP method selectedНеверный Authentication MethodУстановите EAP-MSCHAPv2 в Phase 1
Подключение разрывается через 1 секундуПользователь не входит в группуПроверьте групповые ограничения в Mobile Clients

Подключение установлено, но нет доступа к ресурсам

ПроблемаПричинаРешение
Нет пинга до хостов в LANОтсутствуют правила на вкладке IPsecСоздайте правила, разрешающие трафик из VPN-пула
DNS не работаетDNS-сервер не передан клиентуНастройте DNS Server в Mobile Clients
Нет интернета при Full TunnelОтсутствует Outbound NATДобавьте правило Outbound NAT для VPN-подсети

Диагностические команды

# View active IKEv2 sessions
ipsec statusall

# View connected mobile clients
ipsec leases

# View IPsec logs in real time
clog -f /var/log/ipsec.log

# Restart IPsec service
ipsec restart

Связанные разделы

Last updated on