这是IPsec×××的另一种配置,作用在防火墙上面。虽然一个是作用的路由器上的一个是作用在防火墙上的但是原理机制都是差不多,唯一的区别就是默认配置的区别。路由器默认就开启了IKE的协商,而防火墙是默认关闭的所以要输入crypto isakmp enable outside这条命令开启防火墙上面的IKE的协商,outside就是指在防火墙的外网口开启这个功能,也就是图中所示的e0/0这个端口。但是由于防火墙存在一种限制,如果流量从一个接口进入,就不能从相同安全级别的端口流出。也就是流量不能在同一安全级别的端口之间传输。这个问题我会在最后面做重点的补充出来。

 

先为路由器配置地址

R1

R1>enR1#conf tEnter configuration commands, one per line.  End with CNTL/Z.R1(config)#int fa0/1R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exR1(config)#int fa0/0R1(config-if)#ip add 192.168.10.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exR1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2

R3

R3>enR3#conf tR3(config)#int fa0/0R3(config-if)#ip add 192.168.20.1 255.255.255.0R3(config-if)#no shutR3(config-if)#exR3(config)#int fa0/1R3(config-if)#ip add 192.168.2.1 255.255.255.0R3(config-if)#no shutR3(config-if)#exR3(config)#ip route 0.0.0.0 0.0.0.0 192.168.20.2

ISP

ISP>enISP#conf tISP(config)#int fa0/0ISP(config-if)#ip add 10.0.0.2 255.255.255.0ISP(config-if)#no shutISP(config-if)#exISP(config)#int fa0/1ISP(config-if)#ip add 11.0.0.2 255.255.255.0ISP(config-if)#no shut

ASA1配置等同于ASA2配置(除地址外)

1首先配置的是如何保存

 

#重启防火墙后在查看磁盘,你就会发现有所区别了,因为没重启前的磁盘还不能写入数据。

ciscoasa> show disk0--#--  --length--  -----date/time------  path    5  4096        Jul 12 2015 11:59:59  .private    6  0           Jul 12 2015 11:59:57  .private/mode.dat    7  0           Jul 12 2015 11:59:59  .private/DATAFILE 268136448 bytes total (242642944 bytes free) ciscoasa> en                                                Password: #这里不需要密码直接回车ciscoasa# conf tciscoasa(config)# copy running-config disk0:/.private/startup-config#复制文件 Source filename [running-config]? 敲回车 Destination filename [/.private/startup-config]? 敲回车Cryptochecksum: 6e33e06b 255d8b92 90c27d70 9f5b4de4  1471 bytes copied in 2.580 secs (735 bytes/sec)open(ffsdev/2/write/41) failedopen(ffsdev/2/write/40) failed ciscoasa(config)# boot config disk0:/.private/startup-config#重启文件ciscoasa(config)# wr#保存文件Building configuration...Cryptochecksum: a0ce05e6 e361a34f d8bc3b81 55185b42  1514 bytes copied in 2.410 secs (757 bytes/sec)open(ffsdev/2/write/41) failedopen(ffsdev/2/write/40) failed [OK]#这里已经说明成功了ciscoasa(config)# show disk0#然后在查看磁盘--#--  --length--  -----date/time------  path    5  4096        Jul 12 2015 12:09:40  .private    6  0           Jul 12 2015 11:59:57  .private/mode.dat    7  0           Jul 12 2015 12:10:58  .private/DATAFILE    8  1514        Jul 12 2015 12:10:58  .private/startup-config    9  4096        Jul 12 2015 12:10:58  boot   10  0           Jul 12 2015 12:10:58  boot/grub.conf268136448 bytes total (242634752 bytes free)ciscoasa(config)# hostname ASA1 #修改名称ASA1(config)# ASA1(config)# int e0/0#进入端口ASA1(config-if)# nameif outside#指定端口所在区域(这里可以加一个端口的优先级配置security-level numberINFO: Security level for "outside" set to 0 by default.ASA1(config-if)# ip add 10.0.0.1 255.255.255.0#配置地址ASA1(config-if)# no shut#激活端口ASA1(config-if)# exASA1(config)# int e0/1ASA1(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default.ASA1(config-if)# ip add 192.168.10.2 255.255.255.0ASA1(config-if)# no shut ASA1(config-if)# exASA1(config)# route outside 0 0 10.0.0.2#默认路由配置ASA1(config)# route inside 192.168.1.0 255.255.255.0 192.168.10.1#指向内网段ASA1(config)# exASA1# ping 11.0.0.1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 11.0.0.1, timeout is 2 seconds:?!!!!#可以通过网卡说明防火墙配置成功了Success rate is 80 percent (4/5), round-trip min/avg/max = 20/37/50 ms

