Переносність профілю OpenVPN: переносні ключі проти параметрів платформи
Файл .ovpn змішує переносний матеріал посвідчення з директивами, які розуміє лише один клієнт. Порівняйте і те, і те, перш ніж звинувачувати сертифікат у збої.
Той самий файл .ovpn в одному клієнті піднімає тунель, а в іншому не запускається, і сертифікат зазвичай перший підозрюваний. Найчастіше файл містить директиву, яку реалізує лише один рушій. Профіль — це договір із конкретним клієнтом, а не переносний скрипт.
Відокремте те, що подорожує з посвідченням, від того, що належить платформі. Тоді збій зазвичай сам себе називає.
Один файл, два договори
Профіль об'єднує три види вмісту: матеріал посвідчення, наприклад сертифікати CA і клієнта та закритий ключ, транспортні факти, наприклад віддалена кінцева точка й протокол, і директиви поведінки, наприклад обробка DNS або параметри пристрою. Перші два широко переносні між рушіями, що підтримують один протокол. Третій — це місце, де реалізації розходяться. Саме ставлення до всього файлу як до однієї переносної одиниці породжує заплутані збої.
Файл, який працює в GUI на одній платформі, не обов'язково придатний для клієнта командного рядка на іншій. Навіть коли обидва — OpenVPN, синтаксичні аналізатори та набори параметрів різняться. Тому успішний імпорт не доводить переносність профілю.
Переносний матеріал проти директив платформи
Розділи посвідчення й транспорту — та частина, яку треба зберегти. ca, cert, key і remote описують, хто і куди підключається, і означають те саме для будь-якого відповідного клієнта.
Директиви поведінки — та частина, яку треба порівнювати. block-outside-dns, наприклад, існує, щоб змінити поведінку DNS у Windows. Клієнт Unix може її взагалі не розпізнати.
Читайте список параметрів клієнта, який приймає, а не того, що надсилає. Довідковий посібник OpenVPN 2.6 описує параметри рушія, і діалог імпорту в GUI — не цей список.
Спершу помилка аналізатора, потім сертифікат
Помилка, що називає нерозпізнаний параметр, — це збій аналізатора, а не збій автентифікації. З'єднання так і не дійшло до TLS, тож заміна сертифікатів не допоможе. Прочитайте першу помилку реального клієнта й версії, потім видаліть або замініть лише ту директиву, яку цей клієнт не може реалізувати. Видалення розділів сертифіката чи маршрутів, щоб файл завантажився, — це шлях, на якому робочий профіль стає небезпечним.
Якщо помилка згадує рукостискання, сертифікат або шифр, профіль розібрано, і проблема в іншому місці.
Тримайте вихідний файл поруч з адаптованим. Коли адаптований файл згодом зламається, вихідний — це контроль, який показує, чи зсунулася зміна чи середовище.
Привілеї — друга межа
Привілеї — інша межа: створення тунельного пристрою, встановлення маршрутів і читання закритого ключа залежать від локальних дозволів. Файл ключа, доступний на читання лише root, — це звичайне розгортання, а не дефект профілю. Виправлення належить володінню або можливостям, а не файлу.
Запуск клієнта з sudo може усунути локальну відмову в дозволі, але не може додати директиву, яку двійковий файл не реалізує. Він також змінює те, чия в'язка ключів, шляхи конфігурації та контекст менеджера мережі діють, тож результат — не та сама перевірка.
Адаптуйте усвідомлено
Коли постачальник публікує окремі профілі, беріть призначений для клієнта, який приймає. Адаптація файлу іншої платформи — останній засіб. Для неї потрібен запис кожного зміненого параметра й копія оригіналу.
Перевіряйте посвідчення, маршрутизацію та DNS як три окремі результати. Профіль, який проходить автентифікацію й маршрутизацію, але ламає розв'язання імен, — це частково адаптований профіль, а не робочий.