VPN之远程接入VPDN答疑
2008.11.18
问题1: VPN的分类 .................................................................................................................................................... 1 问题2: 什么是隧道技术? ........................................................................................................................................ 2 问题3: PPTP方式VPN的工作方式? ....................................................................................................................... 2 问题4: L2TP方式VPN的工作方式? ....................................................................................................................... 5 问题5: PPTP方式和L2TP方式的VPN有何异同? ................................................................................................ 8 问题6: msl2tp client和win2k/xp自带l2tp client的区别是什么? ........................................................................ 10 问题7: 有时候出现”错误1717:未知的界面”是怎么回事?................................................................................... 11 问题8: 自己选择出口(1) ......................................................................................................................................... 11 问题9: 自己选择出口(2) ......................................................................................................................................... 12 问题10: VPN的串联以及穿透内网 ........................................................................................................................ 12 问题11: 无法启动”路由与远程访问服务” ............................................................................................................ 13 问题12: 看不到”传入的连接” ................................................................................................................................ 14 问题13: 看到”传入的连接”但是仍然无法连接 .................................................................................................... 15 问题14: 命令行配置VPN服务器 .......................................................................................................................... 16 问题16: 要求安装证书 ............................................................................................................................................ 17 问题17: 虚拟连接网卡上的NetBIOS over TCP/IP ............................................................................................... 20 问题18: 怎么做L2TP/IPSec方式的VPN? ........................................................................................................... 20 问题19: 简单日志纪录 ............................................................................................................................................ 22 问题20: 高级日志纪录 ............................................................................................................................................ 24 问题21: VPN的地址转换 ........................................................................................................................................ 27 问题22: Cisco路由器上配置远程接入VPN .......................................................................................................... 28 问题23: 能否对虚拟的VPN网卡进行sniff? ........................................................................................................ 32 问题24: VPN虚拟网卡的特性 ................................................................................................................................ 32 问题25: 如何更改PPP连接或VPN连接的默认最大传输单位(MTU)大小 ...................................................... 34 问题26: PPP协议是如何工作的? ........................................................................................................................... 35
问题1: VPN的分类
问:VPN有哪些类型?
答:从功能上分,有两种VPN连接类型:远程接入VPN(Remote Access VPN)和站点间VPN(Site-to-Site VPN).远程接入VPN一般是指移动办公人员将其个人电脑通过拨号或者LAN连接至互联网,然后启动隧道接入公司的内部网络.站点间VPN是指一个地区的内部网
络通过隧道与另一地区的内部网络相连,两个内部网络的用户可以互相访问.
从技术上分,有两种类型的VPN:第二层VPN(Layer 2 Tunneling)和第三层VPN(Layer 3 Tunneling).第二层VPN指隧道所封装的内容属于数据链路层,包括PPTP和L2TP等.第三层VPN指隧道所封装的数据包属于网络层,包括IPSec和MPLS等.
问题2: 什么是隧道技术?
问:什么是隧道技术?
答: 隧道技术(Tunneling)是VPN的基本技术,类似于点对点连接技术,它在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输.隧道是由隧道协议形成的,分为第二、三层隧道协议.第二层隧道协议是先把各种网络协议封装到PPP中,再把PPP数据封装进隧道协议中.这种方法形成的数据包靠第二层协议(PPP)进行传输.第二层隧道协议有L2F、PPTP、L2TP等.L2TP协议是目前IETF的标准,由IETF融合PPTP与L2F而成.第三层隧道协议是把各种第三层协议(IP,IPX,AppleTalk等)直接装入隧道协议中,形成的数据包依靠第三层协议进行传输.第三层隧道协议有VTP、IPSec等.
问题3: PPTP方式VPN的工作方式?
问:PPTP方式VPN是如何工作的?
答:首先PPTP客户端向服务器的1723端口发起TCP连接,三次握手后建立连接,然后客户端发出SCCRQ(Start-Control-Connection-Request)的PPTP控制报文,服务器响应SCCRP
(Start-Control-Connection-Reply),OCRQ(Outgoing-Call-Request),
然后客户端发送
服务器响应OCRP(Outgoing-Call-Reply),然后客户端发送SLI(Set-link-Info),服务器响应SLI(Set-Link-Info),这时PPTP隧道完成建立.接着就进入PPP协商阶段(包括PPP身份验证,PPP数据压缩/加密等),注意PPTP方式VPN中的PPP协议都封装在GRE协议(Generic Routing Encapsulation,通用路由协议,IP协议编号为47)中.断开VPN连接时,如果是客户端主动终止连接,则客户端先发出CCRQ(Call-Clear-Request)的PPTP控制报文,服务器响应
CDN(Call-Disconnect-Notify),接着客户端发出
StopCCRQ(Stop-Control-Connection-
Request),服务器响应StopCCRP(Stop-Control-Connection-Reply),然后断开TCP连接.如果是服务器主动终止连接,则服务器端发出CCRQ(Call-Clear-Request)的PPTP 控制报文,客户端响应CDN(Call-Disconnect-Notify),接着客户端再发出StopCCRQ(Stop-Control-
Connection-Request),服务器响应StopCCRP(Stop-Control-Connection-Reply),然后断开TCP连接.如果服务器是Cisco Router并且主动终止连接,那么Cisco Router将直接发出
StopCCRQ(Stop-Control-Connection-Request),客户端响应
StopCCRP(Stop-Control-
Connection-Reply),然后断开TCP连接.下面是PPTP Control Message的类型简要一览:
Control Message Message Code
(Control Connection Management)
Start-Control-Connection-Request 1
Start-Control-Connection-Reply 2
Stop-Control-Connection-Request Stop-Control-Connection-Reply Echo-Request Echo-Reply (Call Management)
Outgoing-Call-Request Outgoing-Call-Reply Incoming-Call-Request Incoming-Call-Reply Incoming-Call-Connected 3
4
5
6
7
8
9
11
10
Call-Clear-Request 12
Call-Disconnect-Notify 13
(Error Reporting)
WAN-Error-Notify 14
(PPP Session Control)
Set-Link-Info 15
问题4: L2TP方式VPN的工作方式?
问:L2TP方式VPN是如何工作的?
答:使用纯L2TP方式的VPN时,首先是客户端向服务器1701端口发出基于UDP协议的L2TP控制报文SCCRQ(Start-Control-Connection-Request),服务器响应SCCRP(Start-Control-
Connection-Reply),然后客户端发出
SCCCN(Start-Control-Connection-Connected)确认连接建立.接着客户端发出ICRQ(Incoming-Call-Request),服务器响应ICRP(Incoming-
Call-Reply),然后客户端发出ICCN(Incoming-Call-Connected)确认L2TP隧道建立.隧道建立完成后,进入PPP协商阶段(包括PPP身份验证,PPP数据压缩/加密等),注意L2TP
方式VPN中的PPP协议还是封装在L2TP协议中. 断开VPN连接时,如果是客户端主动终止连接,则客户端先发出CDN(Call-Disconnect-Notify)的L2TP控制报文,服务器响应后,客户端接着再发出StopCCN(Stop-Control-Connection-Notification),服务器响应后断开. 如果是服务器主动终止连接,则服务器先发出CDN(Call-Disconnect-Notify)的L2TP 控制报文,客户端响应后,紧接着客户端再发出StopCCN(Stop-Control-Connection-Notification),服务器响应后断开.如果服务器是Cisco Router并且主动终止连接, 那么Cisco Router将直接发出StopCCN(Stop-Control-Connection-Notification),客户端响应后断开连接. 下面是L2TP Control Message的类型简要一览:
Control Message Message Code
(Control Connection Management)
Start-Control-Connection-Request 1
Start-Control-Connection-Reply 2
Start-Control-Connection-Connected 3
Stop-Control-Connection-Notification 4
Reserved 5
Hello 6
(Call Management)
Outgoing-Call-Request 7
Outgoing-Call-Reply 8
Outgoing-Call-Connected Incoming-Call-Request Incoming-Call-Reply Incoming-Call-Connected Reserved Call-Disconnect-Notify (Error Reporting)
WAN-Error-Notify (PPP Session Control)
Set-Link-Info 9
10
11
12
13
14
15
16
问题5: PPTP方式和L2TP方式的VPN有何异同?
问:PPTP方式和L2TP方式的VPN有何异同?
答:相同之处都是第二层隧道协议,隧道所封装的协议均是PPP.不同之处在与隧道协议(PPTP的隧道协议是是GRE,L2TP的隧道协议是L2TP).
PPTP方式的VPN有以下几个特点,
1.VPN客户端可以使用私有地址通过NAT服务器来连接具有合法地址VPN服务器;
2.VPN连接时只有一层验证--就是PPP协议的用户身份验证
Windows支持 IPSec 之上的 L2TP 协议。L2TP/IPSec 的 Microsoft 版本与 Request for Comments (RFC) 标准兼容,并为虚拟专用网络(VPN)连接提供高级别的安全。目前,只有 Windows 2000/XP 和很少一部分第三方操作系统支持 L2TP/IPSec VPN 客户计算机角色。使用L2TP/IPSec方式的VPN时,首先双方进行ISAKMP协商交换密钥,这是客户端500端口与服务器500端口之间的UDP通讯(IKE协议)来实现的,然后就把所有的VPN通讯(包括建立/断开连接请求,用户验证,数据传输等)裹在ESP(Encapsulating Security Payload,封装安全有效负载协议,ESP的IP编号为50。TCP的IP协议编号为6,UDP的IP协议编号为17)里传输的。用Windows自带的IPSecmon.exe可以看出IPSec加密前通讯仍然是在客户端与服务器之间的UDP 1701端口传输的。
由于Microsoft不鼓励将L2TP直接暴露在网络中,因此自动为L2TP连接创建一个使
用证书方式认证IPsec策略.IPSec 策略要求在VPN 服务器以及 VPN 客户端上都安装计算机证书。可以从 Microsoft 证书服务器或第三方提供商获得证书。
取消L2TP VPN自动创建的IPsec策略方法如下:
运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\Rasman\\Parameters
新建一DWORD值ProhibitIPsec,并将值设置为1
可以在禁用 L2TP自动创建的IPSec 策略后,使用预共享密钥来创建 VPN 链接。
L2TP/IPsec方式的VPN有以下几个特点:
1.早先VPN客户端无法使用私有地址来连接具有合法地址的VPN服务器(2002年末Microsoft 发布了一1个更新软件包Q818043,此更新包含对 IPSec 的改进,以更好地支持位于网络地址转换 (NAT) 设备后面的使用l2TP/IPSec方式的虚拟专用网络 (VPN) 客户端。新的 NAT-T 代码是围绕 IETF RFC 3193 和 IETF NAT-T 规范的 02 号草案设计的。根据观察,使用NAT-T代码的L2TP/IPSec方式的VPN, 经过客户端与服务器使用IKE协议协商密钥后,所有的VPN通讯(包括建立/断开连接请求,用户验证,数据传输等)均封装在客户端4500端口与服务器4500端口的UDP通讯中。经过IPSecmon的进一步观察,使用NAT-T代码后L2TP/IPSec的VPN通讯和普通L2TP/IPSec的VPN通讯实质上还是一样的,VPN服务器保持着1701端口与客户端1701端口的UDP\"连接\"。
2.VPN连接需要两层验证:密钥验证和用户身份验证(其中密钥是IPSec层面的认证)
问题6: msl2tp client和win2k/xp自带l2tp client的区别是什么?
问:msl2tp client和win2k/xp自带l2tp client的区别是什么?
答:区别是基于L2TP的VPN服务器无法同时支持Win9x/me的L2TP客户端(使用msl2tp.exe做的)和Win2k/xp自带的L2TP客户端。
也就是说,如果基于L2TP的vpn服务器如果支持了Win9x/me的L2TP客户端,那么就
无法支持Win2k/xp自带的L2TP客户端;反之亦然.
经过分析,原因如下:
对于Win2k/xp自带的L2TP客户端来说,必须在VPN服务器端和客户端同时设置ip
安全策略(ipsec),策略内容包括预协商密钥和关于双方1701<-->1701端口的udp
通讯(或者包含双方1701<-->1701端口的udp通讯).
对于Win9x/me的L2TP客户端(安装了msl2tp.exe)来说,由于Win9x/me上无法设
置ip安全策略或者说安全策略是不透明的,所以无需设置.但是对于VPN服务器端
来说,需要设置预共享密钥,但ip安全策略的内容千万不能涉及关于双方1701<-->
1701端口的udp通讯(或者包含双方1701<-->1701端口的udp通讯),否则Win9x/me的
L2TP客户端将无法拨入VPN服务器.
问题7: 有时候出现”错误1717:未知的界面”是怎么回事?
问:客户端拨号时,在验证用户名和密码的时候有时候出现”错误1717:未知的界面”,这是怎么回事呢?
答:这种情况PPP身份验证方式为CHAP或者MS-CHAP方式下发生,请检查”ProtectedStorage”是否处于启动状态.如果未启动”ProtectedStorage”则会出现这个错误,可以用net start ProtectedStorage启动之.
问题8: 自己选择出口(1)
问:默认情况下,拨到VPN服务器后,所有的网络数据都是要经过VPN服务器的(本地网络除外),对于一些站点,我们更希望直接访问而不通过VPN,那该怎么办呢?
答:可以通过route add命令来为那些站点设定特定路由.
比如说,本地网络是192.168.0.5/24,网关是192.168.0.1
现在正连接到一个VPN服务器,这时候对于18.187.2.150的访问想通过原有的线路,
那么可以用route add 18.187.2.150 mask 255.255.255.255 192.168.0.1
来实现,这时候访问18.187.2.150将不再通过VPN服务器了.
问题9: 自己选择出口(2)
问:默认情况下,拨到VPN服务器后,所有的网络数据都是要经过VPN服务器的(本地网络除外),然而,有时候我们只希望对一些特定的站点的访问从VPN服务器经过,其他都还是和原来一样,应该怎么做呢?
答:可以通过修改VPN连接的属性来实现,右键\"网上邻居\"属性,打开\"网络和拨号连接\找到拨出VPN名称(默认名字是\"虚拟专用连接\"),右键\"VPN名称\"的属性,选择\"网络--'Internet协议(TCP/IP)'--高级--常规\把\"在远程网络上使用默认网关\"那一项的勾去掉即可.这样所有的网络访问都将不再通过VPN服务器了.当然可以通过route add命令来为一些站点设定特定路由.
比如说,本地网络是192.168.0.5/24,网关是192.168.0.1,拨到一VPN服务器,得到新的IP为192.168.3.3/32,经过先前的设置,所有的网络数据都将不再经过VPN服务器了,但对于18.187.2.150的访问想通过VPN服务器实现,可以用
route add 18.187.2.150 mask 255.255.255.255 192.168.3.3
来实现,这时候访问18.187.2.150将通过VPN服务器.
问题10: VPN的串联以及穿透内网
问:VPN可不可以穿透内网以及串联?
答: 所谓穿透内网,就是说VPN Client可以位于一个使用内部地址的网络内,而VPN服务器位于公网上一个合法的IP地址;
所谓串联,是先拨一个VPN服务器,然后再拨第二个VPN服务器.(本来第二个VPN服务器是你不知能直接访问的,但是通过第一个VPN就可以使用第二个VPN服务器).
对于PPTP方式的VPN来说,是可以穿透内网的,也是可以串联的.
原来L2TP/IPsec模式的VPN是无法穿越内网的,但是经过Microsoft公司的努力(Microsoft Knowledge Base Article - 818043),使用了NAT-T技术,可以让L2TP/IPsec方式的VPN可以穿越内网,当然也可以串联.
问题11: 无法启动”路由与远程访问服务”
问:为什么有的机器无法启动\"路由与远程访问\"服务?
答: 首先你应该检查是否启动了”Internet连接共享(SharedAccess)服务”,如果已经启动,则停止之,然后启动\"路由与远程访问(RemoteAccess)服务”.
其次需要检查”电话(Tapisrv)服务”,”远程访问连接管理器(RasMan)服务”这两个服务是否处于启动状态, 如果其中任何一个没有启动,则无法启动”路由与远程访问(RemoteAccess)服务”(同时带来的问题是使用”新建连接向导时”,只有”拨号到 Internet”选项和”接受传入的连接”选项可用).
问题12: 看不到”传入的连接”
问:为什么成功启动”路由和远程访问(RemoteAccess)服务”后在网络邻居”属性”看不到”传入的连接”呢?.
答: 这是可能是你曾经配置过\"网络路由器\"的原因,由两种方法可以改正之:
方法一: 通过rrasmgmt.msc
1.启动”远程注册表(RemoteRegistry)服务”,停止”路由和远程访问(RemoteAccess)服务”;
2.运行rrasmgmt.msc,如果右键出现的是\"禁止路由和远程访问\那么你先\"禁止路由和远程访问\然后关闭rrasmgmt.msc.否则直接进入第三步;
3.运行rrasmgmt.msc,然后选择\"配置并启用路由和远程访问\然后按下一步,选择\"手动配置服务器\按一下步,然后选择\"完成\"结束安装;
4.这时候你打开网络邻居会看到\"传入的连接\"又出现了;
5.此时你运行rrasmgmt.msc,可以再次右键选择\"禁用路由和远程访问\然后关闭rrasmgmt.msc.因为\"手动配置服务器\"打开了太多的服务.
7.然后你可以启动\"路由和远程访问\"服务,网络邻居属性里那个\"传入的连接\"又出现了.
方法二:运行regedit,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\RemoteAccess\\Parameters
把右窗口的DWORD值\"RouterType\"从2改成7(实际上只要不是2,其他任意整数均可).
问题13: 看到”传入的连接”但是仍然无法连接
问:为什么启动”路由和远程访问(RemoteAccess)服务”后,在网络邻居”属性”也看到”传入的连接”,但是仍然无法连接VPN?
答: 首先通过netstat –an或者用fport查看机器TCP 1723端口是否处于listening状态(基于PPTP协议的VPN),UDP 1701端口是否处于listening(基于L2TP协议的VPN),如果没有打开,可通过如下方法解决:
1.运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet\\Control\\Class\\{4D36E972--E325-11CE-BFC1-08002BE10318}\\0000,0001,0002...
找到右窗口\"DriverDesc\"为\"WAN 微型端口 (PPTP)\"和\"WAN 微型端口 (L2TP)\"的目录;
2.在右窗口各自目录下新建两个DWORD
值”EnableForRAS”,”EnableForRouting”,值均为1;
3.在右窗口各自目录下新建一DWORD值\"WanEndpoints\其大小为你要设定的连接数;
4.重新启动机器.
问题14: 命令行配置VPN服务器
问:能不能通过命令行方式配置VPN服务器?
答:可以通过netsh.exe来实现:
netsh ras set user administrator permit #允许administrator拨入该VPN
netsh ras set user administrator deny #禁止administrator拨入该VPN
netsh ras show user #查看哪些用户可以拨入VPN
netsh ras ip show config #查看VPN分配IP的方式
netsh ras ip delete pool #删除原有的地址池
netsh ras ip add range from = 192.168.3.1 to = 192.168.3.254 #地址池的范围是从192.168.3.1到192.168.3.254
netsh ras ip set addrassign method = pool #使用地址池的方式分配IP
问题15: 修改连接数目
问:一般情况下只有通过rrasmgmt.msc才能对VPN客户端连接数(默认情况下PPTP和L2TP各5个,直接并行端口1个),与连接方式(PPTP或是L2tp)进行修改.如何在不使用rrasmgmt.msc的情况下用其他办法修改端口?
答: 方法如下:
1.运行regedit,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet\\Control\\Class\\{4D36E972--E325-11CE-BFC1-08002BE10318}\\0000,0001,0002...
找到右窗口\"DriverDesc\"为\"WAN 微型端口 (PPTP)\"和\"WAN 微型端口 (L2TP)\"的目录;
2.修改右窗口DWORD值”WanEndpoints”,其大小为你要设定的连接数;
3.重新启动机器.
经过研究,发现对于Win2k Srv或Win2k AdvSrv来说,通过注册表可以修改服务器接受的连接数,对于Win2k Pro来说,最多只能接受一个Client的连接,但是修改可以使之不接受Client的连接.
问题16: 要求安装证书
问:开了VPN服务后,怎么解决日志里的这么一项:
事件类型: 警告
事件来源: RemoteAccess
事件种类: 无
事件 ID: 20192
日期: 2002-8-2
事件: 8:55:12
用户: N/A
计算机: COMPUTER
描述:
找不到证书。使用在IPSec上的L2TP协议的连接要求安装机器证书,这也叫做计算机证书.将不会接受L2TP呼叫.
答:这是因为Windows为L2TP连接的VPN自动创建一个IPsec策略,这个IPsec策略使用本地机器上的证书来进行双方的认证.如果本地机器没有合适的证书,那么就会出现上面的问题.有三种办法可以解决之:
方法一:取消L2TP VPN自动创建的IPsec策略
运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\Rasman\\Parameters
新建一DWORD值”ProhibitIPsec”,并将值设置为1
方法二,取消L2TP方式的VPN
运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet\\Control\\Class\\{4D36E972--E325-11CE-BFC1-08002BE10318}\\0000,0001,0002...
找到右窗口\"DriverDesc\"为\"WAN 微型端口 (L2TP)\"把DWORD值\"WanEndpoints\"改为0
方法三,不允许L2TP方式的VPN
运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet\\Control\\Class\\{4D36E972--E325-11CE-BFC1-08002BE10318}\\0000,0001,0002...
将右窗口DWORD值”EnableForRAS”,”EnableForRouting”改成0或者删除.
问题17: 虚拟连接网卡上的NetBIOS over TCP/IP
问: 如何取消虚拟连接网卡上的NetBIOS over TCP/IP?
答:对于客户端来说, 右键\"网上邻居\"属性,打开\"网络和拨号连接\找到拨出VPN名称(默认名字是\"虚拟专用连接\"),右键\"VPN名称\"的属性,选择”网络”,在下面的组件中将”Microsoft网络的文件和打印机共享”以及”Microsoft网络客户端”前面的勾去掉,只留下”Internet协议(TCP/IP)”.
对于服务器端来说,运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\RemoteAccess\\Parameters\\IP
在右窗口新建一DWORD值” DisableNetbiosOverTcpip”为1.
问题18: 怎么做L2TP/IPSec方式的VPN?
问:怎么做一个认证方式为预共享密钥的L2TP/IPsec方式的VPN?
答:可以参照如下步骤
步骤一:.首先,打开L2TP端口
一般情况下用Win2k Server通过常规方式搭建的VPN服务器对客户端连接情况是PPTP和L2TP各5个,直接并行端口1个.可通过如下方式修改支持的使用L2TP的VPN客户端的个数.
运行regedit,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet\\Control\\Class\\{4D36E972--E325-11CE-BFC1-08002BE10318}\\0000,0001,0002...
找到右窗口\"DriverDesc\"为\"WAN 微型端口 (L2TP)\"的目录.
修改右窗口DWORD值”WanEndpoints”,其大小为你要设定的连接数;
2.取消L2TP VPN自动创建的使用证书方式认证IPsec策略
运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\Rasman\\Parameters
新建一DWORD值”ProhibitIPsec”,并将值设置为1
3.设置IPsec策略保护L2TP通讯,保护内容为本机1701端口到其他任何机器1701端口
的所有UDP通讯.如果安装了Win2000 Resource Kit,使用如下命令:
ipsecpol -w reg -p VPN -r VPN -a preshare:\"vpn\"
-x -n ESP[3DES,SHA]3600S/100000KP ESP[3DES,MD5]3600S/100000KP
ESP[DES,
SHA]3600S/100000KP ESP[DES,MD5]3600S/100000KP
-f 0:1071+*:1071:udp
问题19: 简单日志纪录
问:有无办法简单的纪录VPN连接日志的办法?
答: 有的,一般可以通过设置radius服务器来实现外,还有如下方法:
通过命令行下操作实现PPP等日志文件
netsh ras set tracing * enable
这时候目录C:\\WinNT\racing下将会有一堆log文件.
另外,运行regedit.exe,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\RemoteAccess\\Parameters
在右窗口将DWORD\"值LoggingFlags\"改为\"3\"
然后就可以在eventvwr.msc的\"系统日志\"下看到关于\"remoteaccess\"的信息.
其中DWORD值\"LoggingFlags\"对应的数字含义如下:
0:禁用事件日志
1:只纪录错误
2:记录错误及警告(这是默认值)
3:记录最多信息
ISAKMP协商的的日志记录开关
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\PolicyAgent\\oakley
在右窗口将DWORD\"值EnableLogging设置为\"1\然后重启机器,这时候ISAKMP协商的
日志记录位于C:\\WINNT\\Debug\\oakley.log
IPSec协商的的日志记录开关
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\PolicyAgent
在右窗口将DWORD\"值Debug设置为\"1\然后重启机器,这时候IPSec协商的
日志记录位于C:\\WINNT\\Debug\\Ipsecpa.log
问题20: 高级日志纪录
问:如何使用Radius服务器实现对VPN的记账功能?
答:可参照如下步骤
1.安装并运行IAS服务
运行sysocmgr -i:sysoc.inf,
选中\"网络服务--Internet验证服务\然后安装.
安装完毕运行IAS服务,net start ias
2.安装并运行VPN服务
具体不再详述.
3.运行netsh.exe
E:\\WINNT\\system32>netsh
netsh>ras aaaa
ras aaaa>set accounting radius
要使改动生效,必须重启动远程访问服务。
ras aaaa>add acctserver name = \"本机器名称\" init-score = 5 port = 1813 timeout = 30 messages = disabled
要使改动生效,必须重启动远程访问服务。
4.运行ias.msc(要保证remoteregistry服务正处于运行状态)
\"客户端\"有窗口新建一\"客户端\名称为VPN,客户端地址为\"本机器的IP\都按照默认的设定.
\"远程访问记录\"右窗口记录着日志记录的地方,以及日志记录的内容设置.设置里最好三个选项都打上勾.
\"远程访问策略\"一般是验证用户时候用的,如果用的是windows自带的用户验证,可以不必设置.为了使iaslog.log看着舒服,可以把\"如果启用拨入许可,就允许访问\"改成\"authen\".
5.安装Win2000 ResourceKit或者从ResourceKit中提取出iasparse.exe,用来对
iaslog.log进行分析.
当然还可以做个关机时候运行的脚本,对iaslog.log进行分析
一个简单的关机时候的脚本vpn.cmd,内容为
net stop ias #停止ias
net stop remoteaccess #停止VPN服务
date /t >>c:\\log\\vpnlog\\\"%date%.log\" #显示当前日期到文件
time /t >>c:\\log\\vpnlog\\\"%date%.log\" #显示当前时间到文件
iasparse -f:c:\\log\\iaslog.log >>c:\\log\\vpnlog\\\"%date%.log\"
#将iaslog.log的分析内容输出到文件,这里iaslog.log这里把它放到c:\\log下
echo
The system will be
shutdown now!
>>c:\\log\\vpnlog\\\"%date%.log\"
del c:\\log\\iaslog.log #删除iaslog.log
问题21: VPN的地址转换
问:单网卡VPN服务器能否将给拨入的客户一个虚拟的内部地址然后通过VPN服务器进行地址转换再出去?
答: 是可以的.在Windows2000下只有通过netsh.exe来实现
netsh ras ip set addrassign method = pool
#使用地址池的方式分配IP
netsh ras ip add range from = 192.168.3.1 to = 192.168.3.254
#地址池的范围是从192.168.3.1到192.168.3.254,这里用的是一个虚拟的内部地址池.
netsh routing ip nat install #安装NAT协议
netsh routing ip nat add interface= 本地连接 mode =full
#设置\"本地连接\"这块网卡为对外网卡(进行地址和端口转换),注意此时remoteregistry服务必须处于启动状态
netsh routing ip nat add interface=内部 mode=private
#设置\"内部\"这块虚拟网卡为内部地址,这块网卡是操作系统虚拟的一块不可见网卡
问题22: Cisco路由器上配置远程接入VPN
问:怎样在Cisco路由器上配置远程接入VPN?
答:可参照如下步骤:
1.进入全局配置模式,设置一用于远程接入的VPN用户:
Router(config)#username vpn password vpn
2.允许VPDN
Router(config)#vpdn enable
3.创建VPN地址池
Router(config)#ip local pool vpn-pool 192.168.1.251 192.168.1.253
3.创建虚拟模板接口并配置
Router(config)#interface virtual-template 1
Router(config-if)#ip unnumbered fastEthernet 0/0
Router(config-if)#peer default ip address pool vpn-pool
Router(config-if)#ppp authentication chap
AAA: Warning, authentication list \"default\" is not defined for PPP.
如果需要,还可以在此端口配置NAT
Router(config-if)#ip nat inside
4.创建VPDN-group并配置
Router(config)#vpdn-group vpn
Router(config-vpdn)#accept-dialin
Router(config-vpdn-acc-in)#protocol any
Router(config-vpdn-acc-in)#virtual-template 1
Router(config-vpdn-acc-in)#exit
Router(config-vpdn)#no l2tp tunnel authentication(说明:使用纯L2TP方式的VPN)
然后拨入Cisco路由器,在路由器上观察:
Router#sh user
Line User Host(s) Idle Location
* 66 vty 0 VPN idle 00:00:00 192.168.1.9
Interface User Mode Idle Peer Address
Vi3.1 vpn PPPoVPDN 00:00:10 192.168.1.252
Router#sh vpdn
L2TP Tunnel and Session Information Total tunnels 1 sessions 1
LocID RemID Remote Name State Remote Address Port Sessions VPDN Group
5601 9 manager est 192.168.1.9 1701 1 vpn
LocID RemID TunID Intf Username State Last Chg Uniq ID
15 1 5601 Vi3.1 vpn est 00:01:25 21
%No active L2F tunnels
%No active PPTP tunnels
%No active PPPoE tunnels
Router#sh caller user vpn detail
User: vpn, line Vi3.1, service PPPoVPDN
Connected for 00:01:37, Idle for 00:00:04
Timeouts: Limit Remaining Timer Type
- - -
PPP: LCP Open, CHAP (<-), IPCP
LCP: -> peer, AuthProto, MagicNumber
<- peer, MagicNumber, PCompression, ACCompression
NCP: Open IPCP
IPCP: <- peer
IP: Local 192.168.9.1, remote 192.168.1.252
Counts: 0 packets input, 0 bytes
18 packets output, 672 bytes
Router#
问题23: 能否对虚拟的VPN网卡进行sniff?
问:能否对虚拟的VPN网卡进行sniff?
答: 曾经用了三种软件在服务器和客户端进行了测试:
Sniffer pro4.6, tcpdump, netmon.exe(MS自带的网络监视器)
结果发现:
1.Sniffer pro4.6无法找到虚拟的VPN网卡,因此不能对虚拟的VPN网卡进行监测
2.tcpdump倒是可以对虚拟的VPN网卡监测(tcpdump -i
\\device\\packet_NdisWanIP)可以无论在服务器端还是客户端,一旦监测这块虚拟的VPN网卡,那么VPN将不再能够使用.(尽管显示VPN还处于连接状态,但已经无法工作了)
3.只有netmon.exe(网络监视器)可以正常工作,不影响VPN的使用,同样还可以监测该虚拟的VPN网卡上流经的数据
问题24: VPN虚拟网卡的特性
问:使用VPN这块虚拟的网卡有什么特性?
答:首先看一下官方的说法:
当建立RAS或VPN连接时,为了能与RAS/VPN客户实现通信,RAS服务器从RAS静态IP地址池或DHCP中提取一个IP地址,然后为每个连接至服务器的客户分配一个IP地址.RAS/RRAS必须使这些IP地址绑定到一个适配器上.由于不存在物理适配器,将创建一个虚拟的适配器,称为NDISWAN.
WindowsNT客户端将为每个拔出的连接创建一个NDISWAN适配器,为拔入/拔出连接配置的Windows NT RAS服务器将创建一个NDISWAN适配器用于与RAS/VPN客户的通信,为每个拔出的连接创建一个NDISWAN 适配器.
只有当第一个RAS/VPN客户建立连接后,RAS服务器才为拔入的连接创建一个NDISWAN适配器.IP地址被绑定到NDISWAN适配器上,直到RAS服务停止.
这个NDISWAN适配器仅对RAS/VPN客户的请求作出响应.局域网客户无法PING通这个NDISWAN接口。
NDISWAN在RAS/RRAS中是有连接才创建.对于PPTP,创建的NDISWAN适配器数与所配置的 PPTP 端口数相同。
可以通过在命令行键入 ipconfig/all 来查看 NDISWAN 适配器,也可以在注册表的下列位置查看 NDISWAN 适配器:
HKLM\\SOFTWARE\\Microsoft\\NdisWan
HKLM\\SYSTEM\\CCS\\Services\\NdisWan(x)
HKLM\\SYSTEM\\CCS\\Services\\NetBT\\Adapters\\NdisWan(x)
HKLM\\SYSTEM\\CCS\\Services\\NwlnkIpx\\NetConfig\\NdisWan(x)
我的几个经验是:
1.VPN Client拨入VPN服务器后,VPN client获得的IP地址以及VPN服务器自己保留的IP地址在VPN服务器网段里将不再可用,否则双方将出现地址冲突;
2.VPN服务器在NDISWAN适配器尚未启用之前,其地址池中第一个地址(将被VPN服务器自己使用)可以存在于VPN服务器所在网段,并且在VPN Client拨入VPN服务其后也不影响VPN正常使用(不冲突);
3.VPN Client拨入VPN服务器后,如果VPN client获得的IP地址已经被VPN服务器网段的机器使用,那么双方将不会出现冲突.表面上看VPN是正常的,实际上VPN Client将不再能够通过VPN服务器出去.
问题25: 如何更改PPP连接或VPN连接的默认最大传输单位(MTU)大小
运行regedit,打开
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\NdisWan\\Parameters\\
增加子项Protocols,然后在Protocols下增加子项0,在0子选项右窗口的增加DWORD值ProtocolType(值为十六进制的800),PPPProtocolType(值为16进制的21), ProtocolMTU(根据需要设置,例如这里设置为1454)。
导出后注册表相关内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\NdisWan\\Parameters\\Protocols\\0]
\"ProtocolType\"=dword:00000800
\"PPPProtocolType\"=dword:00000021
\"ProtocolMTU\"=dword:000005ae
修改完后重启生效。
问题26: PPP协议是如何工作的?
问:PPP协议是如何工作的?
答: PPP协议主要是设计用来通过拨号或专线方式建立点对点连接发送数据。PPP协议将IP,IPX和NETBEUI封装在PPP桢内通过点对点的链路发送。PPP协议主要应用于连接拨号用户和NAS。 PPP拨号会话过程可以分个不同的阶段。分别如下:
阶段1:创建PPP链路
PPP使用链路控制协议(LCP)创建,维护或终止一次物理连接。在LCP阶段的初期,将对基本的通讯方式进行选择。应当注意在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。同样,在LCP阶段还将确定链路对等双方是否要对使用数据压缩或加密进行协商。实际对数据压缩/加密算法和其它细节的选择将在第4阶段实现。
阶段2:用户验证
在第2阶段,客户会PC将用户的身份明发给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。大多数的PPP方案只提供了有限的验证方式,包括口令验证协议(PAP),挑战握手验证协议(CHAP)和微软挑战握手验证协议(MSCHAP)。
1.口令验证协议(PAP)
PAP是一种简单的明文验证方式。NAS要求用户提供用户名和口令,PAP以明文方式用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
2.挑战-握手验证协议(CHAP)
CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串
(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-wayhashingalgorithm)用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack).在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remoteclient impersonation)进行攻击。
3.微软挑战-握手验证协议(MS-CHAP)
与CHAP相类似,MS-CHAP也是一种加密验证机制。同CHAP一样,使用MS-CHAP时,NAS会向远程客户发送一个含有会话ID和任意生成的挑战字串的挑战口令。远程客户必须用户名以及经过MD4哈希算法加密的挑战字串,会话ID和用户口令的MD4哈希值。采用这种方式服务器端将只存储经过哈希算法加密的用户口令而不是明文口令,这样就能够提供进一步的安全保障。此外,MS-CHAP同样支持附加的错误编码,包括口令过期编码以及允许用户自己修改口令的加密的客户-服务器(client-server)附加信息。使用MS-CHAP,客户端和NAS双方各自生成一个用于随后数据加密的起始密钥。MS-CHAP使用基于MPPE的数据加密,这一点非常重要,可以解释为什么启用基于MPPE的数据加密时必须进行MS-CHAP验证。
在第2阶段PPP链路配置阶段,NAS收集验证数据然后对照自己的数据库或中央验证数据库服务器(位于NT主域控制器或远程验证用户拨入服务器)验证数据的有效性。
阶段3:PPP回叫控制(callbackcontrol)
微软设计的PPP包括一个可选的回叫控制阶段。该阶段在完成验证之后使用回叫控制协议(CBCP)如果配置使用回叫,那么在验证之后远程客户和NAS之间的连接将会被断开。然后由NAS使用特定的电话号码回叫远程客户。这样可以进一步保证拨号网络的安全性。NAS只支持对位于特定电话号码处的远程客户进行回叫。
阶段4:调用网络层协议
在以上各阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP).例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。在微软的PPP方案中,考虑到数据压缩和数据加密实现过程相同,所以共同使用压缩控制协议协商数据压缩(使用MPPC)和数据加密(使用MPPE)。
一旦完成上述4阶段的协商,PPP就开始在连接对等双方之间转发数据。每个被传送的数据报都被封装在PPP包头内,该包头将会在到达接收方之后被去除。如果在阶段1选择使用数据压缩并且在阶段4完成了协商,数据将会在被传送之间进行压缩。类似的,如果如果已经选择使用数据加密并完成了协商,数据(被压缩数据)将会在传送之前进行加密。
因篇幅问题不能全部显示,请点此查看更多更全内容