web-dev-qa-db-ja.com

OpenVPNのpersist-tunオプション-何がポイントですか?

OpenVPN 2 Cookbookによると:

Persist-tunおよびpersist-keyオプションを使用して、基盤となるネットワークが中断された場合に接続が自動的に復旧するようにします。これらのオプションは、ユーザーnobodyおよびグループnobody(またはグループnogroup)を使用する場合に必要です。

これは実際にはどういう意味ですか?

サーバー側にはtun0デバイスがあります。 OpenVPNプロセスは、nobodyおよびnogroupとして実行されます。これまでのところ大丈夫です。しかし、persist-tunオプションは正確には何をするのでしょうか?接続するかどうかによって、同じtun0デバイスがまだ存在します。

別の質問から:

Persist-tunオプションを削除します。そのオプションがないと、VPNリンクがダウンし、tunデバイスが閉じて削除されます。もちろん問題は、そのオプションを削除すると、誰もではなくrootとしてVPNデーモンを実行する必要があるということです。誰もアカウントとしていないため、OpenVPNは接続が再確立されたときに新しいtunデバイスを作成できません。

Persist-tunオプションを削除した後、クライアントが接続されていなくてもtunデバイスは存在しています。

誰かが、persist-tun、persist-key、user nobody、group nogroup、keepaliveオプションが関係するプロセスを詳しく説明してください。

3
tenjohn

persist-tunを使用する理由は3つ考えられます

1-インターフェイスを管理するには、root権限が必要です。 OpenVPNがnobody/nogroupに変更された場合、インターフェースを追加/削除できません。したがって、tunインターフェースを永続化する必要があります。

2- tunインターフェースが削除されると、それを指すルートが失われます。これは、トラフィックが暗号化されずにデフォルトルートを流れることを意味します。おそらくあなたが起こりたくない何か。

3-インターフェースが削除されない(持続する)場合、アップ/ダウンスクリプトは実行されません。マニュアルは言う:

–persist-tun SIGUSR1または–ping-restart restarts全体でTUN/TAPデバイスを閉じて再度開いたり、スクリプトを実行したりしないでください。SIGUSR1はSIGHUPに似た再起動信号ですが、リセットオプションをより細かく制御できます。

同様のことはpersist-keyの-​​ 2.4マニュアル でも説明されています

–persist-key SIGUSR1または–ping-restart全体でキーファイルを再読み取りしないでください。このオプションを–user nobodyと組み合わせて、SIGUSR1シグナルによってトリガーされる再起動を許可できます。通常、OpenVPNでroot権限を削除すると、保護されたキーファイルを再度読み取ることができなくなるため、デーモンを再起動できません。

このオプションは、SIGUSR1のリセットにわたってキーを保持することで問題を解決します。そのため、キーを再度読み取る必要はありません。

2
yurtesen

これは、クライアント側の設定に近いと思います。クライアントが切断された場合、いくつかの条件下で、クライアントは削除され、トンネルが再作成されます。サーバー側で役立つことはわかりません。サーバー側は基本的にずっと稼働しているので。

1
Zoredache