随着网络的飞速发展,仅仅保证网络通信已经不能满足企业需求,高效,安全的需求也随之而来。随着这些需求越来越高,从而产生了×××(虚拟专用网络)技术。

根据需求×××技术分为两类

1. 站点到站点的×××

站点到站点的×××用来实现两个私有网络的通信,逻辑上将两个私有网络构成一个局域网,以私有地址互相访问。这种模式通常应用于企业的总部和分部。

2. 远程访问×××

远程访问×××用于针对一些长期出差的人员,也需要访问企业内部资源,同时需要保证安全,这时候使用远程访问×××技术让员工通过虚拟专用网络访问内部网络资源。

可想而知,×××技术实现了在Internet上搭建虚拟专用网络,通过加密的方式,实现逻辑上隔离,从而实现安全的传输。

本章讨论的IPSec ×××,属于站点到站点的×××。建立这种×××连接,需要3个步骤。

1  流量触发

×××网关之间传输流量,会触发×××建立连接,当没有流量的时候是不会闲置的。

2  建立管理链接

这是一个协商的过程,两台×××网关直接协商使用何种加密算法,如何实现身份验证等等。

3  建立数据连接

下面,我们通过具体案例来说明×××实现的过程。

拓扑:

××× (一) IPSec 站点到站点的×××_第1张图片

我们使用RA模拟上海总公司,RB模拟ISP,RC和RD分别模拟两个分公司,并且每个分公司连接一台PC测试。

需求:

不能通过路由实现网络连通,那么只在路由器上配置默认路由指向ISP路由器即可,而ISP路由器上只配置IP地址,所以默认3台PC是不能通信的,当总公司RA和RD,RC分别建立×××之后,RA的PC就可以跟其他两台PC通信了。

IP地址规划

PC1   IP  192.168.1.10  网关  192.168.1.1

PC2   IP  192.168.2.10  网关  192.168.2.1

PC3   IP  192.168.3.10  网关  192.168.3.1

RA   F0/1  192.168.1.1   F0/0  200.1.1.1

RB   F0/1  200.1.1.2   F0/0  201.1.1.1  F0/2  202.1.1.1

RC   F0/1  201.1.1.2   F0/0  192.168.2.1

RD   F0/0  202.1.1.2   F0/1  192.168.3.1

具体配置过程:

虚拟PC,IP配置

××× (一) IPSec 站点到站点的×××_第2张图片

RA IP地址配置

××× (一) IPSec 站点到站点的×××_第3张图片

RB IP地址配置

××× (一) IPSec 站点到站点的×××_第4张图片

RC IP配置

××× (一) IPSec 站点到站点的×××_第5张图片

RD  IP配置

××× (一) IPSec 站点到站点的×××_第6张图片

因为做了默认路由,路由器直接应该是互相可以通信的。(×××网关必须能通信才能实现)

RA的×××配置

××× (一) IPSec 站点到站点的×××_第7张图片

上图是第一阶段管理连接的配置,下面我们一条一条看这些具体设置的是什么。

RA(config)#crypto isakmp policy 1        建立管理连接策略

RA(config-isakmp)#encryption aes        用于身份验证采用的加密算法

RA(config-isakmp)#hash md5            验证过程中采用HMAC功能

RA(config-isakmp)#authentication pre-share    设备身份验证方式的选定

RA(config-isakmp)#group 1              DH组

RA(config-isakmp)#lifetime 86400         生存周期

RA(config-isakmp)#exit

RA(config)#crypto isakmp key 0 cicso address 201.1.1.2 255.255.255.0

RA(config)#crypto isakmp key 0 cicso address 202.1.1.2 255.255.255.0  配置预共享密钥,因为要连接两个分公司,所以需要创立两个。

××× (一) IPSec 站点到站点的×××_第8张图片

同样来一一解释一下命令的含义

RA(config)#$ 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255   创建访问控制列表 配置允许哪些网络属于这个×××

RA(config)#$ 102 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

RA(config)#crypto ipsec transform-set tr esp-des ah-md5-hmac  配置相匹配的传输集

RA(cfg-crypto-trans)#mode tunnel      配置为隧道模式的×××

RA(cfg-crypto-trans)#exit

RA(config)#crypto map map 1 ipsec-isakmp    配置地图(用来对应不同的×××,不同的peer上对应不同的ACL)

% NOTE: This new crypto map will remain disabled until a peer

        and a valid access list have been configured.

