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

使用Linux L2TP/IPsec VPN 服务器

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

HOW TO:在Windows上启用PPP日志(Q234014)(http://support.microsoft.com/default.aspx?scid=kb;en-us;234014)。(技巧:set tracing * enable将记录更多)
如果你为IPsec和PPP启用日志,你将分别得到OAKLEY.LOG和PPP.LOG文件。PPP.LOG不总是有用,因为很多细节被记录成十六进制转储的二进制。你可以使用Windows 2000 Professional的网络监视器(Network Monitor)检查客户端和服务器之间的通信。Windows XP没有带网络监视器,但你可以安装网络监视器驱动程序(Network Monitor Driver)然后使用 Netcap把通信过程写入一个文件,这个文件可以被Windows 2000的网络监视器或像Ethereal这样的软件分析。
悲哀的是在Windows的比较晦涩的错误信息中很难找到好的信息,例如,一次想连接到一个Windows服务器,但是失败了,启用IKE踊跃后,OAKLEY.LOG显示出这些错误:
7-26: 13:50:20:656:1e4 Policy mismatch on offer method 1 policy method 1
7-26: 13:50:20:656:1e4 Attribute Phase II Diffie-Hellman group descriptor
7-26: 13:50:20:656:1e4      Expected: 0
7-26: 13:50:20:656:1e4      Received: 2
它简单地意味着Windows不想用FPS,但另外一端使用了PFS(DH Group2),当我在另一端禁用PFS后,你在哪里可以发现这些论断信息?你告诉我……
MSL2TP客户端更多的“发现并修理故障”信息在 “Administrator’s Guide to Microsoft L2TP/IPsec VPN Client”( http: //www.microsoft.com/technet/itsolutions/network/maintain/security/vpnclnta.asp 或者http://www.microsoft.com/windows2000/docs/VPNClient_AdminGuide.doc)。你应该做的一件是是:在MSL2TP客户端启用日志。“开始”菜单里有一个目录“Microsoft L2TP/IPSec VPN Client”,这个目录里的有一个L2TPConfig.exe(称为:Microsoft IPsec VPN Configuration),里面有一个设置 “Enable IPsec logging”,然后它会在C:\Program Files\Microsoft IPSec VPN Client目录下创建一个名为Isakmp.log的日志文件。在微软TechNet的Cable Guy(http: //www.microsoft.com/technet/columns/cableguy/cg0502.asp)也有这方面的诊断技巧。如果你用的是Windows 2000/XP,下面的微软知识库文档也许有用:
Basic L2TP/IPSec Troubleshooting in Windows XP
(http://support.microsoft.com/?kbid=314831)
Basic IPSec Troubleshooting in Windows 2000
(http://support.microsoft.com/?kbid=257225)
Basic IPSec Troubleshooting in Windows
(http://support.microsoft.com/?kbid=259335)
在VPN上DNS问题比较普遍,下面这个网站有解答这方面问题的技巧:http://www.tacteam.net/isaserverorg/vpnkitbeta2/dnsvpn.htm
23.1 证书
X.509证书可以像“预共享密钥”那样来使用。你需要设立多种公钥基础设施(PKI:Public Key Infrastructure)来为Openswan主机和Windows IPsec客户端创建私有密钥和X.509证书。
不要忘了,一旦你开始使用证书,就要禁用“预共享密钥”配置文件。如果“预共享密钥”和证书配置文件在同一个客户端(或IP地址)上,将会把 Openswan搞混。“预共享密钥”配置将优先。如果你需要证书和“预共享密钥”为Road Warriors同时工作,请参考 Sverre Gunnersen的使用说明(http: //www.nthdegree.com.au/sverre/publications/141004.html)。
OpenSSL是生成证书的常见选择,因为它是开放源代码的并且自由使用,
应避免在证书中使用特殊字符。像OpenCA、TinyCA、IDX-PKI这样的软件在建立“认证中心”时非常有用。作为选择,你可以购买一些软件来生成证书。Windows NT/2000/2003带了“认证中心”软件。SSH销售Certifier,一个“在管理服务提供者和企业环境发布和管理数字证书的PKI平台产品”。还有许多像Verisign和Baltimore等厂商。
任一种方法,最终都将得到PKCS#12格式的证书。PKCS#12是一个发布密钥和证书的标准。PKCS#12文件的扩展名为.p12或. pfx,包含了客户端的私有密钥,相应的证书和根CA的证书(甚至可能是一个CA证书链)。既然它包含了客户端的私有密钥,PKCS#12文件被使用口令加密。记住,客户端证书不得不通过相同的“认证中心”签名,像Openswan的证书一样。
在Windows 2000/XP下使用MMC(Microsoft Management Console)为L2TP/IPsec导入证书。因为Windows 95/98/Me没有带MMC,只好在Internet Explorer中导入PKCS#12文件,也就是在“工具”—— “Internet 选项”下的“保存证书”。OpenSSL命名文件的扩展名是.p12,介是Internet Explorer只识别扩展名为. pfx文件,所以必须选择“显示所有文件”,然后再导入.p12文件。一旦证书(带机器的私有密钥)被导入到Internet Explorer中,它也适用于MSL2TP客户端。
Windows 2000/2003 Server包含的CA,对证书支持 “增强型密钥用法”(EKU: Enhanced Key Usages)属性。这些EKU限制证书,所以它只能用到IPsec连接。其它用途(比如,用到WEB服务器)则不允许,这为服务器的PKI增加了一点额外的安全。如果你使用OpenSSL,你大概也可以建立带这些EKU属性的证书。
有一份Bugtraq邮件列表报告部分IPsec执行者有 “潜在的中间人攻击”(potential Man-in-the- Middle vulnerability)。如果客户端证书受到危害(这不太困难,例如手提电脑被盗),它可能被攻击者用来为第二台客户端伪造一个服务器证书,毕竟第一台客户端受到危害的证书是由CA发布的有效证书。可以在FreeS/WAN的邮件列中找到更多的信息。
23.2 在智能卡上的证书
为了额外的安全,证书可以存储在智能卡上(包括USB token)。在MSL2TP客户端上已经测试过了,并且它可以工作。当我开始连接时,它提示需要Ikey 2032 token的PIN号码,于是建立起连接。SSH Sentinel也应该能工作(它有一个称为 Accession Lite的seperate智能卡应用程序),但有点与IKey驱动不兼容。Windows 2000/XP自带的IPsec客户端使用智能卡可能有问题,好象没有办法将“本地计算机证书”保存到USB token上。根据微软的文档,它可以指定不同的“密码服务提供者”(CSP: Cryptographic Service Provider),比如某个能支持你智能卡或USB token的,但仅当你通过WEB接口(“web enrollment”)申请证书,不是当你通过一个PKCS#12格式的文件导入你的证书。

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



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

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