33

我决定用 Java 编写自己的轻量级 VPN 服务器。从编程的角度来看,在我看来,VPN 服务器只是一个传递代理,它对来自客户端的流量进行加密,并在服务器上对其进行解密。有人可以指出我编写这种服务器的框架吗?

我知道有很多开箱即用的,甚至是开源的,但不幸的是,即使我知道几种 Web 编程语言,我看到的 C 代码示例也没有以我可以理解的方式记录/结构化。

我想我需要的部分是:

  • 客户端对象的线程工厂
  • 客户端的插座连接器
  • 创建 IPSec Authentication Header (AH) 的方法
  • 用于创建 IPSec 封装安全负载 (ESP) 的方法
  • 互联网安全协会和密钥管理协议 (ISAKMP)
  • 互联网密钥交换 (IKE)
  • PKI 证书认证模块
  • 证书存储库 (SQLLite)
  • Oakley 密钥生成(用于 IKE 和 ISAKMP)
  • 数据包的一些反重放预防

我计划使用通用模块(并为其创建适配器)的部分是密码算法(最好是 AES,尽管看起来像 DES / 3DES 之类的窗口 - Noobs)

如果有人可以为 IPSec vpn 服务器所需的部分添加更多细节,请随时贡献。据我所知,由于有必要在较旧的 linux 硬件上运行它,因此服务器应该是 IPSec 而不是 SSLVPN 热点。目标平台是一个旧的 1.5 Ghz 英特尔盒子,我用 2 GB 的 DDR2 内存、镜像的 100 GB 硬盘驱动器和 2 个千兆网卡进行了抽水。

从好的方面来说,由于客户端 VPN 的类型如此之多,我很确定不需要为我的需要制作一个。

4

1 回答 1

1

我将从查看OpenVPN源代码开始。不是java,但应该足以理解原理。

于 2011-06-09T03:44:44.193 回答