RA(config-crypto-map)#match address 101   套用ACL 101

RA(config-crypto-map)#set peer 201.1.1.2    对应peer  201.1.1.2

RA(config-crypto-map)#set transform-set tr   所使用的传输集

RA(config-crypto-map)#exit

RA(config)#crypto map map 2 ipsec-isakmp

% NOTE: This new crypto map will remain disabled until a peer

        and a valid access list have been configured.

RA(config-crypto-map)#match address 102

RA(config-crypto-map)#set peer 202.1.1.2

RA(config-crypto-map)#set transform-set tr

RA(config-crypto-map)#exit

RA(config-if)#crypto map map   最后在接口应用。

接下来所做的配置如RA一样,在RC,RD上配置与RA配置相对应的配置。(加密方式以及预共享密钥需要相同)

配置完成之后进行测试,PC2和PC3可以与PC1进行通信了。

××× (一) IPSec 站点到站点的×××_第9张图片

×××(二)  NAT豁免与NAT-T

在IPSec ×××(一)中,我们介绍了使用路由器搭建站点到站点的IPsec ×××,×××是建立起来了,但要实现企业内部完整的需求还是不够的,其中还有一些问题的存在。

1. 当PAT与×××在一台设备上

通常,我们使用PAT完成企业内部共享上网,使用×××实现虚拟专用网络,那么在它们同时使用的时候,会出现什么情况呢。在NAT时,我们会定义访问控制列表。

Access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 (×××)

Access-list 102 permit ip any any (NAT)

这里两个控制列表产生了交集,在应用的时候,×××工作就会不正常,需要配置NAT豁免来解决这一问题。(NAT豁免是解决冲突的理念,而不是技术)

Access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

Access-list 101 permit ip any any (NAT)

通过这两条访问控制列表,使走×××的地址不走NAT路线,完成豁免。

2. 当PAT和×××不在一台设备上。

当不在一台设备上时,需要使用nat穿越技术来实现,这也是本章具体要讨论的问题。

拓扑:

××× (一) IPSec 站点到站点的×××_第10张图片

如图,中间的路由器为NAT,左边为×××服务器,这里使用ASA防火墙来代替,也顺便学习如何在ASA上配置×××,RA为ASA的peer。同样使用PC1,PC2来做最后的验证。

IP分布:

PC1  IP  192.168.1.10   网关  192.168.1.1

PC2  IP  192.168.2.10   网关  192.168.2.1

ASA  F1/0  192.168.1.1  F0/0  200.1.1.1

NAT  F1/0  200.1.1.2    F0/0  201.1.1.1

RA   F1/0  201.1.1.2    F0/0  192.168.2.1

配置过程

ASA IP地址配置

××× (一) IPSec 站点到站点的×××_第11张图片

ASA配置一条默认路由,保证通信

wps_clip_p_w_picpath-204

ASA配置×××具体过程,步骤的含义和在路由器上大同小异,这里不多做介绍了

××× (一) IPSec 站点到站点的×××_第12张图片

数据连接的配置

××× (一) IPSec 站点到站点的×××_第13张图片

NAT服务器的配置

××× (一) IPSec 站点到站点的×××_第14张图片

wps_clip_p_w_picpath-12024

wps_clip_p_w_picpath-8864

××× (一) IPSec 站点到站点的×××_第15张图片

请注意下图最后两条命令,从overload可以看出这是做了PAT共享上网,而下面两条static nat是用于对×××服务器的发布,通过了静态NAT的模式,实现了NAT-T (NAT穿越)的功能。

××× (一) IPSec 站点到站点的×××_第16张图片

路由器RA ×××的配置。

××× (一) IPSec 站点到站点的×××_第17张图片

wps_clip_p_w_picpath-20839

××× (一) IPSec 站点到站点的×××_第18张图片

××× (一) IPSec 站点到站点的×××_第19张图片

VPC的配置。

wps_clip_p_w_picpath-17922

将上述配置完成之后,可以发现,从PC1既可以通过×××访问PC2,也可以通过NAT访问201.1.1.2 外部地址。

×××(三)基于ASA实现easy *** (软件client端)

在前两节的内容中,我们一直在介绍站点到站点之间的×××,这种一般使用在总公司与分公司之间,而×××还包括远程访问×××,这种×××一般针对移动用户来实现的。移动用户只需要连接到internet,就可以通过连接×××服务器接入企业内部网络。这里的×××服务器也可以实现上章提到的×××豁免,这里面称为分离隧道。

