33

Java で独自の軽量 VPN サーバーを作成することにしました。プログラミングの観点からは、VPN サーバーは、クライアントからのトラフィックを暗号化し、サーバー上で復号化するパススルー プロキシにすぎないように見えます。誰かがこの種のサーバーを書くためのスケルトンを教えてもらえますか?

すぐに使用できるものやオープンソースのものもたくさんあることは知っていますが、残念ながら、いくつかの Web プログラミング言語を知っていても、私が見た C コードの例は、理解できるように文書化/構造化されていません。

私が必要だと想像する部分は次のとおりです。

  • クライアント オブジェクトのスレッド ファクトリ
  • クライアント用ソケットコネクタ
  • IPSec 認証ヘッダー (AH) の作成方法
  • IPSec カプセル化セキュリティ ペイロード (ESP) の作成方法
  • Internet Security Association and Key Management Protocol (ISAKMP) の何か
  • インターネット鍵交換 (IKE)
  • PKI 証明書認証モジュール
  • 証明書リポジトリ (SQLLite)
  • Oakley キー生成 (IKE および ISAKMP 用)
  • パケットのアンチリプレイ防止

私が汎用モジュールを使用する (およびアダプターを作成する) 予定の部分は、暗号化アルゴリズムです (DES / 3DES のようなウィンドウのように見えますが、できれば AES -- Noobs)

誰かが IPSec vpn サーバーに必要な部分に詳細を追加できる場合は、遠慮なく貢献してください。私が知る限り、これは古い Linux ハードウェアで実行する必要があるため、サーバーは SSLVPN ホットネスではなく IPSec である必要があります。ターゲット プラットフォームは、2 GB の DDR2 RAM、ミラー化された 100 GB ハード ドライブ、および 2 ギガビット Nic を搭載した古い 1.5 GHz インテル ボックスです。

明るい面としては、非常に多くの種類のクライアント側 VPN があるため、自分のニーズに合わせて作成する必要はないと確信しています。

4

1 に答える 1

1

まず、 OpenVPNのソース コードを調べます。Java ではありませんが、原則を理解するには十分なはずです。

于 2011-06-09T03:44:44.193 に答える