2ISAKMP/IKE阶段一管理连接部分及解释

ASA1(config)# crypto isakmp enable outside#在防火墙上启用IKE的协商ASA1(config)# crypto isakmp policy 1#建立管理链接策略(policy的值1~10000)ASA1(config-isakmp-policy)# encryption 3des#用于管理最后两个数据报文(用于身份验证)采用何种加密算法( des | 3des | aes  这三种对称加密算法aes支持256位秘钥长度最安全其次是3des168位,des支持56位)ASA1(config-isakmp-policy)# hash sha#指定验证过程采用HMAC功能( sha | md5 其中SHA安全散列算法 MD5信息-摘要算法)ASA1(config-isakmp-policy)# authentication pre-share#指定设备身份验证方式( pre-share | rsa-encr | rsa-sig )ASA1(config-isakmp-policy)# group 2#指定DH秘钥组,默认DH2组( 1 | 2 | 5 组号越大算法越安全)ASA1(config-isakmp-policy)# lifetime 120#指定管理链接的生存周期,默认24小时,这里以秒为单位。最小120s。ASA1(config-isakmp-policy)# ex     ASA1(config)# crypto isakmp key 123 address 11.0.0.1#预共享秘钥ASA1(config)# crypto ipsec transform-set benet esp-3des esp-sha-hmac #定义传输集,ipsec-set是名称,该设定的名称具有唯一性。esp-3des是ESP六个加密中的一种,esp-sha-hmac是ESP验证还有一种是esp-md5-hmac。(传输集有AH和ESP两种其中AH不支持加密)

3ISAKMP/IKE阶段二数据连接部分及解释

ASA1(config)# access-list 111 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0#防火墙上配置ACL不使用反掩码ASA1(config)# crypto map li 1 match address 111#指定ACLASA1(config)# crypto map li 1 set peer 11.0.0.1#指定对端地址ASA1(config)# crypto map li 1 set transform-set benet#指定对等体设备与谁建立连接(名称要与定义传输集的名称相同)ASA1(config)# crypto map li interface outside#端口指定ASA1(config)# show crypto isakmp sa#防火墙上在全局模式查看不需要再show前加do,而且全局模式也无法ping,只能在特权模式ping测试   Active SA: 1    Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)Total IKE SA: 1 1   IKE Peer: 11.0.0.1    Type    : L2L             Role    : initiator     Rekey   : no              State   : MM_ACTIVE ASA1(config)# show crypto ipsec sa    interface: outsideCrypto map tag: li, seq num: 1, local addr: 10.0.0.1       access-list 111 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0       local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)      remote ident (addr/mask/prot/port): (192.168.2.0/255.255.255.0/0/0)      current_peer: 11.0.0.1指定远程对等体设备地址#local ident和remote ident指定了基于感兴趣流量的ACL需要被保护的流量      #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4      #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4      #pkts compressed: 0, #pkts decompressed: 0      #pkts not compressed: 4, #pkts comp failed: 0, #pkts decomp failed: 0      #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0      #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0      #send errors: 0, #recv errors: 0       local crypto endpt.: 10.0.0.1, remote crypto endpt.: 11.0.0.1       path mtu 1500, ipsec overhead 58, media mtu 1500      current outbound spi: DE983656#inbound和outbound指定每条SA的具体参数    inbound esp sas:      spi: 0xE35937F1 (3814275057)         transform: esp-3des esp-sha-hmac none          in use settings ={L2L, Tunnel, }         slot: 0, conn_id: 4096, crypto-map: li         sa timing: remaining key lifetime (kB/sec): (3824999/28747)         IV size: 8 bytes         replay detection support: Y    outbound esp sas:      spi: 0xDE983656 (3734517334)         transform: esp-3des esp-sha-hmac none          in use settings ={L2L, Tunnel, }         slot: 0, conn_id: 4096, crypto-map: li         sa timing: remaining key lifetime (kB/sec): (3824999/28747)         IV size: 8 bytes         replay detection support: Y