拓扑如下:

××× (一) IPSec 站点到站点的×××_第20张图片

具体配置如下:

    我们使用ASA防火墙来实现此功能,这里是IP地址的配置。

××× (一) IPSec 站点到站点的×××_第21张图片

配置认证口令,以及管理连接。

××× (一) IPSec 站点到站点的×××_第22张图片

配置地址池和分离隧道

××× (一) IPSec 站点到站点的×××_第23张图片

定义policy,在其中启用分离隧道。

××× (一) IPSec 站点到站点的×××_第24张图片

建立隧道组

××× (一) IPSec 站点到站点的×××_第25张图片

建立传输集和动态地图,并在端口上应用。

××× (一) IPSec 站点到站点的×××_第26张图片

然后在外网用户上安装 cisco *** client 软件,进行连接。打开工具,选择new选项卡。

××× (一) IPSec 站点到站点的×××_第27张图片

输入host,***服务器的地址,和定义的***隧道组名和预共享密钥。

××× (一) IPSec 站点到站点的×××_第28张图片

保存之后选择连接。

××× (一) IPSec 站点到站点的×××_第29张图片

连接过程中需要我们输入口令,这里配置的是cisco,输入完之后进行测试。

××× (一) IPSec 站点到站点的×××_第30张图片

PC2可以和内网通信了。

×××(四)easy *** 硬件客户端

有的时候我们在使用远程访问×××的时候,不一定针对移动用户,如小型的分公司也需要访问企业内部资源的时候,则需要进行搭建远程访问×××来保证安全,但是如果每台计算机上都安装软件对于员工难度较大,并且十分麻烦,那么我们会在这些计算机的前端路由器上安装硬件客户端来实现。所以硬件客户端与软件的区别就是在客户端的前端路由器上配置,对PC是完全透明的,可以直接选择进行×××的访问。

以下是拓扑:

××× (一) IPSec 站点到站点的×××_第31张图片

    服务器端的配置如上一章节软件客户端的配置一样,只不过这里使用的是路由器而不是ASA,就不多做介绍了。

××× (一) IPSec 站点到站点的×××_第32张图片

××× (一) IPSec 站点到站点的×××_第33张图片

××× (一) IPSec 站点到站点的×××_第34张图片

wps_clip_p_w_picpath-8090

××× (一) IPSec 站点到站点的×××_第35张图片

wps_clip_p_w_picpath-22672

××× (一) IPSec 站点到站点的×××_第36张图片

××× (一) IPSec 站点到站点的×××_第37张图片

以上的内容在上一章节都提到了,这里就不多做介绍,而下面则是硬件客户端的配置。

××× (一) IPSec 站点到站点的×××_第38张图片

在硬件客户端也只需要我们简单配置,指定peer,预共享密钥等信息,完成之后×××连接还没有正式搭建起来,记得软件客户端中需要输入帐户密码之后才能建立么,在这里也是一样的,输入crypto ipsec client ez*** xauth之后,输入username 和 Password才能正式连接,并且每次连接都需要重新输入。

××× (一) IPSec 站点到站点的×××_第39张图片

建立成功之后我们配上虚拟PC的IP地址进行测试。

××× (一) IPSec 站点到站点的×××_第40张图片

××× (一) IPSec 站点到站点的×××_第41张图片

    上图已经显示测试成功,但是如果每次连接都需要在路由器上进行设置是很复杂麻烦的,那么我们可以在×××服务器上设置保存连接,如下命令,当这样设置之后,当***_group这个组进行连接的时候就会保存username 和password 再次连接则可以直接进行了。

wps_clip_p_w_picpath-7943

以上内容为远程访问×××的硬件客户端模式。

×××(五)SSL远程访问×××

Easy ×××已经可以实现移动用户和小型分公司的问题了,但是如果企业内部的销售人员去别的公司做解说,那么一般是不会麻烦的去在对方计算机上安全软件的,那么SSL远程访问×××就会解决这一问题,直接通过打开web的方式,直接进行×××连接。

实验拓扑如下:

××× (一) IPSec 站点到站点的×××_第42张图片

首先进行IP地址的配置。

××× (一) IPSec 站点到站点的×××_第43张图片

如果easy ***,需要首先创建username 和password 进行最后的身份验证。设置之后还需要确定SVC软件的位置,SVC就是SSL客户端软件。

××× (一) IPSec 站点到站点的×××_第44张图片

