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

Що насправді видаляє кнопка «Видалити конфігурацію»

Кожен доданий VPN стає мережевою службою — об'єктом того самого типу, що Wi-Fi або Thunderbolt Bridge. macOS зберігає їх усі тут: /Library/Preferences/SystemConfiguration/preferences.plist, кожна має ідентифікатор служби, відображуване ім'я та словник конфігурації, що описує тип тунелю, адресу сервера й спосіб запуску тунелю.

Коли ви відкриваєте Системні налаштування та VPN, натискаєте кнопку інформації біля служби, вибираєте «Видалити конфігурацію» й підтверджуєте, macOS зупиняє тунель, видаляє цей об'єкт служби та перезаписує сховище. Розбирання завершене для того, що належить системі: служби більше немає в списку, і ніщо не запускає її під час входу.

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

Перелічіть, що Mac досі вважає встановленим

Складіть опис, перш ніж щось видаляти. Три команди охоплюють три рівні, що дають той самий видимий збій:

scutil --nc list
networksetup -listallnetworkservices
profiles -P

scutil --nc list — авторитетне подання конфігурацій VPN зі станом з'єднання, назвою служби та ідентифікатором служби. Часто він показує записи, які ніколи не з'являються у списку налаштувань: залишкові служби клієнта, видаленого місяці тому, і конфігурації на вимогу, що запускаються тихо. networksetup -listallnetworkservices показує мережеві служби під назвами, яких очікують інструменти командного рядка, і саме це потрібно для видалення за назвою. profiles -P перелічує встановлені профілі конфігурації; на керованому Mac VPN може бути не доданою вами службою, а корисним навантаженням усередині одного з цих профілів.

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

Видаліть службу через її власника

Для служби, доданої вами, тримайтеся задокументованого шляху: Системні налаштування, VPN, кнопка інформації, «Видалити конфігурацію». Apple документує цей шлях, і він зберігає сховище конфігурації узгодженим. Ручне редагування preferences.plist під час роботи мережевого стеку — це шлях до дубльованих або зомбі-служб, які не видалить жоден інтерфейс.

З термінала видаліть службу за назвою за допомогою networksetup -removenetworkservice "Service Name", потім підтвердіть за допомогою scutil --nc list. Команда діє на той самий список служб, що й інтерфейс, тому ім'я, якого немає в networksetup -listallnetworkservices, не буде видалене жодним шляхом. Коли тунелем володіє клієнт, спершу скористайтеся його шляхом видалення або видалення програми, бо клієнт відтворює службу під час наступного запуску.

Якщо VPN надійшов із керування пристроями, ви не власник. Профілі, встановлені MDM, можуть бути позначені як невидалювані, і навіть видалюваний профіль може бути надісланий знову під час наступної перевірки. Підтвердьте за допомогою profiles -P, потім скористайтеся процесом виведення з експлуатації вашої організації. Видалення корисного навантаження локально або не вдається, або спричиняє перевстановлення.

Залишки, що перепідключаються без служби

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

systemextensionsctl list
pluginkit -m -p com.apple.networkextension.packet-tunnel

Клієнт NetworkExtension тримає свого постачальника тунелю встановленим під власним ідентифікатором, окремо від будь-якої конфігурації. Розширення може залишатися активним після зникнення конфігурації, а агент у рядку меню клієнта може створити нову конфігурацію під час наступного запуску, іноді повторно використовуючи щойно видалене ім'я. Перевірте елементи входу й помічник виробника тут: /Library/LaunchDaemons перш ніж зробити висновок, що видалення не вдалося.

Облікові дані — другий залишок. Збережений пароль або клієнтський сертифікат у зв'язці ключів входу не видаляється разом зі службою, а спільний секрет IPSec історично живе в системній зв'язці ключів, тому видалення й повторне додавання іноді пропускає запит пароля. Якщо Mac виходить з-під вашого контролю, знайдіть елемент за назвою служби в Keychain Access і відкличте обліковий запис, сертифікат або парний ключ, які представляють збережені дані. A copied configuration file is a live credential even after local removal.

Перевірте видалення й правильно прочитайте профіль, що повертається

Видалення завершене, коли служби немає в обох поданнях і вона залишається відсутньою після перезавантаження. Перевірте scutil --nc list на ідентифікатор служби, підтвердьте, що розв'язання імен використовує очікуваний резолвер, за допомогою scutil --dns, потім один раз перезавантажтеся, бо правила на вимогу й агенти входу — це дві речі, які показують себе лише під час чистого завантаження.

Якщо вона все ще там, не видаляйте більше об'єктів. З'ясуйте, який рівень створив її заново: профіль MDM знову надсилає службу, клієнтський агент відтворює її, або службу ніколи не видаляли, бо ім'я не збігалося. Ця відповідь визначає, чи потрібен вам деінсталятор виробника, ваша ІТ-команда або ще один прохід тим самим діалогом видалення. Посібник Apple з видалення охоплює підтримуваний шлях для доданих вами служб; залишки — це частина, яку ви маєте перевірити самі: remove a VPN configuration.

Схожі статті