Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->网络应用 ->正文

使用Linux L2TP/IPsec VPN 服务器

来源:linux.chinaunix.net 作者:QUSHIQIANG  时间:2007-04-22 点击: [收藏] [投稿]

如果你在同一NAT设备后面有多个客户端,只有第一个客户端可以连接,这大概是Linux内核的一个限制。另一个限制大概是客户端不能共享相同的NAT-ed(internal)地址。当然这十分难以消除,尤其是远程客户端之间的一个小的团队。另一个限制是如果客户端和服务器都位于NAT后,我没有亲自测试过,但是我收到这方面的一份报告,它不能工作,不过我不能确定到底是双重NAT引起的还是其它原因。
几乎所有L2TP/IPsec客户端都支持NAT-T。Windows Server 2003也支持NAT-T。像承诺的那样,微软为 Windows XP和Windows 2000 Professional发布了一个IPsec升级包(MS KB Q818043)。这个升级包同样也包含在Windows XP Service Pack 2,可是它制造出来的NAT-T升级包有导致第三方应用程序出现一大堆错误印刷的问题,因此微软要召回它的升级包,2003年8月他们重新发布了一个补丁,这个补丁可能通过Windows Update安装,如果你使用的是 Windows 2000 Professional,你需要先安装Service Pack 3或更高版本,另外,IPsec升级包不会在 Windows Update显示,对于Windows XP,你需要Service Pack 1或更高版本。如果升级包仍没有在 Windows Update中显示,转到Windows Update Catalog并且使用“高级搜索选项”搜索“818043”,如果你想下载 NAT-T升级程序到硬盘并发给更多的客户端,你可以使用Windows Update的Download Basket(见:http: //support.microsoft.com/default.aspx?scid=kb;ZH-CN;323166)或 Software Update Services(见:http: //www.microsoft.com/windowsserversystem/sus/default.mspx)。
依据微软员工的信件,也将可以对Windows 2000 Server和ISA Server更新,不过微软宁愿你升级到 Windows 2003。引用微软的话(KB Q818043):“在 Windows 2000 路由和远程访问中不会增加 NAT-T 服务器端支持。”如果你的服务器运行的Linux,微软的这个决定不会影响到你。
除SSH Sentinel之外所有的客户端都会自动检测NAT-T是否启用。SSH Sentinel需要手动在VPN连接的“属性”窗口的“高级”选项中启用“NAT-Traversal”。
19.3 L2TP/IPsec客户端支持NAT-T的情况
成功测试的(也就是看起来能工作,但是仍认为是试验性的并且不安全的)。
• Windows XP Home/Professional(带有IPsec update Q818043或 Service Pack2)。支持Windows需要最新的高于0.6c的NAT-T补丁(检查/var/log/messages里的 Openswan的启动信息来查看你服务器上的NAT-T版本)。这个补丁已经包含在Openswan2.x和Strongswan中,如果你的服务器没有这个补丁,你将在LOG文件中看到“unsupported ID type ID FQDN”错误信息。如果没有http: //www.advancevpn.com/public/super-freeswan-818043NATv3.patch补丁(Openswan 2.x和Strongswan 2.0.2+包含有这个补丁),你将得到“no connection is know”的错误信息(LOG中显示的IP地址和端口号被一个大数代替)。如果你用的是带SP2的Windows XP并且你的Openswan服务器位于NAT后面,你可能需要修改系统注册表。
• Windows 2000 Professional(带IPsec update Q818043,这个更新不包含在任何服务包中),参考上边提到的Windows XP。
• Windows 2000 Server(当客户端使用):据一黑客报道,它可以工作,这个版本的Windows在 Windows Update中不会显示IPsec update Q818043,但如果下载Windows 2000 Professional的 IPsec update Q818043补丁并安装。微软大概不支持这样,也就是说它可能会破坏你的“支持合同”。在Widnows Update,到 Windows Update Catalogue并选择“Windows 2000 Professional SP3和你的语言版本,在“高级搜索” 中选择“包含这些字符:818043”,把这个更新加入到“Download Basket”,下载并安装。
• Windows Server 2003(当客户端使用):内建了NAT-T支持,也使用ID_FQDN方法(参考上边提到的Windows XP)。
• MSL2TP客户端连接到一个基于Linux的KLIPS服务器。
• SafeNet SoftRemote V7.0.5和9.2.1(可能仅用于KLIPS)。
• SSH Sentinel V1.4.1 build 98连接到基于KLIPS的服务器。可是有一个断开连接的问题, Sentinel看起来不会发送“Delete SA”数据包,Openswan仍认为这是一个IPsec连接,因此客户端在IPsec连接超时前不能访问Linux机器的在外部接口。
• Pocket PC 2003(“Windows Mobile 2003 for Pocket PC”)用证书连接。可以工作,但只有证书比较尺寸比较小时可以。
• Pocket PC 2003用“预共享密钥”连接到基于26sec的服务器。
不能工作的:
• MSL2TP客户端连接到基于26sec的服务器。
• SSH Sentinel V1.41 build 98连接到基于26sec的服务器。
• SSH Sentinel V1.4 build 177。
• SSH Sentinel V1.3或更低。
• Pocket PC 2003用“预共享密钥”连接到基于KLIPS的服务器。
至今不能工作的:
• Mac OS 10.3 Panther。
19.4 准备NAT-T
启用NAT-T的过程:开始取决于你的发行版的内核是否包含26sec或KLIPS,如果你的内核支持26sec那么内核已经支持NAT-T。如果你的发行版的内核既没有包含26sec也没有包含KLIPS,那么很明显没有为IPsec提供NAT-T支持。即使你的内核支持KLIPS,大概仍不支持NAT-T。发行版根本不带任何IPsec支持或带一个基于内核没有NAT-T补丁的KLIPS大概需要安装一个新的内核。如果你需要安装并且重新启用一个新内核RPM,确认获得了对内核RPM的一般警惕,也就是不要更新内核,要重新安装新内核来代替当前内核,并且在lilo.conf中为新内核增加一个入口,然后重新运行一下lilo(也可能使用GRUB)。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:让Linux NAT服务器支持UPnP   下一篇:利用IP 别名托管多个SSL 站点

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号