Той самий файл .ovpn в одному клієнті піднімає тунель, а в іншому не запускається, і сертифікат зазвичай перший підозрюваний. Найчастіше файл містить директиву, яку реалізує лише один рушій. Профіль — це договір із конкретним клієнтом, а не переносний скрипт.

Відокремте те, що подорожує з посвідченням, від того, що належить платформі. Тоді збій зазвичай сам себе називає.

Один файл, два договори

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

Файл, який працює в GUI на одній платформі, не обов'язково придатний для клієнта командного рядка на іншій. Навіть коли обидва — OpenVPN, синтаксичні аналізатори та набори параметрів різняться. Тому успішний імпорт не доводить переносність профілю.

Переносний матеріал проти директив платформи

Розділи посвідчення й транспорту — та частина, яку треба зберегти. ca, cert, key і remote описують, хто і куди підключається, і означають те саме для будь-якого відповідного клієнта.

Директиви поведінки — та частина, яку треба порівнювати. block-outside-dns, наприклад, існує, щоб змінити поведінку DNS у Windows. Клієнт Unix може її взагалі не розпізнати.

Читайте список параметрів клієнта, який приймає, а не того, що надсилає. Довідковий посібник OpenVPN 2.6 описує параметри рушія, і діалог імпорту в GUI — не цей список.

Спершу помилка аналізатора, потім сертифікат

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

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

Тримайте вихідний файл поруч з адаптованим. Коли адаптований файл згодом зламається, вихідний — це контроль, який показує, чи зсунулася зміна чи середовище.

Привілеї — друга межа

Привілеї — інша межа: створення тунельного пристрою, встановлення маршрутів і читання закритого ключа залежать від локальних дозволів. Файл ключа, доступний на читання лише root, — це звичайне розгортання, а не дефект профілю. Виправлення належить володінню або можливостям, а не файлу.

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

Адаптуйте усвідомлено

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

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

Схожі статті