コミュニティソリューション

ZimaOSでのOpenVPN:サーバーとクライアントの設定

A ZimaOS user asked how to install OpenVPN Connect, but the community reply provided a Docker deployment for OpenVPN Access Server instead.

結論:何かをインストールする前に、OpenVPNサーバーとOpenVPNクライアントのどちらが必要かを決める

フォーラムの質問では「OpenVPN Connect」が求められていましたが、返信でインストールされたのはOpenVPN Access Serverでした。これらは同じ製品ではありません。Access ServerはZimaOSをVPNサーバーにし、リモートクライアントが接続できるようにします。OpenVPN Connectは、Windows、macOS、Android、iOSなどのエンドポイントで使用するクライアントアプリケーションです。ヘッドレスLinuxでは、デスクトップ版のOpenVPN Connectアプリではなく、Linux用クライアントツールを使用することをOpenVPNは推奨しています。

自宅ネットワークにリモートからアクセスしたい場合は、サーバーの役割が必要

OpenVPNの公式Dockerデプロイでは、Access Serverを使用します。

docker run -d   --name=openvpn-as   --device /dev/net/tun   --cap-add=MKNOD   --cap-add=NET_ADMIN   -p 943:943   -p 443:443   -p 1194:1194/udp   -v /DATA/AppData/openvpn:/openvpn   --restart=unless-stopped   openvpn/openvpn-as

OpenVPN Access Serverが現在のアップストリームの公式ソースです。証明書とサーバー設定をコンテナの再作成後も保持できるよう、永続的な/openvpnデータパスは実際のZimaOSストレージ上に置いてください。

すべての管理ポートをインターネットに公開しない

Access Serverは、Web管理インターフェースとVPNリスナーポートを使用します。リモートからの受信接続には、パブリックIPアドレス、またはルーターでの意図的なポートフォワーディングが必要です。選択した構成に必要なポートだけを公開し、管理UIへのアクセスを制限して、HTTPSを使用してください。外部ポートと内部ポートの正確な選択は、ルーターの設定や、別のリバースプロキシがすでに443番ポートを使用しているかどうかによって異なります。

ZimaOS自体を別のOpenVPNサーバーに接続したい場合、それはクライアントの役割

OpenVPNのLinuxクライアントには、OpenVPN 3 Linux、オープンソースのopenvpnクライアント、通常のLinuxディストリビューション向けのNetworkManagerプラグインなどがあります。ただし、ZimaOSは読み取り専用のシステムモデルを採用したヘッドレスアプライアンスOSであるため、ベースシステムにデスクトップクライアントをインストールするのは最適な方法ではありません。

OpenVPN Linuxクライアントでは、サーバーとクライアントの違いが明確に説明されています。

ZimaOSホスト全体をVPN経由でルーティングするのは高度な変更

OpenVPNクライアントがホストのデフォルトルートを変更すると、ZimaClientのリモートアクセス、App Storeのダウンロード、Dockerネットワーク、ローカルLANアクセスがすべて影響を受ける可能性があります。本当にVPNの背後に置く必要があるのがホスト全体なのか、それとも1つのアプリケーションコンテナだけなのかを判断してください。ダウンローダーやスクレイパーの場合は、そのコンテナだけをVPNゲートウェイ経由でルーティングするほうが、通常は動作を把握しやすくなります。

通常のリモートNASアクセスには、現在のZimaOSではTailscaleまたはWireGuardのほうが簡単

現在のZimaOSでは、Tailscale、WireGuard Easy、Firefly、NetBirdをApp Storeから直接利用できます。外出先からファイルやダッシュボードにアクセスすることが目的であれば、OpenVPN Access Serverを一から構築するよりも、これらの方法のほうがカスタムコンテナやネットワーク設定が少なくて済みます。

ZimaOSのVPNオプションではサポートされている選択肢を紹介しており、Tailscaleの要件では、最も簡単に導入できるオーバーレイネットワークの選択肢を説明しています。

意図したカスタムOpenVPNスタックにはPortainerまたはComposeを使用する

OpenVPNとの互換性が特に必要な場合は、後から再構築できない一度限りのコマンドではなく、Composeなどの再現可能な定義としてコンテナ設定を管理してください。ボリュームパス、TUNデバイスへのアクセス、ケイパビリティ、ポートマッピングを、バージョン管理する設定ファイルに保持します。

Portainerの要件はコンテナUIを好むユーザーに役立ち、ZimaOSアプリの要件では、ZimaOSアプリの全体的なモデルを確認できます。

VPNを両側から確認する

Access Serverの場合は、モバイルデータ通信中のスマートフォンから接続し、VPNから割り当てられたアドレスと、意図したLANアクセスを確認してください。クライアント設定の場合は、接続前後のZimaOSのルーティングテーブルを確認します。

ip addr
ip route
curl ifconfig.me

コンテナが「running」と表示されたというだけで、成功したと判断しないでください。通信が想定した経路を通っていることと、ローカル管理が引き続き機能することを確認してください。

FAQ

OpenVPN ConnectはAccess Serverと同じですか?

いいえ。OpenVPN Connectは主にエンドポイント用のクライアントであり、Access Serverはセルフホスト型のVPNサーバー製品です。

OpenVPN Access ServerはZimaOS上のDockerで実行できますか?

はい。公式のAccess ServerイメージはDockerをサポートしており、TUNデバイスへのアクセス、NET_ADMINケイパビリティ、永続ストレージ、適切なポートが必要です。

ポートフォワーディングは必要ですか?

自宅のルーター配下でセルフホスト型の受信用OpenVPNサーバーを運用する場合、別のパブリックルーティング構成を使用しない限り、通常は必要です。

ZimaOSをVPNクライアントにできますか?

技術的には、Linux用のOpenVPNツールや慎重に設計したコンテナを使えば可能です。ただし、ホスト全体のルーティングを変更すると、LANやリモートアクセスの動作に支障が出る可能性があります。

OpenVPNとTailscaleのどちらを使うべきですか?

互換性や既存のOpenVPNインフラが重要なら、OpenVPNを使用してください。ZimaOSへの簡単なリモートアクセスが目的なら、現在のApp StoreにあるTailscaleまたはWireGuardの方法のほうが簡単です。