取消
显示结果 
搜索替代 
您的意思是: 
cancel
18890
查看次数
10
有帮助
16
回复

ASA IPSEC VPN心得配置

330345692
Beginner
Beginner
一:从vpn访问防火墙的内部接口
ASA防火墙配置了VPN之后,通过VPN通道访问内网都是没有问题的,但是不知大家发现没有,访问防火墙的内部接口是不行的,这一点和路由器很不相同。路由器在vpn后,从vpn通道只要能够访问内部网络,同时也能够访问路由器的内部接口。其实这是由于ASA的安全特性导致的,如果要通过VPN访问内部接口怎么办,很简单,一条命令解决:
ciscoasa(config)# management-accessinside
就OK了。
二:IPSec VPN配置总结1
近段时间,笔者完成了一些IPSec VPN的配置,有站点到站点固定公网IP地址的IPSec VPN,有站点到站点使用固定公网IP地址的EZVPN,有网络中心点是固定公网IP地址,而分支机构是动态地址的DMVPN,有路由器和防火墙之间互联的IPSec VPN,也有不同厂商的设备之间互联的IPSec VPN。通过这些项目的锻炼,笔者感到对IPSec VPN的了解又增进了一步,以前一些模糊的地方,经过这次项目的实践之后也越来越清晰,以下就是笔者对IPSec VPN配置的总结和配置实例。
一、理解IPSec VPN
VPN是利用公共网络建立一条专用的通道来实现私有网络的连接,IPSec VPN就是利用IPSec协议框架实现对VPN通道的加密保护。IPSec工作在网络层,它能在IP层上对数据提供加密、数据完整性、起源认证和反重放保护等功能。
加密的作用就是通过将数据包加密,保证数据的安全,即使数据包被人监听获取到,也无法阅读数据内容。
IPSec使用的数据加密算法是对称密钥加密系统。支持的加密算法主要有:DES、3DES、MD5和SHA加密算法,这种加密算法需要一个共享的密钥执行加密和解密,共享的密钥是通过通信两端交换公钥,然后用公钥和各自的私钥进行运算,就得到了共享的密钥,这样就需要一个公钥交换的算法。DH密钥协议就是一种公钥交换方法。DH密钥交换协议有组1到组7的几种不同的算法,级别越高,加密的强度也就越大。组1提供768位的密钥强度,组2提供1024位的密钥强度。DES和3DES支持组1和2,AES支持组2和5,因此如果选用了不同的加密算法,就需要选择相应的DH密钥交换算法。
数据完整性的作用就是保证数据包在传输的过程当中没有被篡改。
为了保证数据的完整性,给每个消息附加一个散列数,通过验证发送的散列数和接收的散列数是否匹配来判断消息是否被修改。散列消息验证代码(HMAC)主要有两种算法:HMAC-MD5和HMAC-SHA-1,MD5使用128位的共享密钥,而SHA使用160位密钥,因此HMAC-SHA-1比HMAC-MD5的加密强度要更高一些。
起源认证的作用就是保证发送数据包的源站点是可信的。
起源认证用来在建立隧道时验证隧道两端的对等体是否是可信的。主要有预共享密钥、RSA签名、RSA-加密nonces三 种方法。其中预共享密钥配置起来最简单,但安全性和扩展性也相对来说要差一些。预共享密钥就是在每个对等体上都预先配置好相同的密钥,经过运算之后发送到 远端的对等体,由于每个对等体的密钥相同,因此就能够通过起源认证。另外两种认证方法配置较为复杂,需要和证书服务器配合起来使用,笔者没有这方面的实 践,因此后面的配置实例中都是采用的预共享密钥的配置。
反重放保护的作用就是保证数据包的唯一性,确定数据包在传输过程中没有被复制。
在IPSec的数据包中含有一个32位的序列数,并且是不能重复的,接收方通过检查序列数是否是唯一的来执行反重放保护功能。
IPSec协议簇主要包括两种协议:AH(认证头)和ESP(封装安全有效载荷)。其中AH不提供加密功能,而ESP两者都提供。当使用ESP进行加密和认证的时候,执行顺序是先加密再认证。将这两种协议应用到IP数据包时有两种模式,分别是隧道模式和传输模式。隧道模式将一个新的IP头附加在已加密的数据包之前,为整个数据包提供安全性;而传输模式下原数据包的IP头不变,保持明文,只对数据包的内容提供安全性。
IPSec的建立有两个阶段,第一个阶段主要是认证对等体,并协商策略。如确定建立IPSec隧道所需用到的安全参数,主要有加密的算法、对等体的认证、保证消息完整性的散列算法和密钥交换的算法,协商成功后再进行DH交换,建立一条安全信道。
第二个阶段主要是协商IPSec的参数和IPSec变换集,如确定使用AH还是ESP协议,使用传输模式还是隧道模式。协商成功后建立IPSec SA(安全关联),保护IPSec隧道的安全。
在笔者所配置的IPSec VPN中,都统一采用下列参数:
阶段一:
加密算法采用3DES;
保证数据完整性的算法采用HMAC-SHA-1;
起源认证采用预共享密钥;
密钥交换采用DH组2;
阶段二:
采用ESP协议提供对整个数据包的保护,并同时使用加密和认证,加密算法采用3DES,认证算法采用HMAC-SHA-1
使用模式采用隧道模式。
其余的参数保持默认设置。
三:IPSec VPN配置总结2
一、配置实例及说明
1.用路由器实现站点到站点的IPSecVPN
以笔者单位的网络拓扑结构为例来说明使用路由器实现站点到站点的IPSec VPN的配置。本例中总部和三个分公司都具有固定的公网IP地址,路由器型号为Cisco3845,拓扑如图一所示:

