创建基于 UNIX 的 VPN:指针、指南和陷阱?

创建基于 UNIX 的 VPN:指针、指南和陷阱?
  • 有人有创建基于 UNIX 的虚拟专用网络的第一手经验吗?
  • 有哪些最好的 VPN 客户端/工具可以实现此目的?
  • 有哪些常见的陷阱是我应该避免的?

就我而言,我的主要兴趣在于兼容 Debian 的解决方案。我的主要目标是让它工作,因为我以前没有这样做过,但我可以看到在我不想使用 SSH 连接的情况下可能的一些好处。

答案1

在 Linux 中你有两个主要选择:

第二个真的很棒,我已经在生产中使用它好几年了。它是 Debian 的标准软件包。它在几十兆比特的容量下表现相当好 [ 几百兆比特也行,但我办公室之间的互联网连接没有那么快 ]

关于openvpn的一些提示:

  • 为了更安全,请勿使用“共享秘密”键的类型,创建证书颁发机构并使用其签名的密钥反而。
  • 如果可能的话,使用 tun 模式而不是 tap 模式 [通过 vpn 路由流量,而不是通过它桥接两个以太网段]
  • 如果您选择证书颁发机构解决方案 - 请记住密钥会过期。为自己设置几个提醒以重新生成密钥。
  • 为安全起见,请使用 opensvn 内置的软件看门狗 [ping-restart 选项] + 添加简单的 bash 脚本,循环检查 openvpn 进程是否正在运行。在过去 3 年中,openpn 对我来说死了约 2 次。
  • 尽可能使用 udp 隧道 [而不是 tcp]。我在办公室使用 nat 后面的 vpn 时遇到了问题 [其中 linux 机器位于我无法控制的廉价 dlink 路由器后面] 一段时间后 udp 数据包被阻止 - 在这种情况下,我被迫使用 tcp。
  • 在防火墙/NATS后面享受OpenVPN。只要一方有公共IP,并且可以通过一个端口上的TCP或UDP访问--您就可以建立到它的VPN,另一个节点不需要有公共IP!

答案2

真正的 IPsec 只会让人头疼。该协议在不同的网络拓扑中会出错。无论操作系统是什么,客户端都普遍缺乏这种功能。除非您需要仅执行 IPsec 的硬件端点,否则请不惜一切代价避免使用它。

然而,OpenVPN 设置简单、使用可靠,并且为 Linux、Windows 和 Mac 提供了非常直观的客户端。

考虑如何管理新用户并撤销旧用户。这取决于您预计支持多少用户。就我们个人而言,我们使用基于双因素令牌的 x509 证书,这种证书的扩展性非常好,但如果规模扩大,确实需要某种方式来管理 PKI。

答案3

再次投票支持 OpenVPN。我在以前的工作中使用过它,它非常稳定,与我目前工作中使用的 PPTP 和 IPSEC VPN 隧道相比,它的问题更少。OpenVPN 提供的灵活性也很难被超越。但在我看来,OpenVPN 确实有一个弱点。目前许多智能手机都不支持它。事实上,我不知道有哪款手机支持它。我确实知道有人试图将它移植到 iPhone 上,但我不知道这个项目在哪里。

您没有提到您的 vpn 解决方案需要支持哪种类型的客户端。因此,如果您需要避免使用第三方客户端或需要智能手机支持,那么 PPTP 可能更适合。Windows、OSX 和许多智能手机都有原生 PPTP 客户端。Poptop 是实现 PPTP 的 Linux 项目。

答案4

一个非常灵活且有据可查的解决方案是 OpenVPN (http://openvpn.net/)这可以作为 Ubuntu 标准存储库中的一个包来使用,并且也应该可以在 Debian 中找到。

相关内容