NM OpenVPN: запазеният профил не е вашият .ovpn файл
Импортът превежда опциите в запазена връзка. Прочетете vpn.data обратно, проверете ta и ta-dir и актуализирайте един запис, вместо да заменяте речника.
Същият .ovpn файл се свързва от шел и изтича след импорт в NetworkManager. Естественият извод е, че VPN е счупен. По-вероятното обяснение е по-малко: NetworkManager не е запазил файла, а е импортирал част от него в запазена връзка и работещият тунел използва вместо това тези запазени данни. Каквото казва файлът сега, е без значение за това, което профилът съдържа.
Файлът не е профилът
Импортът е превод, а не монтиране. Опциите, които плъгинът разбира, стават ключове в vpn.data речника на връзката; опциите, които не разбира, се изхвърлят или записват другаде, а оригиналният път е само справка. Редактирането на изходния файл след това не променя нищо във вече запазената връзка.
Тази разлика обяснява цяло семейство доклади: споделеният ключ е ротиран, файлът е обновен, а тунелът все още се проваля. Запазеният профил все още сочи към стария път или старата стойност, а командният ред продължава да работи, защото чете файла, който сте редактирали. Два клиента, два източника на истина и само един от тях е обновен.
Четете запазения профил, а не диалога
nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn
Използвайте UUID, когато два профила споделят име, и потвърдете, че типът услуга е OpenVPN плъгинът, който очаквате, а не друг тип VPN, който случайно е инсталиран. След това сравнете крайната точка, транспорта и препратките към сертификати с работещото извикване.
Стойност, видима в графичен редактор, не е доказателство, че е запазена. Запазете, отворете отново и я прочетете обратно през командния ред; историческите дефекти при запазване са причина да проверите съхранените данни, а не доказателство, че всяка текуща сборка има същия бъг. Проверката струва една команда.
Два ключа и една посока, която има значение
За връзка с TLS удостоверяване плъгинът съхранява пътя до споделения ключ в ta и посоката в ta-dir, когато разгръщането използва такава. И двете живеят в речника с данни на профила и двете трябва да съвпадат с това, което сървърът очаква.
Посоката е решение от страна на сървъра, изразено на клиента. Изборът на посока, защото съседен профил я има, е начинът, по който работещ ключ започва да проваля ръкостискане. Ако конфигурацията на сървъра е без посока, клиентът не бива да измисля посока.
Самият файл с ключ трябва да е четим от плъгина в контекста, в който той действително работи. Ограничен пакет има различен изглед на файловата система от обикновена настолна инсталация, така че път, който съществува във вашия шел, може да е невидим за услугата.
Актуализирайте един запис, а не речника
nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'
Водещият плюс актуализира отделни записи в речника. Присвояването на vpn.data без него заменя целия речник и точно така един липсващ ключ се превръща в пет счупени настройки. Прочетете профила обратно след промяната и потвърдете, че другите записи са оцелели. Речник, който е загубил отдалечената си крайна точка и сертификатите си, е много по-дълъг следобед от този, с който сте започнали.
Свържете се отново чрез нормалните контроли и наблюдавайте етапа, който се проваля. Ако шлюзът за споделен ключ вече минава и клиентът съобщи грешка със сертификат или удостоверяване на потребителя, вие сте напреднали и следващото разследване е различно.
Не смесвайте режимите на контролния канал
tls-auth, tls-crypt, и tls-crypt-v2 са различни подредби. Файл с ключ, който изглежда подобен, не ги прави взаимозаменяеми, а попълването на полетата TLS-Auth, защото друг профил съдържа форматиран ключ, създава профил, който се проваля по начин, наподобяващ грешен ключ.
Използвайте преобразуването на плъгина, което отговаря на режима в конфигурацията на сървъра. Когато режимът е неясен, попитайте собственика на сървъра, вместо да гадаете по първия ред на файла.
Пазете път за възстановяване, когато тунелът носи вашата сесия за управление. Запазена промяна не е непременно приложена промяна и успешният импорт не е доказателство, че всяка изходна опция е била поддържана. И двете пропуски си струва да се знаят, преди да свържете отново връзката, през която работите.