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 по сравнению с альтернативами.
| Характеристика | IKEv2 | OpenVPN | WireGuard |
|---|---|---|---|
| Встроенная поддержка в ОС | 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 Name | IKEv2 VPN CA | Имя для идентификации CA |
| Method | Create an internal Certificate Authority | Создание нового CA |
| Key type | RSA | Совместимость со всеми клиентами |
| Key length | 4096 | Минимум 2048 для производственной среды |
| Digest Algorithm | SHA256 | Стандартный алгоритм хеширования |
| Lifetime | 3650 | 10 лет, достаточно для корневого CA |
| Common Name | IKEv2 VPN CA | Уникальное имя CA |
| Country Code | (ваш код страны) | Двухбуквенный код ISO 3166-1 |
| State or Province | (ваш регион) | Название региона |
| City | (ваш город) | Название города |
| Organization | (ваша организация) | Название организации |
Нажмите Save. Корневой сертификат CA будет использоваться для подписания серверного и пользовательских сертификатов.
Создание серверного сертификата
Перейдите в System > Cert. Manager > Certificates и нажмите Add/Sign.
| Поле | Значение | Пояснение |
|---|---|---|
| Method | Create an internal Certificate | Создание нового сертификата |
| Descriptive Name | IKEv2 VPN Server | Имя для идентификации |
| Certificate authority | IKEv2 VPN CA | CA, созданный на предыдущем шаге |
| Key type | RSA | Совместимость со всеми клиентами |
| Key length | 2048 | Достаточно для серверного сертификата |
| Digest Algorithm | SHA256 | Стандартный алгоритм |
| Lifetime | 825 | Apple ограничивает срок действия серверных сертификатов до 825 дней |
| Common Name | vpn.example.com | FQDN сервера или публичный IP-адрес |
| Certificate Type | Server 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.
| Поле | Значение | Пояснение |
|---|---|---|
| Method | Create an internal Certificate | Создание нового сертификата |
| Descriptive Name | user-ivanov | Имя пользователя для идентификации |
| Certificate authority | IKEv2 VPN CA | Тот же CA |
| Key type | RSA | Совместимость со всеми клиентами |
| Key length | 2048 | Достаточно для пользовательского сертификата |
| Digest Algorithm | SHA256 | Стандартный алгоритм |
| Lifetime | 365 | 1 год - рекомендуемый срок для пользовательских сертификатов |
| Common Name | user-ivanov | Уникальный идентификатор пользователя |
| Certificate Type | User Certificate | Тип пользовательского сертификата |
Для экспорта пользовательского сертификата в формате PKCS#12 (.p12) перейдите в System > Cert. Manager > Certificates, найдите нужный сертификат и нажмите иконку экспорта PKCS#12. Этот файл содержит сертификат и закрытый ключ, защищённый паролем.
Настройка Mobile Clients
Конфигурация мобильных клиентов выполняется в разделе VPN > IPsec > Mobile Clients.
Вкладка Mobile Clients
| Поле | Значение | Пояснение |
|---|---|---|
| Enable IPsec Mobile Client Support | Установлен | Активирует поддержку мобильных клиентов |
| User Authentication | Local Database | Локальная база пользователей pfSense (или RADIUS) |
| Group Authentication | (по необходимости) | Ограничение по группе |
| Virtual Address Pool | Provide a virtual IP address to clients | Выдача IP-адресов клиентам |
| Network List | Provide a list of accessible networks to clients | Передача списка сетей для split tunnel |
Virtual Address Pool
| Поле | Значение | Пояснение |
|---|---|---|
| Virtual Address Pool | 10.10.10.0/24 | Пул адресов для VPN-клиентов |
Подсеть пула не должна пересекаться с существующими локальными подсетями.
DNS Servers
| Поле | Значение | Пояснение |
|---|---|---|
| Provide a DNS server list to clients | Установлен | Передача DNS-серверов клиентам |
| DNS Server 1 | 10.1.0.1 | Адрес локального DNS-сервера |
| DNS Server 2 | 1.1.1.1 | Резервный публичный DNS |
Нажмите Save. pfSense предложит создать Phase 1 - нажмите на ссылку для перехода к настройке.
Настройка Phase 1
Phase 1 для мобильных клиентов настраивается в разделе VPN > IPsec > Tunnels. После сохранения настроек Mobile Clients pfSense автоматически создаёт запись Phase 1 с типом mobile.

