VPN-клієнт постачальника проти NetworkManager: кому належить стан?
Профіль називає плагін, а не поведінку клієнта постачальника. Складіть карту власності реєстрацією, DNS, блокуванням і оновленнями, перш ніж перемикати керований ноутбук.
Імпорт профілю — це не те саме, що заміна клієнта. NetworkManager зберігає тип плагіна разом із даними й секретами, специфічними для плагіна, і плагін, якому належить цей тип, вирішує, що може робити з'єднання. Усе, що застосунок постачальника надбудовує зверху, від реєстрації до постійного блокування, живе поза файлом. Чи безпечне перемикання, залежить від того, на які з цих шарів ви справді покладаєтеся.
Файл називає плагін, а не набір функцій
Довідник налаштувань VPN у NetworkManager описує тип служби, який вибирає плагін, а також непрозорий словник даних і словник секретів, які інтерпретує лише плагін. Профіль — це договір з однією реалізацією, а не опис поведінки, яку може відтворити будь-який клієнт. Два клієнти можуть говорити одним протоколом і все ж відрізнятися тим, про що вони домовляються і які шляхи даних вмикають. Назва протоколу каже, чим є тунель, і ніколи — що робить з ним довколишній клієнт.
Тож порівнюйте вимоги, а не обгортки. Питання не в тому, чи може альтернатива підключитися, бо зазвичай може; питання в тому, чи переживе переїзд кожна вимога, яка робила початковий клієнт прийнятним. Запишіть ці вимоги до того, як щось встановлювати, інакше порівняння перетвориться на пошук того, що зламається першим.
Що застосунок постачальника додає навколо тунелю
Клієнти постачальників зазвичай об'єднують реєстрацію та перевірки постави пристрою, потік другого фактора з власним інтерфейсом, постійне блокування, канал оновлень і засоби підтримки. Частина цього стоїть поруч із протоколом, а частина — окремий продукт, який лише ділить інсталятор. NetworkManager може замінити тунель і його маршрутизацію, а скрипти диспетчера можуть запускати дії, коли змінюється стан з'єднання. Але він не відтворює рушій блокування, процес поновлення сертифіката чи припущення про те, який користувач може підняти з'єднання.
Більше компонентів не означає безпечніше, а менше не означає слабше. Питання в тому, який компонент виконує політику, якої вам сказали дотримуватися. Якщо аудитор запитає, що блокує трафік, коли тунель падає, відповідь має назвати щось, що справді це робить, і профіль, який лише підключається, такою відповіддю не є.
Де володіння справді різниться
Читайте це як карту володіння, а не як контрольний список, бо збої нижче — це прогалини у володінні, і жоден обсяг налаштувань клієнта їх не закриває. Кожен рядок називає шар, сторону, яка зазвичай тримає його сьогодні, і місце, де прогалина проявляється першою.
| Layer | Vendor application | NetworkManager connection | Where the gap shows up |
|---|---|---|---|
| Enrollment and posture | built into the client | absent unless something else supplies it | a managed device fails its next posture check |
| Address and resolver authority | the client sets both | the plugin plus dispatcher scripts | names resolve through the wrong resolver after a state change |
| Blocking on drop | a bundled engine | nothing by default | traffic continues in the clear after the tunnel dies |
| Upgrade path | the vendor's own channel | the distribution package and its plugin | a plugin update changes behaviour with no vendor note |
| Diagnostics and support | vendor tooling with client state | journal and dispatcher output | support 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. Друга показує тип служби плагіна й те, які секрети збережено, що важливо, коли ключ очікується від агента, а не з файлу. Журнал — це місце, де плагін, який завантажився, але не зміг домовитися, скаже про це. Якщо жодна з трьох не показує проблеми, прогалина в шарах політики над тунелем, а не в з'єднанні.
Від'єднайте старий клієнт перед увімкненням нового з'єднання, збережіть кінцеві точки й обліковий запис однаковими та запишіть, який компонент володіє маршрутами, налаштуваннями резолвера й блокуванням. Саме ця нотатка не дає наступному оновленню завершитися двома власниками.