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 потому, что в другом профиле есть отформатированный ключ, создаёт профиль, который не проходит так, как при неверном ключе.
Используйте сопоставление плагина, соответствующее режиму в конфигурации сервера. Если режим неясен, спросите владельца сервера, а не угадывайте по первой строке файла.
Сохраняйте путь восстановления, когда туннель несёт вашу сессию управления. Сохранённое изменение не обязательно применённое изменение, а успешный импорт не доказывает, что каждый исходный параметр поддерживался. Оба этих разрыва стоит знать до того, как вы переподключите звено, через которое работаете.