Рис. 1. Настройка Phase 1 для мобильных клиентов
General Information
| Поле | Значение | Пояснение |
|---|---|---|
| Key Exchange version | IKEv2 | Обязательно IKEv2 для мобильных клиентов |
| Internet Protocol | IPv4 | Или IPv6, в зависимости от адресации |
| Interface | WAN | Интерфейс для приёма подключений |
| Description | IKEv2 Mobile Clients | Описание для идентификации |
Phase 1 Proposal - Authentication
| Поле | Значение | Пояснение |
|---|---|---|
| Authentication Method | EAP-MSCHAPv2 | Аутентификация по логину и паролю |
| My identifier | Distinguished Name: vpn.example.com | Должен совпадать с CN или SAN серверного сертификата |
| Peer identifier | Any | Мобильные клиенты - идентификатор неизвестен заранее |
| My Certificate | IKEv2 VPN Server | Серверный сертификат, созданный ранее |
| My Certificate Authority | IKEv2 VPN CA | CA, подписавший серверный сертификат |
При использовании сертификатной аутентификации вместо EAP-MSCHAPv2 выберите Authentication Method: Mutual RSA и укажите соответствующий CA для проверки клиентских сертификатов.
Внимание:
При использовании EAP-MSCHAPv2 необходимо создать пользователей в System > User Manager с паролями. Эти учётные данные используются для аутентификации VPN-подключений.
Phase 1 Proposal - Encryption Algorithm
| Поле | Значение | Пояснение |
|---|---|---|
| Algorithm | AES-256-GCM | Аутентифицированное шифрование с аппаратным ускорением |
| Key Length | 256 bits (auto) | При AES-GCM длина ключа определяется автоматически |
| Hash | SHA256 | PRF (Pseudo-Random Function) |
| DH Group | 14 (2048 bit) | Минимально рекомендуемая группа |
Для совместимости с более широким спектром клиентов допускается добавление дополнительных Encryption Algorithm. Рекомендуемый набор:
| Algorithm | Hash | DH Group | Примечание |
|---|---|---|---|
| AES-256-GCM | SHA256 | 14 | Основной (Windows 10/11, macOS, iOS) |
| AES-256-CBC | SHA256 | 14 | Резервный (Android, устаревшие клиенты) |
Expiration and Replacement
| Поле | Значение | Пояснение |
|---|---|---|
| Life Time | 28800 | 8 часов |
| Rekey Time | (пусто) | Автоматический расчёт |
| Reauth Time | (пусто) | Автоматический расчёт |
Advanced Options
| Поле | Значение | Пояснение |
|---|---|---|
| NAT Traversal | Auto | Автоматическое определение NAT |
| MOBIKE | Enable | Поддержка переключения между сетями |
| Dead Peer Detection | Enabled | Обнаружение отключённых клиентов |
| DPD Delay | 30 | Интервал DPD в секундах |
| DPD Max Failures | 5 | Количество неответов до отключения |
Внимание:
MOBIKE необходимо включить для мобильных клиентов. Без MOBIKE VPN-соединение разрывается при смене сети (например, при переходе с Wi-Fi на LTE).
Настройка Phase 2
После сохранения Phase 1 необходимо создать Phase 2. Нажмите Show Phase 2 Entries, затем Add P2.

