Профиль IKEv2 для Mac: задайте оба словаря SA, затем проверьте
Параметры IKE наследуются Child SA, когда этого словаря нет. Заполните оба, переведите имена и проверьте, о чём стороны фактически договорились.
Успешное подключение доказывает лишь то, что обе стороны нашли набор значений, которые они принимают. Управляемый профиль IKEv2 для Mac содержит два словаря ассоциации безопасности, у шлюза есть свой список предложений, и подключение устанавливается на любом пересечении, которое допускают обе стороны. Выполняйте проверки ниже по порядку и останавливайтесь там, где два конца расходятся, вместо того чтобы добавлять ещё один шифр и смотреть, поможет ли это. Каждый шаг исключает свой слой профиля.
Проверьте оба словаря, прежде чем менять значение
В настройках IKEv2 полезной нагрузки VPN IKESecurityAssociationParameters описывает ассоциацию IKE, а ChildSecurityAssociationParameters описывает Child SA. Схема Apple указывает, что параметры IKE применяются и к Child SA, когда второго словаря нет. Это наследование удобно, и именно так в профиле оказываются значения, которые никто сознательно не выбирал.
<key>IKESecurityAssociationParameters</key>
<dict>
<key>EncryptionAlgorithm</key><string>AES-256</string>
<key>IntegrityAlgorithm</key><string>SHA-256</string>
<key>DiffieHellmanGroup</key><integer>14</integer>
<key>LifeTimeInMinutes</key><integer>1440</integer>
</dict>
Записывайте обе строки в запись развёртывания, даже когда значения совпадают. Тогда рецензент увидит, что Child SA рассматривался, а не был унаследован случайно, и последующее изменение одной строки не изменит молча другую.
Проверьте, что означает каждый ключ, прежде чем копировать строку
Четыре ключа не взаимозаменяемы со строкой предложения из другого продукта. Имена алгоритмов зависят от реализации, поэтому переводите выбранный набор через документированный синтаксис каждой стороны, а не вставляйте предложение strongSwan в поле Apple.
| Key | Holds | Common mistake |
|---|---|---|
| EncryptionAlgorithm | Cipher for that association | Assuming an AEAD name also sets integrity |
| IntegrityAlgorithm | Integrity for the chosen suite | Leaving it set for an AEAD suite that does not use one |
| DiffieHellmanGroup | Numeric group identifier | Reading the number as key size in bits |
| LifeTimeInMinutes | Association lifetime | Setting it shorter than the gateway's renewal margin |
«Используйте наибольший номер группы» — это не метод выбора. Идентификаторы групп обозначают разные конструкции, и больший номер не означает просто более сильную версию того же самого. Пусть владелец шлюза утвердит полную комбинацию, потому что набор действителен или недействителен целиком. Утверждённый шифр с неутверждённой группой — это неутверждённое предложение, и оно либо не сработает, либо молча откатится к тому, что ни одна из сторон не документировала.
Проверьте ограничения версий, которые выводят из эксплуатации старые алгоритмы
Схема полезной нагрузки Apple ограничивает DES, 3DES, SHA1-96, SHA1-160 и группы Diffie-Hellman 1, 2 и 5 версиями macOS до 26. Профиль, перенесённый из более старого развёртывания, может всё ещё содержать одно из этих значений и всё ещё подключаться к старому шлюзу, и это именно тот случай, когда работающая конфигурация скрывает дату вывода из эксплуатации.
Получите поддерживаемые версии Mac и политику предложений, которую поддерживает шлюз, прежде чем строить профиль. Затем выберите пересечение и запишите, почему остальные варианты исключены. Заметка «шлюз всё ещё предлагает группу 2 для старых клиентов» ценнее списка шифров без истории. Без этой заметки следующий рецензент не отличит намеренное исключение от упущения.
Проверьте аутентификацию отдельной строкой
Согласие по предложению не исправляет неверную идентичность сервера. Идентичность шлюза, доверие к сертификату и учётные данные пользователя или устройства — это отдельные решения, и каждое может не сработать, пока алгоритмы полностью согласованы. Изменение алгоритма подписи сертификата — не то же действие, что выбор алгоритма шифрования IKE, хотя оба фигурируют в одной проверке.
Держите ожидаемую идентичность сервера рядом с предложением в записи. Когда соединение не удаётся после смены сертификата, эта пара говорит следующему человеку, что сдвинулось первым: переговоры или решение о доверии.
Разверните одну ревизию и проверьте, о чём договорились
Используйте поддерживаемый организацией процесс распространения и запишите идентификатор профиля, ревизию, целевые версии Mac и соответствующую политику шлюза. Дайте устройствам, которые не могут подключиться, документированный путь восстановления и избегайте создания второго профиля с тем же именем, владельца которого никто не сможет установить.
Во время приёмки проверьте установленную конфигурацию и согласованные ассоциации IKE и Child с помощью одобренной диагностики. Затем принудительно выполните контролируемое обновление, потому что первое подключение доказывает лишь то, что начальные переговоры работали; несоответствие времени жизни обычно проявляется при первой смене ключей, намного позже утверждения развёртывания.
Храните принятый набор вместе с записью ревизии. Тогда следующее обновление macOS или изменение шлюза будет иметь базу для сравнения, а не профиль, который сегодня просто случайно подключается.