同様にDSLルーターの背後にある「わずか」数百のリモート接続で、実際にこれを実行しました。キー再生成の問題についてはあまりコメントできませんが、途中で学んだいくつかの実用的なこと:
1)クライアントを展開するときは、クライアントconf、vpn1.example.com、vpn2.example.com、vpn3 .....で複数のVPNサーバーを指定していることを確認してください。自分自身のヘッドルーム。適切に構成されたクライアントは、動作するものが見つかるまでランダムに再試行し続けます。
2)カスタムAWS VPNサーバーイメージを使用し、オンデマンドで追加の容量をスピンアップできます。AmazonDNS(R53)はDNSの側面を処理します。インフラストラクチャから完全に切り離されています。
3)サーバー側で、ネットマスクを慎重に使用して、潜在的なクライアントの数を制限します。これにより、クライアントを代替サーバーに強制し、CPUの問題を軽減する必要があります。私たちのサーバーは300クライアント程度に制限されていると思います。この選択は、私たちの側ではいくぶんarbitrary意的でした-あなたが望むなら、「直感」。
4)サーバー側でも、ファイアウォールを慎重に使用する必要があります。簡単に言えば、クライアントがVPN接続できるように設定しましたが、サーバーは既知のIPアドレス以外からのすべてのssh接続を厳密に拒否します。時々必要な場合は、クライアントにSSHで接続できますが、クライアントはSSHで接続できません。
5)クライアント側でOpenVPNが再接続を行うことに依存しないでください。10回のうち9回は停止しますが、時々スタックします。クライアント側でopenVPNを定期的にリセット/再起動する別のプロセスを用意してください。
6)クライアント用に一意のキーを生成する方法が必要なため、それらを時々否認できます。これらをサーバービルド(PXEboot)プロセスで内部的に生成します。私たちには決して起こりませんでしたが、私たちはそれができることを知っています。
7)VPNサーバー接続を効果的に監視するための管理ツール、スクリプトが必要になります。
残念ながらこれを行う方法についてはあまり資料はありませんが、慎重に構成すれば可能です。