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オプションが関係するプロセスを詳しく説明してください。
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のリセットにわたってキーを保持することで問題を解決します。そのため、キーを再度読み取る必要はありません。
これは、クライアント側の設定に近いと思います。クライアントが切断された場合、いくつかの条件下で、クライアントは削除され、トンネルが再作成されます。サーバー側で役立つことはわかりません。サーバー側は基本的にずっと稼働しているので。