同样需要建立隧道分离和地址池,避免和NAT冲突。

××× (一) IPSec 站点到站点的×××_第45张图片

定义组策略。

××× (一) IPSec 站点到站点的×××_第46张图片

建立隧道组。

××× (一) IPSec 站点到站点的×××_第47张图片

与easy ***最不相同的是SSL的客户端了,打开IE浏览器,访问×××服务器的外网IP地址,并且输入username和password。

××× (一) IPSec 站点到站点的×××_第48张图片

进入界面之后点击start anyconnect 安全客户端(这里的配置是胖客户端配置,胖客户端可以支持很多类型的连接,而其他客户端功能比较欠缺。)

××× (一) IPSec 站点到站点的×××_第49张图片

当安装完成之后,右下角会有一个小钥匙,表示已经连接成功。

××× (一) IPSec 站点到站点的×××_第50张图片

测试。

××× (一) IPSec 站点到站点的×××_第51张图片

以上内容是SSL远程访问×××的配置。

为了大家更好的学习和实验,将各种配置文件附在下面进行参考。

Easy *** 基于 ASA

username cisco password cisco

crypto isakmp enable outside

crypto isakmp policy 10

encryption aes

hash sha

authentication pre-share

group 2

exit

ip local pool ***_pool 192.168.10.1-192.168.10.200

access-list split_tunnel permit ip 192.168.1.0 255.255.255.0 any

group-policy ***_group_policy internal

group-policy ***_group_policy attributes

split-tunnel-policy tunnelspecified

split-tunnel-network-list value split_tunnel

exit

tunnel-group ***_group type ipsec-ra

tunnel-group ***_group general-attributes

address-pool ***_pool

default-group-policy ***_group_policy

exit

tunnel-group ***_group ipsec-attributes

pre-shared-key groupkey

exit

crypto ipsec transform-set ***_transform esp-aes esp-sha-hmac

crypto dynamic-map ***_dymap 10 set transform-set ***_transform

crypto map mymap 1000 ipsec-isakmp dynamic ***_dymap

crypto map mymap int outside

easy ***基于路由器

aaa new-model

aaa authentication login ***_authen local

aaa authorization network ***_author local

username cisco password cisco

crypto isakmp policy 10

encryption aes 128

hash sha

authentication pre-share

group 2

exit

ip local pool ***_pool 192.168.10.1 192.168.10.200

access-list 101 permit ip 192.168.1.0 0.0.0.255 any

crypto isakmp client configuration group ***_group

key groupkey

pool ***_pool

acl 101

exit

crypto ipsec transform-set ***_transform esp-aes esp-sha-hmac

exit

crypto dynamic-map ***_dymap 10

set transform-set ***_transform

exit

crypto map mymap client authentication list ***_authen

crypto map mymap isakmp authorization list ***_author

crypto map mymap client configuration address respond

crypto map mymap 1000 ipsec-isakmp dynamic ***_dymap

int f0/0

crypto map mymap

exit

ip route 0.0.0.0 0.0.0.0 200.1.1.2

easy *** 硬件客户端配置

crypto ipsec client ez*** myeasy***

connect auto

group ***_group key groupkey

mode network-extension

peer 20.1.1.1

username cisco password cisco

exit

int f0/0

crypto ipsec client ez*** myeasy*** inside

int f1/0

crypto ipsec client ez*** myeasy*** outside

exit

exit

crypto ipsec client ez*** xauth

//在服务器端做如下配置,允许硬件客户端存储XAUTH认证信息,就不必每次提供XAUTH认证

crypto isakmp client configuration group ***_group

save-password

exit

SSL 远程访问×××在ASA上的配置

username cisco password cisco

web***

enable outside

svc p_w_picpath disk0:/sslclient-win-1.1.3.173.pkg

svc enable

exit

ip local pool ***_pool 192.168.10.1-192.168.10.200

access-list split_tunnel permit ip 192.168.1.0 255.255.255.0 any

group-policy ***_group_policy internal

group-policy ***_group_policy attributes

***-tunnel-protocol web*** svc

split-tunnel-policy tunnelspecified

split-tunnel-network-list value split_tunnel

web***

svc ask enable

exit

exit

tunnel-group ***_group type web***

tunnel-group ***_group general-attributes

address-pool ***_pool

default-group-policy ***_group_policy

exit

tunnel-group ***_group web***-attributes

group-alias groups enable

exit

web***

tunnel-group-list enable

exit