104546fkubk88gyyzxpzoa.jpg

图1
总部路由器阶段一的配置:
ZB(config)#crypto isakmp policy 10 //建立一个新的密钥交换策略,优先级为10,优先级号是从1到100000,1的优先级最高
ZB(config-isakmp)#encryption 3des //使用3DES的加密算法
ZB(config-isakmp)#authentication pre-share //使用预共享密钥认证对等体
ZB(config-isakmp)#hash sha //使用SHA散列算法,这一条配置命令可不用配置,因为默认的就是采用的这种散列算法
ZB(config-isakmp)#group 2 //密钥交换算法采用DH密钥协议组2的算法
由于采用的是预共享密钥的方式认证对等体,因此需要回到全局配置模式下,指定对等体的密钥:
ZB(config)#crypto isakmp key cjgsvpn add 58.216.222.106 //密钥为cjgsvpn,然后分别指定三个分公司的路由器公网接口的IP地址
ZB(config)#crypto isakmp key cjgsvpn add 218.22.189.82
ZB(config)#crypto isakmp key cjgsvpn add 218.75.208.74
总部路由器阶段二的配置:
ZB(config)#crypto ipsec transform-set cjgsset esp-3desesp-sha-hmac //定义IPSec的转换集,转换集的名字为cjgsset,并指定采用ESP协议提供对整个数据包的加密和认证,加密采用3DES算法,认证采用SHA算法
ZB(cfg-crypto-trans)#mode tunnel //使用隧道模式,这条配置命令也可以不用配置,默认就是采用隧道模式
IPSec的两个阶段配置完成后,接下来定义需要保护的数据类型,定义加密映射,并将加密映射映射到路由器的公网接口上:
ZB(config)#ip access-list extended cz //这里的几条访问列表定义要被保护的数据,即总部访问三个分公司的数据流。172.19.0.0/18是总部的地址段,172.19.64.0/18是株洲分公司的地址段,172.19.128.0/19是铜陵分公司的地址段,172.19.160.0/19是常州分公司的地址段
ZB(config-ext-nacl)#permit ip 172.19.0.0 0.0.63.255 172.19.160.00.0.31.255
ZB(config-ext-nacl)#exit
ZB(config)#ip access-list ext tl //总部到铜陵分公司的流量
ZB(config-ext-nacl)#permit ip 172.19.0.0 0.0.63.255 172.19.128.00.0.31.255
ZB(config-ext-nacl)#exit
ZB(config)#ip access-list ext zz //总部到株洲分公司的流量
ZB(config-ext-nacl)#permit ip 172.19.0.0 0.0.63.255 172.19.64.00.0.63.255
ZB(config)#crypto map cjgsmap 10 ipsec-isakmp //建立优先级为10,名字为cjgsmap的加密映射,并使用ISAKMP(即阶段一协商的参数)来自动建立IPSec SA
ZB(config-crypto-map)#match add cz //匹配加密映射需要保护的流量,这里是匹配到常州分公司的流量
ZB(config-crypto-map)#set transform-set cjgsset //使用cjgsset变换集定义的IPSec参数
ZB(config-crypto-map)#set peer 58.216.222.106 //定义对等体的地址,即常州分公司路由器公网接口的IP地址
ZB(config-crypto-map)#exit
ZB(config)#crypto map cjgsmap 20 ipsec-isakmp //定义优先级为20的加密映射
ZB(config-crypto-map)#match add tl //匹配到铜陵分公司的流量
ZB(config-crypto-map)#set transform-set cjgsset
ZB(config-crypto-map)#set peer 218.22.189.82 //铜陵分公司路由器公网接口的IP地址
ZB(config-crypto-map)#exit
ZB(config)#crypto map cjgsmap 30 ipsec-isakmp //定义优先级为30的加密映射
ZB(config-crypto-map)#match add zz //匹配到株洲分公司的流量
ZB(config-crypto-map)#set tran cjgsset
ZB(config-crypto-map)#set peer 218.75.208.74 //株洲分公司路由器公网接口的IP地址
加密映射的策略定义完成后,将加密映射应用到总部路由器的公网接口上:
ZB(config)#int fa0/0
ZB(config-int)crypto map cjgsmap
至此总部路由器上的配置即完成。
分公司的配置以铜陵分公司为例,阶段一和阶段二的参数必须采用和先前定义的一致,否则总部和分公司之间就不能建立加密的安全通道,具体的配置命令与总部路由器上的一样,配置结果如下:
crypto isakmp policy 100 //建立优先级为100的密钥交换策略
encr 3des //采用3DES加密
authentication pre-share //采用预共享密钥认证
group 2 //采用DH组2的密钥交换算法
crypto isakmp key cjgsvpn address 59.175.234.100 //建立预共享密钥,必须和总部的配置一致
crypto ipsec transform-set tl esp-3des esp-sha-hmac //建立IPSec转换集,使用ESP协议,采用3DES算法加密,SHA算法认证,并使用隧道模式
crypto map zbvpn 100 ipsec-isakmp //建立优先级为100的加密策略,使用ISAKMP自动生成SA,策略名为zbvpn
set peer 59.175.234.100 //设定总部的路由器的公网口地址
set transform-set tl //使用名称为tl的转换集和IPSec参数
match address zb //匹配铜陵分公司到总部的流量
interface FastEthernet0/0
ip address 218.22.189.82 255.255.255.248
crypto map zbvpn //将加密策略应用到接口
ip access-list extended zb
permit ip 172.19.128.0 0.0.31.255 172.19.0.0 0.0.63.255 //定义铜陵分公司到总部的流量
其他分公司的配置与此类似,就不再重复了。
下面再来看看IPSec VPN建立的过程:
当有总部访问各分公司数据流量到达这个接口时,就根据加密映射的策略进行判断。例如目标地址在铜陵分公司的地址段内,首先和优先级是10的策略进行比较,就会发现和优先级10的策略中定义的地址段不相符,那么就会忽略优先级10的加密策略;然后再和优先级是20的加密策略比较,这时发现要访问的目标地址和优先级20定义的地址段正好匹配,那么就开始和优先级20中定义的对端地址进行先进行阶段一的协商,包括密钥的交换,对等体的认证,完整性算法等参数,协商成功后再进行阶段二的协商,包括采用哪种协议进行封装、是否使用加密和认证,然后建立SA,成功后就建立了一条安全通道。那么总部到铜陵分公司的数据就可以通过互联网在这条安全通道内进行加密传送了。

16 条回复16

zhaopeipei
Enthusiast
Enthusiast
支持~~~~~~

simon.fang
Community Member
好好学习天天向上

Yanli Sun
Community Manager
Community Manager
支持楼主,感谢分享 :P

guobwang
Cisco Employee
Cisco Employee
支持楼主,感谢分享

flexjohndou
Beginner
Beginner
支持,感谢分享

yueyue207
Beginner
Beginner
好好学习 天天向上啊哈哈哈哈哈

xingywan
Cisco Employee
Cisco Employee
不是很懂asa的东西,但是感觉楼主这学习态度很好啊,向你学习。
数据通讯的东西很多很杂,今天会了过不了多久可能就忘记了,做个笔记,做个总结是很好的一种方法。

ywanxin
Cisco Employee
Cisco Employee
这个配置模版很详细

one-time
Expert
Expert
感谢楼主分享

ywanxin
Cisco Employee
Cisco Employee
感谢楼主分享的相当精华了

13nash
Collaborator
Collaborator
很不错,一些细节

13nash
Collaborator
Collaborator
很不错,一些细节都有提到

niweijian2014
Beginner
Beginner
:):)谢谢分享

sxsure001
Beginner
Beginner
lollollol
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:







认可您的同行
快捷链接