Viscosity の .visz ファイルを .ovpn に名前変更しても、拡張子はこれまで一度もプロトコルを表していなかったため、中身は変わりません。重要な比較は、依存関係を持つパッケージと、依存関係を一切持たない素のクライアントプロファイルの間のものです。Linux のインポーターに読ませる前に、実際にどちらのコンテナを受け取ったのかを判断してください。

各コンテナが保持するもの

Viscosity のエクスポートのドキュメントは、.visc 接続パッケージと、圧縮された tar アーカイブである .visz アーカイブ形式を説明しています。パッケージは設定と、それが依存する証明書・鍵・スクリプトのファイルをまとめて保持します。素の OpenVPN プロファイルは一つのファイルであり、参照するものはすべて別に存在するか、内部に埋め込まれている必要があります。

その違いが比較のすべてです。パッケージの関係は成果物の一部であり、素のプロファイルの関係は前提にすぎません。その関係を保たずにパッケージを Linux へ移すと、開いたあと最初の欠けた参照で失敗するファイルになります。証明書を埋め込むプロファイルは、すべてを一か所に持つことでその失敗を避けますが、これは誰かが一つを更新する必要が生じるまでは便利です。

外側の拡張子が示すのは、どちらのコンテナを持っているかであり、どのクライアントが使えるかではありません。

設定が実際に始まる場所

パッケージの内部では、ベンダーが依存ファイルと並べて config.conf をドキュメント化しており、参照はローカルで解決されます。起点となるのはそのファイルであり、アーカイブの名前でも、ディレクトリ一覧の先頭にたまたまある証明書でもありません。

Linux では、アーカイブが一緒に置かれることを前提としたファイル群に展開されるため、パッケージが単一のオブジェクトではなくディレクトリとして現れることがあります。展開先のワークスペースで相対パスを一貫させ、Windows の絶対パスを手作業で Linux のパスに置き換えないでください。依存ファイルの欠落と誤ったパスは、クライアントから同じ不満を生みます。

その不満を黙らせるために信頼や ID のオプションを削除することは修正ではありません。

パッケージが持ち越さないもの

Viscosity 自身の設定はすべてが OpenVPN のオプションではありません。スクリプト、ルートの挙動、アプリケーション設定は、別のプログラムが実行できるテキストとしてコピーするのではなく、Linux クライアントが対応する統合で表現する必要があるかもしれません。

同梱されたスクリプトは、読んで許可されていると判断するまでデータとして扱ってください。エクスポートに含まれていたからという理由で実行することは、本来行うべきレビューを反転させます。同じ注意は埋め込まれた認証情報にも当てはまり、パッケージは秘密鍵の素材を保持しうるため、作業コピーはダウンロード用フォルダーではなく保護された場所に置くべきです。

移行が承認されるまで、原本は保護されたままです。

Linux 側が決めるべきこと

接続を誰が所有するか、つまり Community OpenVPN 単独か、NetworkManager のプラグインか、その他の対応クライアントかを決めてください。それぞれ受け入れるオプション群が異なり、ルート、リゾルバー、シークレットの扱いも異なります。あるインポーターで正常に開くファイルが別のインポーターでは拒否されることがあり、インポートの成功は目的の接続との互換性を証明しません。対応済みの成果物から始めるほうが一つを翻訳するより短いので、Linux 対応のプロファイルが既にあるかを運用担当者に確認してください。

サーバーの信頼、クライアントの ID、秘密鍵の保護を三つの別個の問いとして扱ってください。

接続する前のレビュー

エンドポイントとトランスポート、認証方式、すべてのファイル参照、想定されるルートと DNS ポリシーを確認します。そのうえで、トンネルが上がることはアプリケーションが必要なものに到達できるかどうかを何も語らないため、接続と必要なアプリケーションを別々に検証してください。

openvpn --config ./config.conf --verb 4

ネゴシエートされた結果を、運用担当者が語るプロファイルの想定動作と比較し、Linux クライアントが無視したオプションを記録してください。

移行が承認されたら、通常の認証情報の取り扱い手順に従って転送用のコピーを廃棄します。共有フォルダーに残されたパッケージは、共有フォルダーに残された認証情報です。

関連記事