Що містить експорт VPN для Mac і що він залишає по собі
Експорт VPN для Mac несе налаштування і іноді закритий ключ, але не пароль зв’язки ключів і не реєстрацію пристрою. Спершу перевірте кожну частину.
Натисніть Export у клієнті VPN для Mac, і ви отримаєте файл, який описує з’єднання, не будучи ним. Адреса сервера, порт, протокол і часто сертифікати містяться всередині. Пароль для входу, парольна фраза закритого ключа й реєстрація, що авторизує саме цей Mac, зазвичай ні. Тому профіль може чисто імпортуватися, з’явитися в списку клієнта і все одно зазнати невдачі на першому запиті автентифікації; розрив — це властивість формату, а не пошкоджене завантаження.
| Part of the connection | Where it lives on the old Mac | What an export does with it |
|---|---|---|
| Server, port, protocol, routes | Client profile or managed settings | Usually included when the client exports configuration |
| Client certificate and private key | Inside the package, the login keychain, or issued by MDM | Included only if the format packs it; a keychain-held key stays behind |
| Login password, key passphrase | Login keychain | Left out by design |
| Device authorization or enrollment | Server side, bound to the certificate or the device record | Not transferable; the new device has to enroll |
Що насправді містить експортований файл
Експорт — це контейнер, і розширення файлу говорить менше, ніж вміст. Профілі OpenVPN — це текст: директиви плюс необов’язкові вбудовані блоки <ca>, <cert> і <key>. Налаштування Tunnelblick — стиснені архіви конфігурацій і параметрів. Керований .mobileconfig — це plist корисних навантажень. Два лістинги відповідають на більшу частину питання, перш ніж ви щось імпортуєте.
Для текстового профілю порахуйте блоки PEM, які він несе: grep -c "PRIVATE KEY" your-profile.ovpn. Ненульовий результат означає, що файл містить ключовий матеріал і з цього моменту з ним треба поводитися як з паролем. Для архіву перелічіть його, не розпаковуючи: tar -tf export.tbz, або unzip -l export.zip, якщо клієнт створив zip. Файли ключів, файли сертифікатів і скрипти підняття чи опускання в цьому лістингу — це ті частини, які повторна видача облікового запису користувача не відтворить.
Зворотний випадок не менш важливий. Коли профіль указує на ключ за іменем файлу, а не вбудовує його, експорт навмисно неповний, і відсутня половина має прийти від того, хто його видав. Копіювати цей файл поруч можна, якщо центр сертифікації належить вам; не можна, якщо файл прийшов із прив’язаним до пристрою сертифікатом, створеним на старому Mac.
Чому половина зі зв’язки ключів ніколи не подорожує
macOS зберігає паролі VPN і парольні фрази ключів у зв’язці ключів входу, і клієнти зберігають їх там, а не у власних файлах налаштувань. Tunnelblick каже про це у своєму посібнику з експорту та імпорту: архів налаштувань несе конфігурації та параметри й залишає поза бортом імена користувачів, паролі та парольні фрази, що зберігаються у зв’язці ключів. Пропуск навмисний. Елементи зв’язки ключів захищені для кожного користувача й кожної машини, тому скопійований елемент не має чинного контролю доступу в місці призначення, що залишає або непотрібний файл, або секрет відкритим текстом.
Ви можете підтвердити, де живе обліковий запис, перш ніж планувати перенесення. security find-internet-password -s vpn.example.com друкує атрибути відповідного елемента й завершується з ненульовим кодом, коли такого немає; та сама команда з -g запитала б розкриття пароля, тому запит без неї — безпечніша перевірка. Знайдене там означає, що профіль не несе пароль і його не можна до цього примусити. Це також означає, що пароль знову запитають на новому Mac, а дозвіл «Завжди дозволяти» на старому там нічого не значить.
Однак не кожен секрет — елемент зв’язки ключів. Власна документація пакета Tunnelblick зазначає, що пакет може містити файли ключів, сертифікатів і скриптів. Тому те, що експорт виключає елементи зв’язки ключів, — не те саме твердження, що експорт безпечно надсилати поштою; ставтеся до архіву як до чутливого, доки не перелічили, що в ньому є.
У вбудованих і керованих VPN немає шляху експорту
З’єднання, налаштовані через Системні налаштування, не пропонують підтримуваного експорту. scutil --nc list показує служби, відомі системі, а scutil --nc show "Work VPN" друкує конфігурацію однієї служби, чого достатньо, щоб прочитати її сервер і протокол. Ні те ні інше не є засобом міграції. Ідентифікатори служб, збережені в /Library/Preferences/SystemConfiguration/preferences.plist, — це посилання всередину того файлу, тому копіювання файлу й перезапис ідентифікаторів не є підтримуваним перенесенням і може порушити незв’язані мережеві служби в місці призначення.
Підтримуваний шлях — той, що документує Apple: встановіть файл налаштувань VPN, наданий адміністратором, або введіть налаштування, які дає оператор. Коли з’єднання кероване, попросіть свіжий файл або свіжу реєстрацію замість того, щоб відбудовувати його за знімком екрана старого діалогу. Для профілю, який розсилає MDM, корисне навантаження сертифіката може нести ідентичність, поки закритий ключ створюється на пристрої, і в цьому випадку навіть бездоганна копія старого профілю не зможе автентифікувати новий Mac.
Перевірте відновлення, а не довіряйте списку
Профіль у списку й робочий тунель — два різні стани, і лише один із них варто повідомляти. Після імпорту й підключення перевірте, що інтерфейс тунелю існує, потім перевірте, що робить тунель.
ifconfig | grep -A3 utun показує інтерфейс тунелю та його адреси. scutil --dns | grep nameserver показує, які розв’язувачі активні після підключення, і саме там профілі split-DNS зазвичай розходяться. Потім дістаньтеся ресурсу, який справді важливий: curl -sS -o /dev/null -w "%{http_code}" https://intranet.example.com. Якщо всі три проходять, налаштування, DNS і маршрути прибули; зелений значок у клієнті сам по собі не означає нічого з цього.
Дві невдачі часто з’являються після імпорту, і обидві ставлять у провину файлу. Публічні імена розв’язуються, а внутрішні ні — це зазвичай означає, що DNS-сервери профілю загубилися або split-DNS не зберігся. Тунель, який піднімається і не пропускає трафік, зазвичай означає, що маршрути або авторизація на боці сервера не пішли за профілем. Повторний імпорт того самого архіву відтворює і те, і друге.
Перш ніж списати старий Mac
Видалення експорту — не відкликання. Якщо старий пристрій автентифікувався сертифікатом, сервер усе ще довіряє цьому сертифікату, доки його не відкликали або не видали заново. Якщо він автентифікувався спільним обліковим записом, сеанси в ньому можуть бути ще живі. Зробіть крок на боці сервера, поки обладнання ще перед вами.
Зберігайте новий профіль разом з іншими обліковими даними, коли він містить ключ, і введіть пароль у клієнт, щоб він потрапив у нову зв’язку ключів, а не у файл. Остання перевірка: підключіться із заміни, коли старий Mac вимкнено. Передача, яка працює лише поки вихідна машина в мережі, ніколи не була повною.