Угода IKEv2 між клієнтом Windows і шлюзом FortiGate продовжує зазнавати невдачі, а пошук числа, що не збігається, дає ще довший список чисел. Список стає керованим лише тоді, коли його розбито на три рядки, які зазнають невдачі незалежно: обмін ключами, що захищає IKE, захист, застосований до CHILD SA, і автентифікація, яка доводить, хто кожна сторона. Номери груп з'являються в двох із цих рядків і означають різне.

Три рядки, які зазнають невдачі незалежно

Перший рядок — це обмін ключами всередині самого IKE, який породжує ключі, що захищають узгодження. Другий — пропозиція для CHILD SA, яка захищає трафік, що його несе тунель. Третій — автентифікація, яка вирішує, що подає кожна сторона і як інша це перевіряє.

Невдачі трапляються в різних місцях. Невдача обміну зупиняє узгодження ще до появи будь-якого тунелю. Невдача CHILD SA трапляється після успішної автентифікації, іноді лише під час оновлення ключів. Невдача автентифікації може виглядати як невдача обміну в журналах, якщо читати лише першу помилку.

Розбиття на рядки — не бухгалтерія. Воно змінює те, яке налаштування варто змінювати, і запобігає найдорожчому кроку в усій цій царині — перевипуску робочих сертифікатів заради виправлення невідповідності пропозиції. Зміна одного рядка не повинна змушувати два інші змінюватися разом із ним. Саме ця незалежність і є сенсом писати їх окремо.

Що контролюють два поля Windows

Windows тримає два поля окремо: DHGroup налаштовує сам обмін IKE, тоді як PfsGroup налаштовує політику IPsec, що захищає тунельований трафік. Вони належать до різних фаз. Порівняння поля IKE у Windows зі значенням phase-2 у FortiGate перевіряє неправильну пару, і числа можуть збігатися, тоді як сам обмін усе одно зазнає невдачі.

Get-VpnConnection -Name "Corp-IKEv2"
Get-NetIPsecMainModeSA
Get-NetIPsecQuickModeSA

Друга й третя команди повідомляють про асоціації безпеки, які справді існують, і це найближче до відповіді, яку клієнт може вам дати. Асоціація main-mode без асоціації quick-mode — це проблема CHILD SA, і це ознака невідповідності phase-2, а не проблема сертифіката.

Запишіть, що було запропоновано і що вибрано в одній спробі. Запропонований список, що містить прийнятну пропозицію, і вибрана пропозиція, яка не відповідає політиці шлюзу, — це конфлікт конфігурації, а не загадка сумісності.

Agreement rowWhere it is configured in WindowsWhat it does not decide
IKE key exchangeDHGroup on the VPN connection IPsec settingsThe protection used for tunneled traffic
CHILD SA protectionPfsGroup in the same policy objectWhich certificate the peer presents
Peer authenticationMachine or user certificate, or a supported EAP methodAny group number used for key exchange
Certificate validationTrusted CA store on the validating sideThe private key of the certificate being presented

Група на еліптичній кривій не обирає ваш ключ підпису

Найстійкіший хибний висновок у цій царині — що вибір групи DH на еліптичній кривій вимагає сертифіката на еліптичній кривій. Група DH постачає матеріал для обміну ключами; алгоритм підпису узгоджується рамкою автентифікації, і це два окремі рішення в IKEv2.

RFC 7427 існує саме тому, що ці рішення раніше були переплетені, і визначає, як алгоритми підпису оголошуються й обираються незалежно від обміну ключами. Шлюз може одночасно підтримувати групу кривої та набір схем підпису.

Тож коли узгодження зазнає невдачі після зміни групи, подивіться на метод автентифікації раніше, ніж на тип ключа сертифіката. Заміна сертифіката — повільна й ризикована операція, яка рідко буває відповіддю, і зробити її першою означає знищити здатність визначити, яка зміна справді допомогла. Прочитайте рядок автентифікації, перш ніж торкатися сховища сертифікатів.

Тримайте ці два в окремих рядках аркуша угоди, і помилка перестане бути спокусливою. Один рядок перелічує групи, інший — схеми підпису та ідентичності, і жоден не є доказом про інший.

Тримайте кожен закритий ключ у його справжнього власника

Шлюз, який подає власний сертифікат, потребує закритого ключа, що йому відповідає. Партнер, який перевіряє ланцюжок, потребує сертифіката CA і конкретно не потребує ключа підпису CA. Плутанина між цими трьома артефактами — це те, як люди імпортують закритий ключ CA у пристрій VPN, щоб сертифікат з'явився в іншій категорії.

У FortiOS ролі різні: локальний сертифікат із його ключем, віддалений сертифікат для ідентифікації партнера і запис віддаленого CA, що встановлює довіру до сертифікатів, які підписав цей CA. Запис віддаленого CA без закритого ключа не є неповним; він правильний для своєї мети.

Імпортовані ключі підпису CA розширюють повноваження кожного, хто може читати цей пристрій. Вони також не вирішують звичайної перевірки партнера, бо перевірка потребує публічного сертифіката й рішення про довіру, а не здатності випускати нові сертифікати.

Тримайте ключ підпису CA у власному процесі видавця і записуйте, який пристрій тримає який ключ. Коротка таблиця власників вартує більше за довшу таблицю алгоритмів, коли аудит питає, хто кого міг би видати за себе. Ніхто не імпортує ключ, про який знає, що він лише інвентарний. Напишіть інвентар до інциденту, а не після.

Схожі статті