本文档描述了如何配置 IPsec 和 PPTP VPN 流量的伪装。基于 SSH 的 VPN(例如 F-Secure 出售的以及 VPN mini-HOWTO 中概述的)基于标准的 TCP 流量,不需要任何特殊的内核修改。
VPN 伪装允许您通过您的 Linux 互联网防火墙 建立一个或多个到可访问互联网的 VPN 服务器的 IPsec 和/或 PPTP 会话,而无需强制您从 VPN 客户端系统直接连接到您的 ISP - 从而保留您的 Linux 互联网防火墙的所有优点。它还允许您在伪装的 Linux 防火墙后设置具有私有网络 IP 地址(如 RFC1918 中所述)的 VPN 服务器,允许您仅通过一个注册的 IP 地址提供对私有网络的相对安全的访问 - 即使该 IP 地址代表动态拨号链路。
强烈建议您在尝试设置 VPN 伪装之前,先理解、配置和测试常规的 IP 伪装。在继续操作之前,请参阅 IP 伪装 HOWTO 和位于 http://ipmasq.cjb.net/ 的 IP 伪装资源页面。规划和设置您的 VPN 和防火墙超出了本文档的范围。这里有一些资源
针对 2.0.x 系列内核的补丁在 Linux 内核版本 2.0.36 上运行良好,已合并到 2.0.37 版本中,可能适用于早于 2.0.36 的版本,并且应该适用于高达 2.1.102 左右的 Linux 内核。内核中的 IP 伪装代码在大约 2.1.103 版本进行了重构,需要针对 2.1.105+ 和 2.2.x 系列内核的不同补丁。一个补丁可用于 2.2.5 到 2.2.17 的内核,并且可能适用于更早的内核。
Linux VPN 伪装内核补丁的主页是 http://www.impsec.org/linux/masquerade/ip_masq_vpn.html
请随时将关于本文档的任何反馈或意见发送至我的邮箱 <jhardin@wolfenet.com>。当前版本可以在以下位置找到
它也可以通过 Linux 文档项目 的 HOWTO 仓库 以及您最近的 Linux 系统上的 /usr/doc/HOWTO/
目录中找到。这些副本不是由我直接更新的,因此可能有些过时。
我个人有使用运行在 MS W'98 和 NT 上的 IPsec 和 PPTP 客户端进行伪装、配置注册 IP PPTP 服务器以及使用 PPTP 进行网络到网络路由的经验。
关于伪装私有 IP PPTP 服务器的信息来自与 Len Bayles <len@isdi.com>、Simon Cocking <simon@ibs.com.au> 和 C. Scott Ananian <cananian@lcs.mit.edu> 的讨论。
针对 2.1.105+ 和早期 2.2.x 内核系列的仅 PPTP 的伪装内核补丁的主页是 http://bmrc.berkeley.edu/people/chaffee/linux_pptp.html。
针对 2.0.x 内核的 ipportfw
端口转发内核补丁和配置工具的主页是 http://www.ox.compsoc.org.uk/~steve/portforwarding.html。端口转发已内置于 2.2.x 内核中,用于控制 2.2.x 端口转发的 ipmasqadm
配置工具可以从 http://juanjox.kernelnotes.org/ 获取。
ipfwd
通用 IP 重定向器的主页是 http://www.pdos.lcs.mit.edu/~cananian/Projects/IPfwd/。
衷心感谢 Gordon Chaffee <chaffee@cs.berkeley.edu> 编写和分享了 traceroute 的补丁,该补丁允许跟踪 GRE 流量。如果您的 GRE 流量在某处被阻止,它应该在故障排除中被证明是宝贵的。该补丁可在 http://www.wolfenet.com/~jhardin/pptp-traceroute.patch.gz 获取
更感谢 Steve Chinatti <chinatti@alumni.Princeton.EDU> 贡献了他最初的 IPsec 伪装 hack,我从那里厚颜无耻地窃取了一些非常重要的想法...
关于设置防火墙规则以自动运行的更多信息 - 包括如何在动态 IP 环境中自动使用正确的 IP 地址 - 可以在 http://www.wolfenet.com/~jhardin/ipfwadm/invocation.html 找到
Linux FreeS/WAN (Linux 的 IPsec) 的主页是 http://www.xs4all.nl/~freeswan/ - 这是首选的 Linux VPN 解决方案。
一个名为 PoPToP 的原生 Linux PPTP 服务器在 http://www.moretonbay.com/vpn/pptp.html 可用 - 有关 Linux 上 PPTP 的最新信息,请访问那里。
Paul Cadach <paul@odt.east.telecom.kz> 制作了为 Linux pppd 添加 MS-CHAP-v2、MPPE 和 Multilink 支持的补丁。有关 MS-CHAP 和 MPPE,请参阅 ftp://ftp.east.telecom.kz/pub/src/networking/ppp/ppp-2.3.5-my.tgz,有关 Multilink,请参阅 ftp://ftp.east.telecom.kz/pub/src/networking/ppp/multilink/ppp-2.3.5-mp.tgz。另一组(可能相关的)pppd 补丁在 PoPToP 下载站点 http://www.moretonbay.com/vpn/download_pptp.html 可用。
原始 Linux PPTP 项目的主页是 http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP,并且一个为其添加 PPTP 服务器功能的补丁在 http://debs.fuller.edu/cgi-bin/display?list=pptp&msg=222 可用
感谢 Eric Raymond 维护 Jargon File,以及感谢 Denis Howe 维护 The Free On-line Dictionary of Computing。
本文档版权归 © 1999-2000 John D. Hardin 所有。根据 LDP 许可证条款,允许重新分发本文档,许可证可在 http://www.linuxdoc.org/COPYRIGHT.html 获取
据我所知,本文档中提供的信息是正确的。IP 伪装是实验性的,并且我可能在编写或测试内核补丁或编写本文档中的说明时犯了错误;您应该自行决定是否要进行本文档中概述的更改。
对于因根据本文档中的信息采取的行动而造成的任何损害,作者概不负责。在实施本文档中概述的更改之前,请备份任何和所有关键信息。在按照本文档概述的方式修补和重新编译内核之前,请确保您有一个可用的、可启动的内核。换句话说,采取明智的预防措施。