L2TP/IPSEC VPN服务器配置步骤(Windows Server 2003)
20xx年10月06日 星期一 9:42
如果你已经熟悉了Windows 2000,现在来用windows server 2003,相信你会有不少惊喜发现,在外观改变不大的情况下,功能确实处处在增强,今天我们就来利用windows server 2003的“路由与远程访问”组件搭建一个L2TP/IPSEC VPN服务器,让你从外部以更安全的L2TP方式访问内网,windows 2003的VPN支持NAT-T,这使得外部内网中的用户也能够使用L2TP的方式访问VPN服务器及内网,在以前,由于NAT与IPSEC的不兼容,使得我们只能通过PPTP的方式从一个内网中访问远方的VPN服务器及内网,比如从网吧访问自己的网络,有了windows server 2003,你也可以从任何地方以更安全的L2TP方式进行VPN访问了。 本文的大致网络环境如图1所示,以典型的ADSL共享上网为因特网接入方式,这里ADSL猫以一条网线连接到双网卡的Windows Server 2003上,然后Windows Server 2003再以内网卡连接到内部交换机上,两块网卡都配置了不同网段的IP,但网关和DNS都为空,内网中的客户机通过Windows Server 2003上的ADSL共享上网,这里将在这台Windows Server 2003上创建L2TP VPN服务器。为了完成这个工作,我们将做以下几部分工作:
1, 启用“路由与远程访问”
2, 创建ADSL连接
3, 用NAT实现共享上网
4, 配置VPN
5, 安装独立根CA
6, 为VPN服务器安装服务器证书
7, L2TP客户端证书的安装
8, L2TP客户端相关问题
下面将依次讲述。 [ 相关贴图 ]
一、 启用“路由与远程访问”
1,在管理工具中运行“路由与远程访问”,默认情况下“路由与远程访问”是禁用的,所以右击服务器图标,选择“配置并启用路由与远程访问”;
2,进入“配置”窗口,选择“自定义配置”项;
3,在“自定义配置”窗口,勾选“VPN访问”、“NAT和基本防火墙”和“LAN路由”项,其他的可以以后根据需要再配置。
二、 创建ADSL用的PPPoE连接
Windows Server 2003的“路由与远程访问”组件支持直接创建PPPoE的请求拨号接口,方法如下:
1,展开服务器图标,右击“网络接口”,选择“新建请求拨号接口”,点击下一步; 2,在“接口名称”窗口给这个接口取个有意义的名字,比如PPPoE;
3,在“连接类型”中选择“使用以太网上的PPP(PPPOE)连接”项;
4,在“服务名称”中取个有意义的名称,也可以不填,直接点下一步;
5,在“协议及安全措施”窗口中勾选上“在此接口上路由选择IP数据包”;
6,在“远程网络的静态路由”窗口中添加一条默认路由,也即是添加一条到目的0.0.0.0的默认路由,点击“添加”按钮,然后弹出一个窗口,这里只添加一条默认路由,所以直接确定此窗口即可(如图2)。 [
相关贴图 ]
7,在“拨出凭据”窗口中,填入你ADSL虚拟拨号的用户名和密码,域一栏保持为
空。
上面的过程就完成了PPPOE连接的创建,但要想拨号成功,还需要修改一个地方,右击刚创建的PPPoE接口,选择“属性”,在弹出的窗口中选择“安全”标签
(如图3),在其中选择“典型”项,“验证我的身份为”栏选择“允许没有安全措施的密码”项。为了保持这个接口的永久在线,切换到“选项”标签,在“连接类型”中选择“持续型连接”。完成了上面的操作后就可以右击PPPOE连接,然后选择“连接”项来建立ADSL连接了。 [
相关贴图 ]
要说明的一点是之所以在这里创建PPPoE连接而不是直接通过“网络连接”中的“创建一个新的连接”来创建ADSL连接,是因为“网络连接”窗口中创建的连接不能为NAT识别,而在NAT中又需要选择此PPPOE连接为外部连接以进行地址转换,所以就只有在这里创建了。
三,用NAT安全共享此ADSL连接
NAT就是Network Address Translation,也就是把不能直接与公网IP通信的私有IP翻译成公网IP(还有端口),以便能完成与公网的通信,关于它的介绍已很多了,这里就不细述,只强调一下设置NAT主要是设置好内部接口和外部接口,因为地址翻译就是在它们之间进行的。下面是基本操作方法:
1, 定位到“IP路由选择”下的“NAT/基本防火墙”,右击之,选“新增接口”,这里首先选择内部接口,也就是内网卡所代表的那个本地连接,在弹出的窗口中选择“专用接口连接到专用网络”项。
2, 再次添加接口,这次选择外部接口,即上面创建的PPPoE接口(注意不要选连ADSL那块网卡所在的本地连接),在弹出窗口中选择“公用接口连接到Internet”,并勾选上“在些接口上启用NAT”和“在此接口上启用基本防火墙”两项(图4)。这里的基本防火墙是一种动态包过滤防火墙,相当于一个小型的状态检测防火墙,当外部的通信到达外部接口时,基本防火墙会检测NAT表中是否有相应的会话,如果没有就将拒绝通信。之所以这里要启用基本防火墙,是因为启用了“路由与远程访问”之后就不能启用操作系统内置的ICF(Internet连接防火墙)了。另外也可以利用图4中的静态数据包筛选器静态地进行包过滤。启用了基本防火墙之后最好也不要再安装其他防火墙了,如果要安装,请先在这里取消基本防火墙(即取消图4的“在此接口上启用基本防火墙”项)。 [ 相关贴图 ]
通过上面的配置,内网客户端只要把网关和DNS都指向这台windows server 2003的内网卡地址就可以共享且安全地上网了。注意不要再去启用ICS(Internet连接共享)。
四、 配置VPN
(一) 配置端口
在第一部分启用“VPN访问”选项之后,在“端口”中就已经有了PPTP和L2TP端口,默认情况下各自分配了128个,可以根据实际情况自行调整数量,调整方法是右击“端口”项进入“属性”窗口,双击其中的L2TP端口进行调整。现在你还可以保留一定量的PPTP端口,因为后面申请证书时可能要用,如果不需要PPTP端口,把它的数量设置为0。
(二)配置VPN客户端要使用的IP范围
右击服务器图标进入属性窗口,选择“IP”标签,在“IP地址指派”栏选择“静态地址池”,添加一段静态IP。之所以不用DHCP分配IP,是因为静态IP范围更容易识别VPN客户端。
(三)启用用户拨入权限或创建远程访问策略
要启用用户拨入权限,如果是域,请在“AD用户和计算机”管理工具中右击相应用户,在属性窗口中选择“拨入”标签,在“远程访问权限”中选择“允许访问”或“通过远程访问策略控制访问”(如图5),如果不用域帐户验证,就在VPN服务器的“计算机管理”工具下的“本地用户和组”中启用用户的拨入权限。如果上面选择的是“通过远程访问策略控制访问”(此选项只有域是windows 2003本地模式时才会启用),可以再创建一个组,以包含所有有远程拨入权限的用户,然后进入“路由与远程访问”窗口,右击“远程访问策略”,新建一个远程访问策略,在“访问方法”中选择“VPN”项,“用户或组访问”中选择刚创建的组,在“身份验证方法”中默认选择了MS-CHAPv2,也可以把MS-CHAP选上,在“策略加密级别”中默认全部都选上了的,这是因为以前的操作系统版本可能不支持高位加密,这里根据客户端情况选择。
通过上面的配置后用户即可以PPTP的方式访问了,但要以L2TP的方式访问,还需要进行下面的工作。
五、在内网中安装独立根CA
为什么要安装证书服务(CA)呢?这是因为L2TP/IPSEC通信的双方需要先验证对方的计算机身份,通常有三种验证方法,一是用kerberos协议进行计算机身份验证,但kerberos不适合这种网络访问环境,另一种验证方法是通过预共享密钥,但这种方法容易导致预共享密钥的泄露,这就降低了安全性,还有一种方法就是通过证书来验证计算机身份,当通信开始时,双方都要向对方出示证书以证明自己的合法身份。比较三种方法,我们这里就选择用证书来验证计算机身份,所以这就需要在内网中安装可以发布计算机证书的CA服务。那为什么要安装独立根CA 而不是企业根CA呢?这是因为独立根CA不需要域的支持,这正适合那些可能不是域成员的外部VPN客户端,另外你会发现通过WEB方式申请计算机用的客户端证书或服务器端证书时使用独立CA更方便。当然如果你的网络环境是域,也建议你同时安装企业CA,这对于域中证书的发布和管理更方便更有效。证书服务可以安装在内网中的某一台Windows 2000 Server或Windows Server 2003上,安装时请选择“独立根CA”项就行了。
六、为Windows Server 2003 VPN服务器申请并安装服务器证书
当L2TP客户端访问VPN服务器时,客户端要提供它的客户端证书,而VPN
服务
器则提供它的服务器证书,所以需要为VPN服务器申请一张服务器证书,申请通过WEB方式进行,假如那台CA服务器IP是A,那么在VPN服务器上就可打入如下申请地址http://a/certsrv/default.asp,申请步骤如下:
1, 在欢迎页面中选择“申请证书”项;
2, 在“选择申请类型”页面选择“高级申请”项;
3, 在“高级证书申请”页面选择“使用表格向这个CA提交一个证书申请”;
4, 在这个表格页面中(如图6)填写上服务器的相关信息,在“意图”栏选择“服务器身份验证证书”,勾选上“使用本地机器保存”,其他项可以保持默认设置。
[ 相关贴图 ]
上面只是完成了证书申请过程,还需要管理员审核此证书请求并手动颁发证书,通过这种离线审批的方式,也防止了非法人员获得证书。由于你自己就是管理员,用下面的过程为VPN服务器安装它刚申请的服务器证书。
1, 在CA服务器的管理工具中运行“证书颁发机构”,然后在“待定的证书”下右击刚申请的证书,选择“所有任务”*“颁发”项即可(如图7)。 [ 相关贴图
]
2, 到VPN服务器安装证书。仍然通过http://a/certsrv/default.asp进行,此时在欢迎页面中选择“检查挂起的证书”项,然后根据向导安装即可。
证书安装完成了,但过程并没有完,因为我们还需要安装CA根证书以及证书链中的所有CA证书,这样才能验证CA所颁发证书的合法性,比如将来验证客户端证书的合法性时就要同时验证上层CA及根CA的证书,因为只有上层合法才能保证最底层的计算机证书合法。此时仍然通过http://a/certsrv/default.asp页面进行,在欢迎页面中选择第一项“检索 CA 证书或证书吊销列表”项,然后在下一个页面中(如图8)点击“下载CA证书”和“下载CA证书路径”两个链接,并把下载的证书
保存到桌面上。 [ 相关贴图
]
上面两项下载完成后,现在需要把它们导入相应的证书存储区,方法如下: 1, 在运行中输入mmc,添加“证书”管理插件,并选择“计算机帐户”和“本地计算机”项。
2, 双击展开“个人”*“证书”项,现在你应该可以在右窗格中看到刚才安装的服务器证书。
3, 展开“受信任的根证书颁发机构”,右击“证书”项,选择“所有任务”*“导入”,导入你保存到桌面上的CA根证书(默认情况下这是一个*.cer的文件),导入完成后你应该检查CA根证书是否已在此证书区域存在。
4, 然后再右击“中级证书颁发机构”下的“证书”项,导入保存在桌面上的CA证书路径,导入完成后同样要检查证书是否已在此区域存在。
七、L2TP客户端证书的安装
同VPN服务器一样,L2TP客户端也需要安装同一个CA颁发的计算机证书,申请方法一样,只是此时在图6中选择“客户端身份验证证书”项,注意也要选中“使用本地机器保存”。如果客户机在外网,申请证书时可以先用PPTP方式登录,然后再通过http://a/certsrv/default.asp申请证书,与VPN服务器一样,也需要手动颁发此证书并安装,同样也需要安装CA根证书和证书路径中的证书,这样才能验证服务器证书的合法性,具体方法与前面一样。可能这里让你头痛的是在什么时机
为客户机配置证书,也许你会担心用户不会安装证书,所以你应该准备一份安装说明,不要低估用户的动手能力,如果他真的按照安装说明也不会操作,那么你也别指望他能真正保证数据的安全了,即使你配置了最安全的方法。
八、L2TP客户端的相关问题
1,windows 2000以下的操作系统需要安装专门的L2TP客户端,可以到微软网站下载,在微软首页搜索L2TP即可。
2,windows 2000/xp本身已经支持L2TP了,但微软也提供了一个更新以支持
NAT-T,你需要安装此更新,方法是运行开始菜单中的windows update,然后搜索818043号更新进行安装。
3, 在客户端使用“网络连接”中的“新建连接向导”创建到VPN服务器的连接,在连接“属性”窗口的“网络”标签中选择
第二篇:IPSEC VPN配置与NAT兼容配置
IPSEC VPN
1、IPSec在3个方面保证了网络数据包的安全:机密性、完整性、认证性。
2、在传输模式中,只有IP包的传输层部分被修改(认证或者加密);隧道模式中,整个数据包包括IP头都被加密或认证。
3、AH还会认证位于AH头之前的IP 头。当NAT 设备修改了IP 头之后,IPSec 就会认为这是对数据包完整性的破坏,从而丢弃数据包。因此AH 是绝对不可能和NAT 在一起工作的。
4、IPSec AH和NAT不兼容、NAT与校验和不兼容、IPSec SPI选择和NAT不兼容、IKE地址标识符和NAT不兼容、固定IKE目的端口和NAPT之间不兼容、重叠(Overlap)SPD条目和NAT间不兼容、嵌套IP地址和NAT不兼容以及NA(P)T隐含的方向性问题等。
5、与NAT共存的方式有:NAT-T(IOS12.2以上版本的设备)和UDP封装ESP数据包。
一/封装与NAT
AH封装对IP包的完整性保护包括了最外层的IP头中的IP地址域,NAT需要改变IP地址,所以导致AH封装无效。
ESP封装不对最外层的IP头进行加密,完整性及算不包括IP头中的域,因此不影响ESP封装。
二/校验和与NAT
传输模式,如果IP包中封装了上一层协议(传输层)是TCP或者UDP,他和IP头中的IP地址有关。
NAT更改了IP头中的源地址和目的地址,校验和会被重新计算并修改,所以导致被对方
IPSEC丢弃。
若不修改该字段的值,在接收端,虽然IPSEC不会丢弃这个包,但进行校验和校验时会出错,这个报文还是会被传输层丢弃。
对于隧道模式,则不存在这个问题。
三/端口映射
NAPT需要更改传输层的端口号。如果一个IP包受到IPSEC的保护,传输层的端口号一定会受到完整性保护,NAPT对端口号进行修改后,该IP包就会被接收方的IPSEC丢弃。
四/IKE协商时固定的目标端口和NAPT
NAPT的工作原理是通过不同的端口号来区分不同的连接。IKE协商时,进行的UDP通信的端口号一般是固定的(通常是500),这时就会出现问题。
五/隧道模式下的ESP封装
TCP/UDP报头是不可见的,因此不能被用于进行NAT地址转换,而此时静态NAT和ESP IPSEC可以一起工作,因为只有对IP地址要进行转换,对高层协议没有影响。
IKE协商
1.探测是否支持IPSEC-NAT穿越
2.探测在通信路径中是否存在NAT
3.协商是否使用NAT穿越(在SA载荷中协商)
4.IPSEC SA协商成功后,就利用协商好的安全参数,采用所选择的UDP封装模式,发送ESP保护的数据包,成功穿越NAT设备,进行通信。
黄色标记IPSEC VPN配置,使两端私网可以互访。 灰色标记NAT配置,使两端私网可以访问外网。
R24#
hostname R24
interface Ethernet0/0
ip address 192.168.10.254 255.255.255.0 配置内网口IP地址 no shut
interface Serial0/0
ip address 192.168.20.253 255.255.255.0 配置外网口IP地址 clock rate 64000
no shut
exit
ip route 0.0.0.0 0.0.0.0 192.168.20.254 缺省路由指向ISP
crypto isakmp policy 10 创建IKE加密策略号10 authentication pre-share 打开预共享密钥 encryption 3des 封装协议为3des hash md5 加密协议为md5
lifetime 3600 IKE协商生存时间3600秒 exit
crypto isakmp key tete address 192.168.30.254 与对端VPN间预定义的密码 crypto ipsec transform-set R24 esp-md5-hmac esp-3des 定义IKE加密策略转换方式 crypto map ourte local-address serial0/0 本路由外网口为VPN发起方,与对方路由器建立IPSEC
crypto map ourte 10 ipsec-isakmp 创建密码图ourte与策略 set peer 192.168.30.254 设置对端外网端口地址
set transform-set R24 调用IKE加密策略转换方式 match address 101 对符合ACL101内的数据进行加密 exit
interface s0/0
crypto map ourte 将加密图作用到外网端口
access-list 101 permit ip host 192.168.10.1 host 192.168.40.1 配置ACL101,应根据实际情况
access-list 110 deny ip host 192.168.10.1 host 192.168.40.1 配置ACL110,应根据实际情况 access-list 110 permit ip any any
route-map NAT 1000 创建NAT路由策略
match ip address 110 匹配ACL110内地址允许转换 ip nat inside source route-map NAT interface Serial0/0 overload 创建NAT转换策略 interface e0/0
ip nat inside E0/0设为内网口
interface s0/0
ip nat outside S0/0设为外网口
exit
R24#show crypto isskmp sa 查看本路由SA协商信息 dst src state conn-id slot
192.168.20.253 192.168.30.254 QM_IDLE 2 0
R24#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 192.168.20.254 to network 0.0.0.0
C 192.168.10.0/24 is directly connected, Ethernet0/0 C 192.168.20.0/24 is directly connected, Serial0/0
S* 0.0.0.0/0 [1/0] via 192.168.20.254 缺省路由指向ISP
命令释义同上,不再赘述!
R25#
hostname R25
interface Ethernet0/0
ip address 192.168.40.254 255.255.255.0
no shut
interface Serial0/1
ip address 192.168.30.254 255.255.255.0
no shut
exit
ip route 0.0.0.0 0.0.0.0 192.168.30.253
crypto isakmp policy 10
authentication pre-share
encryption 3des
hash md5
lifetime 3600 exit
crypto isakmp key tete address 192.168.20.253
crypto ipsec transform-set R25 esp-md5-hmac esp-3des
crypto map ourte 10 ipsec-isakmp
set peer 192.168.20.253
set transform-set R25
match address 101
exit
interface s0/1
crypto map ourte
access-list 101 permit ip host 192.168.40.1 host 192.168.10.1
access-list 110 deny ip host 192.168.40.1 host 192.168.10.1
access-list 110 permit ip any any
route-map NAT 1000
match ip address 110
ip nat inside source route-map NAT interface Serial0/1 overload
interface e0/0
ip nat inside
interface s0/1
ip nat outside
exit
R25#show crypto isakmp sa
dst src state conn-id slot 192.168.30.254 192.168.20.253 QM_IDLE 2 0 R25#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route
Gateway of last resort is 192.168.30.253 to network 0.0.0.0
C 192.168.30.0/24 is directly connected, Serial0/0
C 192.168.40.0/24 is directly connected, Ethernet0/0
S* 0.0.0.0/0 [1/0] via 192.168.30.253
R26#
hostname R26
interface s0/0
ip address 192.168.30.253 255.255.255.0
clock rate 64000
no shutdown
interface s0/1
ip address 192.168.20.254 255.255.255.0
no shutdown
C:\>ping 192.168.20.254 ping公网IP可以通信。
Pinging 192.168.20.254 with 32 bytes of data:
Request timed out.
Reply from 192.168.20.254: bytes=32 time=38ms TTL=253 Reply from 192.168.20.254: bytes=32 time=38ms TTL=253 Reply from 192.168.20.254: bytes=32 time=38ms TTL=253
Ping statistics for 192.168.20.254:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds:
Minimum = 38ms, Maximum = 41ms, Average = 38ms
C:\>ping 192.168.30.253 ping公网IP可以通信。
Pinging 192.168.30.253 with 32 bytes of data:
Reply from 192.168.30.253: bytes=32 time=41ms TTL=253 Reply from 192.168.30.253: bytes=32 time=38ms TTL=253 Reply from 192.168.30.253: bytes=32 time=38ms TTL=253 Reply from 192.168.30.253: bytes=32 time=38ms TTL=253
Ping statistics for 192.168.30.253:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 38ms, Maximum = 41ms, Average = 38ms
C:\>ping 192.168.40.1 ping通VPN另一端的私网IP。
Pinging 192.168.40.1 with 32 bytes of data:
Request timed out.
Reply from 192.168.40.1: bytes=32 time=69ms TTL=127 Reply from 192.168.40.1: bytes=32 time=69ms TTL=127 Reply from 192.168.40.1: bytes=32 time=69ms TTL=127
Ping statistics for 192.168.40.1:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 69ms, Maximum = 69ms, Average = 69ms