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 フィールドを埋めると、間違ったキーに似た形で失敗するプロファイルができます。
サーバーの構成にあるモードに合うプラグインマッピングを使ってください。モードが不明確なときは、ファイルの最初の行から推測するのではなく、サーバーの所有者に尋ねてください。
トンネルが管理セッションを運ぶときは復旧経路を確保してください。保存された変更は必ずしも適用された変更ではなく、インポートの成功はすべてのソースオプションがサポートされた証拠ではありません。どちらのずれも、作業中のリンクを再接続する前に知っておく価値があります。