自分で軽量のVPNサーバーをJavaで作成することにしました。プログラミングの観点からは、VPNサーバーは、クライアントからのトラフィックを暗号化し、サーバー上でそれを復号化する単なるパススループロキシであるように見えます。誰かが私にこの種のサーバーを書くスケルトンを指摘できますか?
すぐに使えるものがたくさんあり、オープンソースのものさえあることは知っていますが、残念ながら、いくつかのWebプログラミング言語を知っていても、見たCコードの例は、理解できるような方法で文書化/構造化されていません。
私が必要とする部品は次のとおりです。
汎用モジュールを使用する(およびアダプターを作成する)予定の部分は、暗号アルゴリズムです(AESは、DES/3DES-Noobs)のようなウィンドウが表示されますが)
誰かがIPSec VPNサーバーに必要な部分に詳細を追加できる場合は、貢献してください。これは私が知ることができる古いLinuxハードウェアで実行する必要があるため、サーバーはSSLVPNホットネスではなくIPSecである必要があります。ターゲットプラットフォームは古い1.5 Ghzインテルボックスで、2 GBのDDR2 ram、100 GBハードドライブ、2ギガビットNicをミラーリングしました。
明るい面では、クライアント側のVPNには非常に多くの種類があるので、自分のニーズに合わせてVPNを作成する必要はないと確信しています。
まず、 OpenVPN ソースコードを見てみましょう。 Javaではありませんが、原則を理解するには十分です。