157本文介绍在 Windows 2003 Server 中,使用 VMware 和 ISA Server 2004 搭建 VPN 实验环境的方法及相关的注意事项。
首先,在虚拟机中安装两个操作系统,如 Windows 2000 Pro 和 Windows XP Pro,在以下实验中,Windows 2000 作为VPN客户端,Windows XP 作为企业内网。
(一)配置虚拟机网络
Windows XP 作为企业内网,它是通过 NAT 方式和外网联系的。虚拟机安装完成后,自动生成三种网络连接方式:Bridged、NAT 和 host only。然后,如果您使用虚拟机自带的 NAT 服务,将可能导致实验的失败。我选择 host only 方式。在正常情况下,host only 的主机是不能上网的。不用担心,ISA Server 会自使用自己的 NAT 服务解决。事实上,ISA Server 会接替 Windows Server 的 RRAS 服务。
为了实验的方便,我们对 Windows XP 的地址作如下配置:
IP为 192.168.157.128,网关为192.168.157.1,注意,此网关就是 Windows 2003 Server 中,VMware 自成的名为 VMware Network Adapter VMnet1 的网卡地址。在此实验中,作者将该地址手工设为 192.168.157.1/24。
对 Windows 2000 的网络配置比较简单,选择 Bridged 后,它看起来就像 2003 子网中的另一台机器。我的设置为:Windows 2003 的IP地址为 202.192.34.211,Windows 2000 的 IP 地址为 202.192.34.212
(二)配置 VPN 服务
打开 ISA Server 2004 的管理控制台,点击“虚拟专用网络”,点击“启用VPN客户端访问”。
首先保证网络和网络规则配置正确:
选择防火墙模板的3(向外围网络)
内网: VMware Network Adapter VMnet1 ,其它的默认。
网络规则:VPN到内部网络选择路由,其它的默认。
其次对 VPN 服务进行调整:
(1) 点击“验证启用了 VPN 客户端访问”,在组中,添加可以远程访问的组。注意,该组的属性应该通过Windows的“本地用户和组”修改,允许用户“拔入”。
(2) 点击定义地址分配,将分配的地址改为 192.168.158.201-192.168.158.210
(3) 启用PPTP
(三)添加策略
添加所有网络到所有网络的ICMP,PPTP、PPTP服务器访问,以及您想要测试的服务,比如WWW、FTP等。
应用这些策略后,需要耐心等待几分钟,千万不要一看 ping 不通就以为配置得不正确。正因如此,配置VPN是一项比较费时的工作。
一些结果:
Windows 2003 上 IPCONFIG
Windows IP Configuration
Ethernet adapter VMware Network Adapter VMnet8:
Connection-specific DNS Suffix . :
Autoconfiguration IP Address. . . : 169.254.218.201
Subnet Mask . . . . . . . . . . . : 255.255.0.0
IP Address. . . . . . . . . . . . : fe80::250:56ff:fec0:8%4
Default Gateway . . . . . . . . . :
Ethernet adapter VMware Network Adapter VMnet1:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.157.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IP Address. . . . . . . . . . . . : fe80::250:56ff:fec0:1%5
Default Gateway . . . . . . . . . :
PPP adapter RAS Server (Dial In) Interface:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.158.201
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . :
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 202.192.34.211
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IP Address. . . . . . . . . . . . : 202.192.34.212
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 202.192.34.254
Win 2000 IPCONFIG
Windows 2000 IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 202.192.34.210
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 202.192.34.254
PPP adapter 虚拟专用连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.158.202
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 192.168.158.202
VPN 配置文件 <?xml version="1.0" encoding="UTF-8" ?>
- <fpc4:Root xmlns:fpc4="http://schemas.microsoft.com/isa/config-4" xmlns:dt="urn:schemas-microsoft-com:datatypes" StorageName="FPC" StorageType="0">
<fpc4:Build dt:dt="string">4.0.2163.213</fpc4:Build>
<fpc4:Comment dt:dt="string" />
<fpc4:Edition dt:dt="int">80</fpc4:Edition>
<fpc4:ExportItemClassCLSID dt:dt="string">{78BC57B4-CD40-4267-8FFC-C62617E48B1F}</fpc4:ExportItemClassCLSID>
<fpc4:ExportItemStorageName dt:dt="string">VpnConfig</fpc4:ExportItemStorageName>
<fpc4:IsaXmlVersion dt:dt="string">1.10</fpc4:IsaXmlVersion>
<fpc4:OptionalData dt:dt="int">4</fpc4:OptionalData>
<fpc4:Upgrade dt:dt="boolean">0</fpc4:Upgrade>
- <fpc4:Arrays StorageName="Arrays" StorageType="0">
- <fpc4:Array StorageName="{076F5513-18BD-4413-83B7-378678E45066}" StorageType="0">
<fpc4:Components dt:dt="int">-1</fpc4:Components>
<fpc4:Name dt:dt="string" />
- <fpc4:NetConfig StorageName="NetConfig" StorageType="0">
- <fpc4:VpnConfig StorageName="VpnConfig" StorageType="1">
<fpc4:VpnEnable dt:dt="boolean">1</fpc4:VpnEnable>
<fpc4:VpnEnableRADIUSAccounting dt:dt="boolean">0</fpc4:VpnEnableRADIUSAccounting>
<fpc4:VpnEnableRADIUSAuthentication dt:dt="boolean">0</fpc4:VpnEnableRADIUSAuthentication>
<fpc4:VpnEnableWindowsAccounting dt:dt="boolean">0</fpc4:VpnEnableWindowsAccounting>
<fpc4:VpnMaximumClients dt:dt="int">5</fpc4:VpnMaximumClients>
<fpc4:VpnUseDHCPForAddressAssignment dt:dt="boolean">0</fpc4:VpnUseDHCPForAddressAssignment>
- <fpc4:IpRangeSet StorageName="VpnStaticAddressPool" StorageType="1">
- <fpc4:IpRangeEntry StorageName="{EF0342A5-5C1D-4C18-8676-4FE4E7A8D4A2}" StorageType="1">
<fpc4:IPFrom dt:dt="string">192.168.158.201</fpc4:IPFrom>
<fpc4:IPTo dt:dt="string">192.168.158.210</fpc4:IPTo>
</fpc4:IpRangeEntry>
</fpc4:IpRangeSet>
- <fpc4:VpnPPPSettings StorageName="VpnPPPSettings" StorageType="1">
<fpc4:VpnPPPEnableMSCHAPv2 dt:dt="boolean">1</fpc4:VpnPPPEnableMSCHAPv2>
</fpc4:VpnPPPSettings>
- <fpc4:Refs StorageName="SourceNetworkSets" StorageType="1">
- <fpc4:Ref StorageName="{2DA36D11-831F-4D29-8892-81CBADE8357B}" StorageType="1">
<fpc4:Name dt:dt="string">{1651a6f8-7eac-41f3-9479-79f946ba9225}</fpc4:Name>
<fpc4:RefClass dt:dt="string">msFPCNetworkSet</fpc4:RefClass>
</fpc4:Ref>
- <fpc4:Ref StorageName="{3E29539C-C7D0-4CC7-891A-A1056705CDEF}" StorageType="1">
<fpc4:Name dt:dt="string">{18d0438b-5144-4362-b79e-742712513729}</fpc4:Name>
<fpc4:RefClass dt:dt="string">msFPCNetworkSet</fpc4:RefClass>
</fpc4:Ref>
</fpc4:Refs>
- <fpc4:Refs StorageName="VpnNetworksToListenOn" StorageType="1">
- <fpc4:Ref StorageName="{BC49E405-1A0F-4E7D-9FC1-9A512C043AF7}" StorageType="1">
<fpc4:Name dt:dt="string">{F129EACF-778B-44FE-B339-5B752D7220A3}</fpc4:Name>
<fpc4:RefClass dt:dt="string">msFPCNetwork</fpc4:RefClass>
</fpc4:Ref>
- <fpc4:Ref StorageName="{78AF65F3-F2C9-4053-8FB5-876039BB5065}" StorageType="1">
<fpc4:Name dt:dt="string">{EE4FD759-3B5B-4E27-9A7B-CEFE7817D3D0}</fpc4:Name>
<fpc4:RefClass dt:dt="string">msFPCNetwork</fpc4:RefClass>
</fpc4:Ref>
</fpc4:Refs>
- <fpc4:Ref StorageName="NetworkToObtainDHCP" StorageType="1">
<fpc4:Name dt:dt="string">{4E32B556-0FAF-4A27-9111-085F679EDC9B}</fpc4:Name>
<fpc4:RefClass dt:dt="string">msFPCNetwork</fpc4:RefClass>
</fpc4:Ref>
<fpc4:VpnQuarantineSettings StorageName="VpnQuarantineSettings" StorageType="1" />
- <fpc4:Accounts StorageName="Access" StorageType="1">
- <fpc4:Account StorageName="FEELWINTER-VPN" StorageType="1">
<fpc4:AccountSid dt:dt="string">S-1-5-21-1107417562-2328566607-1987491464-1026</fpc4:AccountSid>
<fpc4:AccountType dt:dt="int">3</fpc4:AccountType>
</fpc4:Account>
</fpc4:Accounts>
<fpc4:UserMapping StorageName="UserMapping" StorageType="1" />
</fpc4:VpnConfig>
- <fpc4:NetworkSets StorageName="NetworkSets" StorageType="0">
- <fpc4:NetworkSet StorageName="{1651a6f8-7eac-41f3-9479-79f946ba9225}" StorageType="2">
<fpc4:Description dt:dt="string">此预定义的网络集包括除内置外部网络的所有网络。预定义的网络集不能修改。</fpc4:Description>
<fpc4:Name dt:dt="string">所有受保护的网络</fpc4:Name>
<fpc4:NetworkSetType dt:dt="int">1</fpc4:NetworkSetType>
<fpc4:Predefined dt:dt="boolean">1</fpc4:Predefined>
</fpc4:NetworkSet>
- <fpc4:NetworkSet StorageName="{18d0438b-5144-4362-b79e-742712513729}" StorageType="2">
<fpc4:Description dt:dt="string">此预定义的网络集包括所有网络。预定义的网络集不能修改。</fpc4:Description>
<fpc4:Name dt:dt="string">所有网络(和本地主机)</fpc4:Name>
<fpc4:NetworkSetType dt:dt="int">1</fpc4:NetworkSetType>
<fpc4:Predefined dt:dt="boolean">1</fpc4:Predefined>
</fpc4:NetworkSet>
</fpc4:NetworkSets>
- <fpc4:Networks StorageName="Networks" StorageType="0">
- <fpc4:Network StorageName="{F129EACF-778B-44FE-B339-5B752D7220A3}" StorageType="2">
<fpc4:Description dt:dt="string">代表 Internet 的内置网络对象。</fpc4:Description>
<fpc4:Name dt:dt="string">外部</fpc4:Name>
<fpc4:NetworkType dt:dt="int">3</fpc4:NetworkType>
</fpc4:Network>
- <fpc4:Network StorageName="{EE4FD759-3B5B-4E27-9A7B-CEFE7817D3D0}" StorageType="2">
<fpc4:Description dt:dt="string">代表外围网络的网络对象(也称为 DMZ、第三区域和被筛选的子网)。</fpc4:Description>
<fpc4:Name dt:dt="string">外围</fpc4:Name>
<fpc4:NetworkType dt:dt="int">0</fpc4:NetworkType>
<fpc4:IpRangeSet StorageName="IpRangeSet" StorageType="2" />
</fpc4:Network>
- <fpc4:Network StorageName="{4E32B556-0FAF-4A27-9111-085F679EDC9B}" StorageType="2">
<fpc4:Description dt:dt="string">代表内部网络的网络</fpc4:Description>
<fpc4:EnableAutoDiscovery dt:dt="boolean">1</fpc4:EnableAutoDiscovery>
<fpc4:EnableFirewallClients dt:dt="boolean">1</fpc4:EnableFirewallClients>
<fpc4:EnableWebProxyClients dt:dt="boolean">1</fpc4:EnableWebProxyClients>
<fpc4:Name dt:dt="string">内部</fpc4:Name>
<fpc4:NetworkType dt:dt="int">4</fpc4:NetworkType>
- <fpc4:IpRangeSet StorageName="IpRangeSet" StorageType="2">
- <fpc4:IpRangeEntry StorageName="{E74CA8A7-EF40-497D-A785-2F864D478C3D}" StorageType="2">
<fpc4:IPFrom dt:dt="string">192.168.157.1</fpc4:IPFrom>
<fpc4:IPTo dt:dt="string">192.168.157.200</fpc4:IPTo>
</fpc4:IpRangeEntry>
</fpc4:IpRangeSet>
</fpc4:Network>
</fpc4:Networks>
</fpc4:NetConfig>
</fpc4:Array>
</fpc4:Arrays>
</fpc4:Root>