Канал керування та канал даних VPN: перевірте потрібний рівень
Тунель може домовитися і все одно нічого не передавати. Перевірте, який канал відмовив: налаштування керування, захист даних або маршрут і DNS за обома.
Клієнт каже, що підключений, сервер бачить партнера, а застосунок усе одно нікуди не потрапляє. У цей момент корисне питання не про те, який шифр змінити, а про те, який канал відмовив. OpenVPN явно називає дві функції: канал керування, який домовляється про сеанс і керує ним, і канал даних, який несе захищений трафік. IKEv2 виражає схоже розділення через асоціацію IKE та асоціацію CHILD. Виконуйте перевірки нижче по порядку, бо виправлення шляху даних, застосоване до збою шляху керування, марнує вікно змін.
Назвіть канал до початку налагодження
Сторона керування домовляється про матеріали безпеки, перевіряє автентичність партнерів і керує з'єднанням. Сторона даних несе вибраний трафік, щойно з'являється потрібний стан.
Вони відмовляють по-різному. Збій керування зазвичай залишає вас зовсім без придатного сеансу або із сеансом, який у циклі знову домовляється. Збій даних залишає сеанс, який виглядає здоровим, поки пакети відкидаються, ідуть не туди або захищаються параметрами, які інша сторона не прийме. Рядок журналу, який ви читаєте, каже, у якому з двох випадків ви перебуваєте, тож читайте позначку раніше за текст помилки.
Перевірте обмін керування
Переконайтеся, що рукостискання завершується і що обидві сторони згодні щодо транспорту, версії TLS і методу автентифікації. Журнали OpenVPN друкують окремі рядки для каналу керування та каналу даних, і саме в рядку керування з'являється невідповідність сертифіката, версії TLS або tls-crypt.
Якщо обмін керування зривається, подивіться на доступний порт, ланцюжок сертифікатів і дати його чинності, системний годинник, перекриття шифрів клієнта й сервера та будь-який ключ tls-auth або tls-crypt. Великий ланцюжок сертифікатів може також відмовити на MTU шляху до завершення будь-якої автентифікації, що виглядає як тайм-аут, а не як криптографічна помилка.
Виправляйте збої керування налаштуваннями керування. Підвищення шифру даних або послаблення політики автентифікації даних не завершить рукостискання, яке так і не пройшло обмін сертифікатами.
Перевірте канал даних окремо
Коли сеанс піднято, переконайтеся в узгоджених шифрі та режимі даних, виведенні ключів і поведінці під час оновлення ключа. У OpenVPN рядок каналу даних називає шифр і розмір ключа, які справді ініціалізовано, і вони можуть відрізнятися від першого шифру в профілі.
Далі перевірте, що встановив сеанс. PUSH_REPLY може додати маршрути, DNS-сервер і директиву redirect-gateway, і кожне з цього може надіслати трафік туди, де застосунок не зможе його використати. Для IKEv2 еквівалентне питання — чи збігаються селектори асоціації CHILD з адресами в реальному потоці.
tls-auth і tls-crypt належать до каналу керування. Вони автентифікують або шифрують рукостискання і не вибирають шифр даних застосунку. Якщо ви додаєте один із них, очікуючи зміни шляху даних, єдине, що ви змінили, — це рукостискання.
Зіставте назви з IKEv2 і OpenVPN
IKEv2 має асоціацію безпеки IKE і одну або кілька асоціацій CHILD. Асоціація IKE несе обміни керування; асоціація CHILD несе захищений трафік і свої селектори. Вони узгоджуються й оновлюють ключі за окремими графіками, тож одна може бути здоровою, поки інша ні.
ESP не має всередині каналу керування в стилі TLS. Протокол керування — це IKE, а ESP — захищене корисне навантаження. Називати ESP каналом даних — вільне скорочення, яке починає плутати під час читання перехоплення пакетів, бо перехоплення показує повідомлення IKE й пакети ESP як різні протоколи на лінії.
Тримайте відповідність явною у своїх нотатках: канал керування OpenVPN і IKE SA — це сторона керування, канал даних OpenVPN і CHILD SA — це сторона трафіку, і реалізації не є взаємозамінними, навіть коли розділення виглядає подібно.
Перестаньте змінювати не те налаштування
Пройдіть шлях в одному напрямку: обмін керування, захист даних, пересилання, потім розв'язання імен. Зупиніться на першому етапі, який відмовить, і виправляйте лише цей етап. Підключений сеанс, у якому ping до шлюзу працює, але трафіку застосунку немає, — це проблема пересилання або селекторів, а не рукостискання.
Записуйте докази для кожного етапу окремо в заявці: рядок журналу керування, узгоджені параметри даних, встановлені маршрути й один справжній запит. Така структура не дає послабити робочу перевірку особи, щоб виправити пізнішу проблему маршрутизації, якої вона ніколи не спричиняла, і не дає продати зміну шифру даних як виправлення помилки сертифіката.
Документація протоколу OpenVPN — це джерело про розділення керування й даних; користуйтеся нею, коли інтерфейс постачальника використовує інші слова для тих самих двох функцій.