Рис. 2. Настройка Phase 2 для мобильных клиентов
General Information
| Поле | Значение | Пояснение |
|---|---|---|
| Mode | Tunnel IPv4 | Стандартный режим |
| Local Network | LAN subnet | Или конкретная подсеть: 10.1.0.0/24 |
| NAT/BINAT | None | Без трансляции адресов |
| Description | IKEv2 Mobile - LAN Access | Описание Phase 2 |
При необходимости доступа к нескольким подсетям (LAN, DMZ, серверная сеть) следует создать отдельную запись Phase 2 для каждой подсети.
Phase 2 Proposal
| Поле | Значение | Пояснение |
|---|---|---|
| Protocol | ESP | Шифрование и аутентификация трафика |
| Encryption Algorithms | AES-256-GCM | Должен соответствовать возможностям клиентов |
| Hash Algorithms | SHA256 | Для совместимости с клиентами без поддержки GCM |
| PFS key group | 14 (2048 bit) | Perfect Forward Secrecy |
Expiration and Replacement
| Поле | Значение | Пояснение |
|---|---|---|
| Life Time | 3600 | 1 час |
| Rekey Time | (пусто) | Автоматический расчёт |
Правила файрвола
Для работы IKEv2 VPN необходимо создать правила на двух вкладках: WAN и IPsec.
Правила на WAN-интерфейсе
На WAN-интерфейсе должен быть разрешён входящий трафик для установления IKE-соединений.
| Действие | Протокол | Источник | Порт назначения | Описание |
|---|---|---|---|---|
| Pass | UDP | Any | 500 | IKE - обмен ключами |
| Pass | UDP | Any | 4500 | NAT-T - инкапсуляция ESP в UDP |
pfSense автоматически создаёт правила для IKE-трафика при наличии настроенных IPsec-туннелей. Однако при использовании плавающих правил или нестандартной конфигурации файрвола может потребоваться явное добавление этих правил.
Правила на вкладке IPsec
Вкладка Firewall > Rules > IPsec управляет трафиком, проходящим через VPN-туннель. По умолчанию весь трафик блокируется.
Минимальный набор правил:
| Действие | Протокол | Источник | Назначение | Описание |
|---|---|---|---|---|
| Pass | Any | 10.10.10.0/24 | LAN net | Разрешить трафик из VPN-пула в LAN |
| Pass | Any | 10.10.10.0/24 | 10.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
- Экспортируйте сертификат CA из pfSense: System > Cert. Manager > CAs - нажмите иконку экспорта CA Certificate.
- Скопируйте файл
.crtна компьютер с Windows. - Откройте файл
.crtдвойным щелчком. - Нажмите Install Certificate.
- Выберите Local Machine и нажмите Next.
- Выберите Place all certificates in the following store и нажмите Browse.
- Выберите Trusted Root Certification Authorities и нажмите OK.
- Нажмите Next, затем Finish.
Внимание:
Сертификат CA необходимо установить в хранилище Trusted Root Certification Authorities компьютера (Local Machine), а не пользователя (Current User). В противном случае Windows не сможет проверить серверный сертификат.
Создание VPN-подключения
- Откройте Settings > Network & Internet > VPN.
- Нажмите Add a VPN connection.
- Заполните параметры:
| Поле | Значение |
|---|---|
| VPN provider | Windows (built-in) |
| Connection name | Office VPN |
| Server name or address | vpn.example.com |
| VPN type | IKEv2 |
| Type of sign-in info | User name and password |
| User name | (имя пользователя из pfSense) |
| Password | (пароль пользователя) |
- Нажмите Save.
- Для подключения нажмите на созданное VPN-соединение и нажмите Connect.
Усиление безопасности на Windows
По умолчанию Windows может использовать слабые алгоритмы шифрования. Для принудительного использования стойких алгоритмов выполните в PowerShell от имени администратора:
Set-VpnConnectionIPsecConfiguration -ConnectionName "Office VPN" `
-AuthenticationTransformConstants GCMAES256 `
-CipherTransformConstants GCMAES256 `
-EncryptionMethod AES256 `
-IntegrityCheckMethod SHA256 `
-DHGroup Group14 `
-PfsGroup PFS2048 `
-ForcemacOS
macOS поддерживает IKEv2 через встроенные средства. Для настройки необходимо импортировать сертификат CA и создать сетевой профиль.
Импорт сертификата CA
- Экспортируйте сертификат CA из pfSense в формате
.crt. - Откройте файл на macOS - откроется Keychain Access.
- Добавьте сертификат в System keychain.
- Откройте добавленный сертификат двойным щелчком.
- В разделе Trust установите When using this certificate в значение Always Trust.
- Закройте окно и введите пароль администратора для подтверждения.
Создание VPN-подключения
- Откройте System Settings > VPN (macOS 13+) или System Preferences > Network (macOS 12 и ранее).
- Нажмите Add VPN Configuration > IKEv2.
- Заполните параметры:
| Поле | Значение |
|---|---|
| Display Name | Office VPN |
| Server Address | vpn.example.com |
| Remote ID | vpn.example.com |
| Local ID | (оставьте пустым) |
| User Authentication | Username |
| Username | (имя пользователя из pfSense) |
| Password | (пароль пользователя) |
- Нажмите Create.
- Для подключения переключите переключатель VPN-соединения.
iOS
iOS поддерживает IKEv2 без установки дополнительных приложений.
Установка профиля с CA-сертификатом
- Экспортируйте сертификат CA из pfSense.
- Отправьте файл
.crtна устройство (через AirDrop, email или веб-сервер). - Откройте файл на устройстве - появится предложение установить профиль.
- Перейдите в Settings > General > VPN & Device Management.
- Нажмите на загруженный профиль и нажмите Install.
- После установки перейдите в Settings > General > About > Certificate Trust Settings.
- Включите доверие к установленному CA-сертификату.
Создание VPN-подключения
- Перейдите в Settings > General > VPN & Device Management > VPN.
- Нажмите Add VPN Configuration.
- Заполните параметры:
| Поле | Значение |
|---|---|
| Type | IKEv2 |
| Description | Office VPN |
| Server | vpn.example.com |
| Remote ID | vpn.example.com |
| Local ID | (оставьте пустым) |
| User Authentication | Username |
| Username | (имя пользователя из pfSense) |
| Password | (пароль пользователя) |
- Нажмите Done.
- Для подключения переключите переключатель VPN в настройках.
Android
Android поддерживает IKEv2 начиная с версии 11 через встроенный VPN-клиент. Для более ранних версий потребуется приложение strongSwan VPN Client из Google Play.
Android 11 и новее (встроенный клиент)
- Экспортируйте сертификат CA из pfSense.
- Перейдите в Settings > Security > Encryption & credentials > Install a certificate.
- Выберите CA certificate и установите файл
.crt. - Перейдите в Settings > Network & Internet > VPN.
- Нажмите + для добавления нового VPN-профиля.
- Заполните параметры:
| Поле | Значение |
|---|---|
| Name | Office VPN |
| Type | IKEv2/IPSec MSCHAPv2 |
| Server address | vpn.example.com |
| IPSec identifier | (оставьте пустым) |
| IPSec CA certificate | (выберите установленный CA) |
| Username | (имя пользователя из pfSense) |
| Password | (пароль пользователя) |
- Нажмите Save.
strongSwan VPN Client (Android 10 и ранее)
- Установите strongSwan VPN Client из Google Play.
- Импортируйте сертификат CA через приложение.
- Создайте новый VPN-профиль:
| Поле | Значение |
|---|---|
| Server | vpn.example.com |
| VPN Type | IKEv2 EAP (Username/Password) |
| Username | (имя пользователя из pfSense) |
| Password | (пароль пользователя) |
| CA certificate | Select automatically |
- Нажмите Save и подключитесь.
Split Tunnel и Full Tunnel
Режим туннелирования определяет, какой трафик клиента проходит через VPN.
Full Tunnel
При полном туннелировании весь трафик клиента направляется через VPN, включая доступ в интернет. Этот режим обеспечивает максимальную защиту, но увеличивает нагрузку на VPN-сервер и канал связи.
Для настройки Full Tunnel:
- В VPN > IPsec > Mobile Clients снимите флажок Provide a list of accessible networks to clients.
- В Phase 2 установите Local Network в значение Network /
0.0.0.0/0. - Настройте правило NAT для исходящего трафика VPN-клиентов: Firewall > NAT > Outbound - добавьте правило для подсети
10.10.10.0/24с интерфейсом WAN.
Внимание:
При Full Tunnel необходимо настроить Outbound NAT для подсети VPN-клиентов, иначе VPN-клиенты не получат доступ в интернет через туннель.
Split Tunnel
При раздельном туннелировании через VPN проходит только трафик к указанным сетям. Остальной трафик (включая интернет) идёт через обычное подключение клиента.
Для настройки Split Tunnel:
- В VPN > IPsec > Mobile Clients установите флажок Provide a list of accessible networks to clients.
- В Phase 2 создайте отдельную запись для каждой защищаемой подсети (например,
10.1.0.0/24для LAN,10.2.0.0/24для серверной сети). - Список подсетей из 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 trusted | CA-сертификат не установлен | Установите CA-сертификат в доверенное хранилище на клиенте |
The remote server is not responding | Неверный адрес сервера | Проверьте адрес сервера в настройках клиента и DNS-разрешение |
Ошибки сертификатов
| Проблема | Причина | Решение |
|---|---|---|
Certificate has expired | Истёк срок действия сертификата | Перевыпустите сертификат в Cert. Manager |
Certificate name mismatch | CN/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Связанные разделы
- IPsec Site-to-Site VPN в pfSense - настройка site-to-site туннелей, терминология IPsec и общие принципы конфигурации
- Диагностика IPsec VPN в pfSense - систематическая диагностика IPsec, анализ логов и устранение ошибок Phase 1/Phase 2
- Правила файрвола pfSense - принципы создания и управления правилами файрвола для VPN-трафика