ASA2防火墙配置

ASA2(config)# int e0/0ASA2(config-if)# nameif outsideINFO: Security level for "outside" set to 0 by default.ASA2(config-if)# ip add 11.0.0.1 255.255.255.0ASA2(config-if)# exASA2(config)# int e0/0ASA2(config-if)# no shutASA2(config-if)# exASA2(config)# int e0/1ASA2(config-if)# nameif inside INFO: Security level for "inside" set to 100 by default.ASA2(config-if)# ip add 192.168.20.2 255.255.255.0ASA2(config-if)# no shutASA2(config-if)# exASA2(config)# route outside 0 0 11.0.0.2ASA2(config)# route inside 192.168.2.0 255.255.255.0 192.168.20.1ISAKMP/IKE阶段一管理连接配置ASA2(config)# crypto isakmp enable outside ASA2(config)# crypto isakmp policy 1ASA2(config-isakmp-policy)# encryption 3desASA2(config-isakmp-policy)# hash shaASA2(config-isakmp-policy)# authentication pre-shareASA2(config-isakmp-policy)# group 2ASA2(config-isakmp-policy)# lifetime 120ASA2(config-isakmp-policy)# exASA2(config)# crypto isakmp key 123 address 10.0.0.1     ASA2(config)# crypto ipsec transform-set benet esp-3des esp-sha-hmac ISAKMP/IKE阶段二数据连接配置ASA2(config)# access-list 111 permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0ASA2(config)# crypto map li 1 match address 111ASA2(config)# crypto map li 1 set peer 10.0.0.1ASA2(config)# crypto map li 1 set transform-set benetASA2(config)# crypto map li interface outside

VPCS虚拟网卡地址配置部分

结果测试成功

补充:

介绍几个主模式方便排查错误

MM_NO_STATEISAKMP建立初始状态,管理连接建立失败也是该模式。

MM_SA_SETUP:对等体之间ISAKMP策略协商成功。

MM_KEY_EXCH:对等体通过DH算法成功建立共享秘钥,还没进行设备验证。

MM_KEY_AUTH:对等体成功进行设备验证

QM_IDLE:管理连接建立成功

 

故障一:管理连接中加密算法不匹配通过debug  crypto isakmp 命令查看

ISAKMP:(00N/A0):Encryption algorithm offered does not match policy加密算法不匹配

ISAKMP:(00N/A0):atts are not acceptable Next payload is 0策略不被接受

故障二:两端的key秘钥不匹配通过debug crypto isakmp命令查看

ISAKMP:(00N/A0):atts are acceptable. Next payload is 0 算法匹配,开始进行秘钥交换及身份验证

%CRYPTO-4-IKMP_BAD_MESSAGEIKE message form 10.0.0.1 failed its sanity check or is malformed验证失败

 

防火墙的端口安全机制的解决方法就是配置下面这条命令,该命令的意思是允许进出同一端口,这样就可以建多个站点了。

ASA(config)#same-security-traffic permit intra-interface