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

Файл називає плагін, а не набір функцій

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

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

Що застосунок постачальника додає навколо тунелю

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

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

Де володіння справді різниться

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

LayerVendor applicationNetworkManager connectionWhere the gap shows up
Enrollment and posturebuilt into the clientabsent unless something else supplies ita managed device fails its next posture check
Address and resolver authoritythe client sets boththe plugin plus dispatcher scriptsnames resolve through the wrong resolver after a state change
Blocking on dropa bundled enginenothing by defaulttraffic continues in the clear after the tunnel dies
Upgrade paththe vendor's own channelthe distribution package and its plugina plugin update changes behaviour with no vendor note
Diagnostics and supportvendor tooling with client statejournal and dispatcher outputsupport cannot see why negotiation failed

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

Перемикання без накладання володіння

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

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show work --show-secrets | grep -E "^vpn\."
journalctl -u NetworkManager -b --since "10 min ago"

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

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

Схожі статті