Преносимост на профил 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 като три отделни резултата. Профил, който удостоверява и маршрутизира, но чупи разрешаването на имена, е частично адаптиран профил, а не работещ.