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

使用Linux L2TP/IPsec VPN 服务器

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

XAUTH(混合模式)是IPsec的扩建部分,因为它需要修改IKE标准,所以至今未被IETE批准。Cisco看来是XAUTH的最大支持者。FreeS/WAN和Strongswan不支持XAUTH,但Openswan有一个执行者(默认是禁用的,需要重新编译)。 Philippe Sultan证明(http://www- rocq.inria.fr/who/Philippe.Sultan/vpn/spoofed_vpn_server.html)如果知道“预共享密钥”可以使用一个被欺骗的服务器获得XAUTH用户名和口令,“预共享密钥”可以通过“暴力破解”(brute force cracking)获得或从客户端复制(磁盘或内存)。关于这个问题可以参看Cisco的“Mutual Group Authentication”(http: //www.cisco.com/en/US/products/sw/secursw/ps2308/prod_release_note09186a00802d398a.html#wp1382364),(注:服务器认证和客户口令,目前只有Cisico的VPN连接者支持,不是IOS),也可以使用证书来解决这个问题。
DHCP-over-IPsec。Openswan支持,不过只有很少的客户端支持,Windows客户端现在只有SSH Sentinel,但它已经废止了。
IKEv2。是目前IKE的继承者,它将支持“继承”像口通过EAP这样的认证模式,在提议被IETE批准之前大概还需要一段时间,并且Linux上的一个执行者已经可用,IKEv2有望成为主流标准。
X.509证书。几乎所有L2TP/IPsec客户端都支持。Openswan也支持它,当然是由Strongsec提供的补丁。证书一般被 Road Warrios所推崇。不利的是你需要设置多种PKI(Public Key Infrastructure),这也许是管理负担,你需要为 Openswan主机和L2TP/IPsec客户端的X.509证书进行生成、发布、撤销等。
像CRACK、HYBRID、PIC等仍然存在,但当前它们没有针对Openswan或其它Linux IPsec执行者的执行体。

9 安装(Linux 内核等)
服务器端需要以下几部分:
• Linux内核。需要一个新的,完整的内核,2.4.18或更高,2.6.6或更高。2.6内核包含了“26sec”,一个基于KAME的本地IPsec执行者。
• Openswan 或者Strongwan。
• Strongse的X.509证书补丁。通常情况下Frees/Wan需要。Openswan和Strongswan已经包含了这个补丁。
• 可选的(但对低于2.00的Frees/WAN强烈建议):打Delete/Notification补丁,Openswan和Strongswan已经包含这个补丁。
• 可选的:Mathieu Lafon的NAT-Traversal补丁(http://open-source.arkoon.net/)。
• 如果你使用MSL2TP客户端,建议对Frees/WAN使用JuanJo Ciarlante的补丁(http: //www.jacco2.dds.nl/networking/freeswan-msl2tp-payload-malformed-workaround -1.diff)。
• L2TP服务。Ll2tpd-0.69不能工作,需要使用l2tpd的邮件列表中的额外补丁或自己创建补丁。
• PPP服务。你需要启用内核的PPP支持。
• Openswan、L2TPD、PPPD的配置文件。
9.1 获得Openswan、Strongswan或FreeS/WAN
你大概更喜欢使用你的发行版提供的包含KLIPS或26sec的内核,它们可能更先进。稍后,如果你觉得你需要最新的版本、额外的补丁或更多的特性,你可以决定来编译你自己的内核和用户态工具。多数多行版包含Openswan或Frees/WAN,当然你也可以下载源代码来重新编译。
9.2 X.509证书补丁
Strongsec发布的X.509证书补丁让FreeS/WAN增加了支持可变IP地址。Openswan和Strongswan已经包含这个补丁。除X.509支持外,这个补丁为L2TP/IPsec提供了额外的极为重要的特性,L2TP/IPsec客户端应该对IPsec隧道作出:因此只有 UDP数据包(IP 协议17)可以穿过隧道的限制。标准版的FreeS/WAN不能做到这样的限制,普通的FreeS/WAN加密它和另外一端之间的所有协议,而不只是L2TP通信。X.509证书补丁增加了两个参数来解决这个问题,leftprotoport和rightprotoport。不幸的是存在两种不同的情况。Windows 2000和XP带的最初的L2TP/IPsec客户端需要这样:
leftprotoport=17/0
rightprotoport=17/1701
其它所有的客户端(包括更新后的Windows 2000/XP和XP SP2+)使用:
leftprotoport=17/1701
rightprotoport=17/1701
看起来微软在Windows 2000/XP带的最初的L2TP/IPsec上犯了一个错误(如果不是错误就是矛盾)。因此在一个两种情况混合的环境(包括没有升级的Windows 2000/XP和其它客户端),不得不使用分类别的配置文件来支持这两种类型。
只有最新版的X.509补丁(比如针对FreeS/WAN2.x的1.4.8+和针对FreeS/WAN1.99的0.9.37+)可以真正把 IPsec连接限制到指定的协议和端口。老版本的X.509不支持leftprotoport和rightprotoport参数,但它们不能执行这些限制,它们接受协议17(UDP)/端口1701(L2TP)限制,但忽略限制,仍通过IPsec隧道恰当地发送其它所有通信(ICMP、HTTP、SSH 等)。
9.2.2隧道协议问题
如果你不使用X.509补丁,L2TP/IPsec客户端和FreeS/WAN之间会有一个协同工作的问题,IPsec连接不能建议,因为FreeS/WAN报错:
"peer client ID payload ID_IPV4_ADDR specifies protocol 17; we only support 0"
如果你得到这个错误,那么你需要为FreeS/WAN用户态程序打X.509补丁。
9.2.3 “Delete/Notification”支持
FreeS/WAN低于2.00的版本忽略“Delete/Notification”信息。Mathieu Lafon为FreeS/WAN制作了一个补丁(http://open-source.arkoon.net/),这个补丁包含了支持这些信息的功能。Openswan、 Strongswan和FreeS/WAN 2.00或更高已经包含了这个补丁。
客户端也许想通知服务器,它要关闭IPsec连接,它可能通过发送一个“Delete SA”信息来完成。如果服务器不支持 “Delete SA”信息,它简单的忽略它们,并且IPsec连接也许超时,然而,这时候客户端当然不能重新连接到服务器,服务器对这时发来的数据包感到困惑,它认为这些数据包是旧连接的,反之,客户端确信它拥有了一个新的IPsec连接。Mathieu Lafon的 “Delete/Notification”补丁修正了这个问题。记住,如果客户端当机或Internet连接被中断,客户端不会有发送 “Delete SA”信息的机会,在这种情况下,有没有“Delete/Notification”补丁服务器都将超时。 “Delete/Notification”补丁看起来对MSL2TP客户端特别有用。(注:MSL2TP客户端大概发送“Delete SA”信息两次,第一次将正确地删除SA,因此第二次将导致一个无害的“ignoring Delete SA payload”信息。)

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



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

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