HTML/JavaScript

2016年11月28日星期一

【Cisco】【安全】【CCNA】IPSec VPN 基础实验

IPSec VPN 基础实验

IPSec VPN 基础实验

介绍

  1. IPSec VPN配置逻辑
  2. IPSec VPN传输模式配置
  3. IPSec VPN隧道模式配置

IPSec VPN配置逻辑

IPSec VPN配置逻辑包括以下三个步骤:
1. 先配置isakmp策略,并指定isakmp peer 和预共享密钥。
2. 配置IPSec VPN 加密算法,以及传输模式。
3. 配置crypto map 关联ipsec,匹配“感兴趣流”,并在接口下应用。

IPSec VPN传输模式配置

配置isakmp策略,加密aes,哈希md5,认证方式预共享密钥,采用group16加密强度。

crypto isakmp policy 10
 encryption aes
 hash md5
 authentication pre-share
 group 16

配置isakmp peer 和 预共享钥,与192.168.45.5进行isakmp协商,并且预共享密钥为“ccie43413”。

crypto isakmp key ccie43413 address 192.168.45.5 

配置IPSec VPN 加密算法,以及传输模式

crypto ipsec transform-set ipsec-police esp-aes
 mode transport 

配置crypto map关联ipsec,并 匹配“感兴趣流”,并在接口下应用。

access-list 100 permit ip host 1.1.1.1 host 6.6.6.6
!
crypto map vpn 10 ipsec-isakmp
 set peer 192.168.45.5
 set transform-set ipsec-police
 match address 100
!
interface Ethernet0/1
 set ip address 192.168.23.2 255.255.255.0
 set crypto map vpn

IPSec VPN隧道模式配置

隧道模式仅需修改步骤3中“transport” 改为“tunnel”即可,其他无任何差别。详细配置略。

crypto ipsec transform-set ipsec-police esp-aes
 mode tunnel

IPSec VPN状态检查

检查isakmp和ipsec状态“active”状态即为正常。

IOU2#show crypto ipsec sa 

interface: Ethernet0/1
    Crypto map tag: vpn, local addr 192.168.23.2

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (1.1.1.1/255.255.255.255/0/0)
   remote ident (addr/mask/prot/port): (6.6.6.6/255.255.255.255/0/0)
   current_peer 192.168.45.5 port 500
     PERMIT, flags={origin_is_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: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 192.168.23.2, remote crypto endpt.: 192.168.45.5
     plaintext mtu 1454, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/1
     current outbound spi: 0xD9C88899(3653798041)
     PFS (Y/N): N, DH group: none

     inbound esp sas:
      spi: 0xA7FCB727(2818357031)
        transform: esp-aes ,
        in use settings ={Tunnel, }
        conn id: 1, flow_id: SW:1, sibling_flags 80000040, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (4357294/591)
        IV size: 16 bytes
        replay detection support: N
        ecn bit support: Y status: off
        Status: ACTIVE(ACTIVE)

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0xD9C88899(3653798041)
        transform: esp-aes ,
        in use settings ={Tunnel, }
        conn id: 2, flow_id: SW:2, sibling_flags 80000040, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (4357294/591)
        IV size: 16 bytes
        replay detection support: N
        ecn bit support: Y status: off
        Status: ACTIVE(ACTIVE)

     outbound ah sas:

     outbound pcp sas:
IOU2# 

2017年10月13日更新

2016年11月26日星期六

【Cisco】【安全】【CCNA】IPSec VPN 基础介绍

IPSec VPN 基础介绍

IPSec VPN 基础介绍

介绍

  1. vpn基础概念
  2. ipsec vpn框架
  3. ESP封装方式和传输模式介绍

VPN基础概念

虚拟专用网(英语:Virtual Private Network,简称VPN),是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。虚拟私人网络的讯息透过公用的网络架构(例如:互联网)来传送内联网的网络讯息。vpn分为远程接入vpn和站点到站点vpn。

· 远程接入:通常是终端连接到公司网关,访问公司内部网络。
· 站点到站点:通常是网关和网关之间建立vpn隧道,使其从一个站点到另外一个站点通信,好似在同一个内网中一样。

远程接入的vpn种类有:ipsec vpn、PPTP、SSL、L2TP+ipsec。
站点到站点的vpn种类有:ipsec vpn、GRE tunnel、帧中继、MPLS VPN。

由于需要使用公网进行数据传输,那么为了保证数据的安全。我们至少需要保障:
·私密性:传递的数据包经过加密。
·完整性:数据在传递的过程中没有被修改。
·源认证:数据是可信任的源传递给我。

enter image description here

IPSec VPN框架

ipsec框架包括,加密、认证(验证)、封装协议、传输模式、密钥有效期。

加密和认证

既然在公网上传输需要解决。私密性、完整性、源认证。那么我们来看看ipsec vpn如何解决这些问题呢?

私密性,私密性固然可见。就是希望传输的数据不是明文,而是经过加密之后的。然而这就涉及到一个加解密的概念。我们先谈加密,在加密算法中,分为两种一种是对称密钥。另外一种是非对称密钥。

对称密钥,加密和解密都是同样的密钥。例如传递数据“123”,使用密钥A’, 加密后的结果“abc”,对方收到“abc”加密文件之后自然要 使用密钥A’去解码“abc”才能得到想要的数据。那么问题来了,如何才能安全的分发密钥就成了关键。

非对称密钥,非对称密钥分为公钥和私钥。公钥用于加密数据,私钥用于解密数据,但是公钥无法对数据进行解密。由于共钥和私钥是一种不可逆的关系,所以公钥可以随意发放给任何人,而不必担心数据安全的问题,但是私钥必须自己保留。例如A和B要进行加密通信。A发送数据“123”,使用B’公钥加密得到结果“abc”,传递给B,B使用私钥B”进行解密即可得到数据。反之亦然。

既然非对称密钥这么好,我们直接使用非对称密钥不就好了么?从技术层面来说当然是这样,但是实际应用中涉及性能。非对称密钥算法加密性能不如对称密钥。所以有没有一种方法既可以安全的传输加密数据,又可以不耗损太多的性能呢?对称密钥和非对称密钥的结合。有关性能不部分可参见Performance Analysis of Data Encryption Algorithms

同样A要发送数据“123”,使用对称密钥B”,来进行加密,那么B”如何得到呢?通过非对称密钥来传递B”。大致过程如下。

Created with Raphaël 2.1.2Site_ASite_ASite_BSite_B发送公钥A'发送公钥B'彼此获取到对方的公钥使用(非对称密钥)B'的公钥来加密对称密钥A''使用(非对称密钥)A'的公钥来加密对称密钥B''安全获取到彼此用于数据加密的对称密钥

完整性和源认证。完整性和源认证是在非对称密钥算法的前提上所添加的。为什么这么说呢?因为无法保证数据的私密性,那么完整性和源认证根本无从谈起。就像两个人说悄悄话,中间者已经完全可以监听到你们谈话的内容,自然可以完完整整的修改内容。

完整性,所谓的完整性就是文件或数据在传输的过程中没有被修改,哪怕是漫无目的的修改。在文件中通常都会有一个md5。不管文件多大或文件多小,都能生成一个固定长度的md5值,并且这个值具备 “雪崩效应”、“不可逆”、“冲突避免”、“固定长度”。这么好的东西自然可以用来做完整性校验。因为哪怕是文件只修改了一个字符,md5计算出来的值也会有天壤之别。

源认证,源认证就是要保证我从对方收到的数据,真的是一个合法的源发送给我的。源认证主要用于防止中间人攻击,就是假冒一个合法的源,向对端传送数据。

在实际传输过程中,例如站点A要传数据到站点B, 明文数据通过散列函数算出一个散列值,然后将 数字签名和计算明文的散列值,通过公钥进行加密,传递到对方。对方收到数据之后会首先检查数字签名,解密成功之后确认是合法的源发给我的数据,然后才会对加密信息进行解密。

这样通过文件的散列函数确认了文件的完整性,通过数字签名解决了源认证的问题,并且通过非对称密钥算法解决文件传输加密的问题。这样就保证了网络层的安全。

封装协议和传输模式

在ipsec vpn中封装方式分为两种,一种是ESP封装一种是AH封装。我们少废话先看报文。
enter image description here

关于传输模式和隧道模式在下面有介绍,这里暂时不涉及。观察上图可以发现,AH只做了校验,并没有加密。反观ESP提供了加密、验证、校验完整功能。所以AH和ESP对比结果如下。

AH:提供源认证和完整性校验,但是不提供加密服务。不能穿越NAT
ESP:提供加密,源认证,完整性校验。

另外要说明的是AH 校验,并不是校验IP头中所有的字段,而是部分字段。这部分详细信息请参阅RFC2402。下图中黑色部分就说不校验的部分。之所以不校验这些字段是因为,这些字段在传输的过程中可能会发生改变,导致接受方校验错误而导致数据包的丢弃。

enter image description here

传输模式和隧道模式

在传输模式中分为传输模式和隧道模式。这里涉及2个点,一个是加密点和通信点。例如在一个二层以太网环境中,两台主机互相进行通信,那么他们之间的通信就是加密点等于通信点。但是如果要访问的是公网上分支站点的内部ip,此时的情况加密点和通信点并不是在一起,所以就需要使用到隧道模式。

enter image description here

密钥有效期

长时间使用相同的密钥来加密数据显然是不安全的,所以cisco默认设置3600秒的时候就会重新生成一次密钥,新生成的密钥与之前的密钥不存在衍生关系。保证了长期使用相同的密钥也不用担心暴力破解加密流量的可能性。

ESP封装方式和传输模式介绍

ESP报文结构如下,由于Wireshark解码的问题,这一部分可能观察不到。如下部分来自RFC4303和IPSec Overhead Calculator Tool。由于不同的加密方式会产生不同ESP大小,如下部分仅以此配置为准。具体查询,可参见IPSec Overhead Calculator Tool,如下部分不再赘述。

配置:

crypto isakmp policy 10
 encr aes
 hash sha512
 authentication pre-share
 group 16
 lifetime 60
crypto isakmp key cisco address 12.1.1.2       
!
crypto ipsec transform-set 123 esp-aes esp-sha-hmac 
 “mode transport or mode tunnel”
!
crypto map vpn 10 ipsec-isakmp 
 set peer 12.1.1.2
 set transform-set 123 
 match address vpn
!
ip access-list extended vpn
 permit ip host 1.1.1.1 host 2.2.2.2
!
end

enter image description here

enter image description here

Field Description
ESP Header SPI(4) 安全参数索引(Security Parameter Index)与目标地址和安全协议类型组合的32位值,用于标识要用于此数据报的安全关联。
ESP Header Sequence Number(4) 当在两个设备之间形成安全关联时,计数器字段初始化为零,每当使用此SA进行数据传输,此值将加一。 这用于防止重放攻击
Payload Data(Variable) 加密的有效载荷数据,由高层消息或封装的IP数据报组成。 还可以包括支持信息,例如某些加密方法所需的初始化向量。
ESP Trailer Padding(Variable 0 to 255) 根据需要包括用于加密或对齐的附加填充字节。
Pad Length(1) 填充字段的字节数。
ESP Trailer Next Header(1) 包含数据报中下一个报头的协议号。
ESP Authentication Data (Variable) 此字段包含应用可选ESP认证算法后产生的完整性检查值(ICV)
PACKET DETAILS(Transport Mode) value
Field Bytes
Original IPv4 Header 20
SPI (ESP Header) 4
Sequence (ESP Header) 4
ESP-AES (IV) 16
Original Data Payload 80
ESP Pad (ESP-AES) 14
Pad length (ESP Trailer) 1
Next Header (ESP Trailer) 1
ESP-SHA-HMAC ICV (ESP Trailer) 12
Total IPSec Packet Size 152
PACKET DETAILS(Tunnel Mode) value
Field Bytes
New IPv4 Header (Tunnel Mode) 20
SPI (ESP Header) 4
Sequence (ESP Header) 4
ESP-AES (IV) 16
Original Data Packet 100
ESP Pad (ESP-AES) 10
Pad length (ESP Trailer) 1
Next Header (ESP Trailer) 1
ESP-SHA-HMAC ICV (ESP Trailer) 12
Total IPSec Packet Size 168

参考文献

  1. Cisco IPSec VPN 实战指南 秦柯 著
  2. Performance Analysis of Data Encryption Algorithms
  3. Encapsulating Security Payload (ESP)
  4. RFC 2402 3.3.3.1.1.1 Base Header Fields
  5. IPSec Encapsulating Security Payload (ESP)
  6. RFC4303
  7. IPSec Overhead Calculator Tool

2017年10月12日更新

2016年11月22日星期二

【Cisco】【安全】【CCNA】Cisco Zone-Based Policy Firewall基础介绍

Cisco Zone-Based Policy Firewall基础介绍

Cisco Zone-Based Policy Firewall基础介绍

介绍

  1. Zone-Based Policy Firewall基础
  2. Zone-Based Policy Firewall实验

Zone-Based Policy Firewall基础

Zone-Based Policy Firewall(ZFW)是一种安全策略。当两个接口属于相同的Zone的时候流量可以互通,但是如果两个接口属于不同的zone的时候,默认不可互通。如果想让zone和zone之间进行通信需要单独配置相应的策略,使其互通。
Zone-Based Policy Firewall(ZFW)概念的引入相比ACL(访问控制列表),更易于管理并且ZFW提供了应用层匹配,并提供了限速的功能,更好的提供服务。
Zone的概念:
相同zone 可以互相互通。
不同zone 不能互通除非做相应的策略
不属于任何zone的任何方法都不能和zone进行通信

Zone-Based Policy Firewall实验

拓扑
enter image description here
需求:
R2Ping通R4

R3Ping通R5

R4可以Ping通R2,R4不能ping通R3

R5TelnetR2,不能TelnetR3上

配置步骤:

1. 创建zone,并将接口划分到zone上

R1(config)#zone security zone-name
R1(config-if)#zone-member security zone-name


2. 配置class-map

class-map type inspect {match-all | match-any} class-map-name

其中inspect代表”Firewall Class Map”
选择match-all或 match-any
match-all:所有都match上,这个class才match上
match-any:match任意一个条件,class就可以match上


3. 配置match条件

R1(config-cmap)#match ?
  access-group    Access group
  class-map         Class map
  protocol            PAM Protocol
  security-group  Security Group
  user-group        User Group


4. 配置policy-map关联class-map,并指定动作

policy-map type inspect policy-map-name
 class type inspect class-map-name
    { drop | inspect | pass | police}

R1(config-pmap-c)#?
Policy-map class configuration commands:
  drop            Drop the packet
  exit            Exit from class action configuration mode
  inspect         Context-based Access Control Engine
  no              Negate or set default values of a command
  pass            Pass the packet
  police          Police
  service-policy  Deep Packet Inspection Engine

drop:丢弃流量。
inspect:数据包状态检查。
pass:流量通过
police:流量管制(限速)

注:pass和inspect动作。
pass只是放通单向流量,如果网络中有交互式数据流,例如tcp或icmp等,那么配置pass动作的时候需要考虑回向流量。
而inspect,可以事先检测流量,是否放通,如果检测通过无需重新配置,回向流量不做策略也能放通。
有关数据包状态检查,可参见:Cisco ASA 5500 Series Configuration Guide using the CLI, 8.2 Stateful Inspection Overview


5. 配置zone-pair关联policy-map

 zone-pair security zone-pair-name source zone-name destination zone-name
 service-policy type inspect policy-map-name

关键配置

!
interface Ethernet0/0
 ip address 12.1.1.1 255.255.255.0
 zone-member security 1
 ip ospf 1 area 0
!
interface Ethernet0/1
 ip address 13.1.1.1 255.255.255.0
 zone-member security 1
 ip ospf 1 area 0
!
interface Ethernet0/2
 ip address 14.1.1.1 255.255.255.0
 zone-member security 2
 ip ospf 1 area 0
!
interface Ethernet0/3
 ip address 15.1.1.1 255.255.255.0
 zone-member security 2
 ip ospf 1 area 0
!
interface Ethernet1/0
 no ip address
 shutdown
!
interface Ethernet1/1
 ip address 16.1.1.1 255.255.255.0
 ip ospf 1 area 0
!!
ip access-list extended R4-ping-R2-access-list
 permit ip host 14.1.1.4 host 12.1.1.2
ip access-list extended R5-telnet-R2-access-list
 permit ip host 15.1.1.5 host 12.1.1.2
!!
class-map type inspect match-all zone1-to-zone2-telnet-class-map
 match protocol telnet
class-map type inspect match-all zone2-to-zone1-telnet-class-map
 match access-group name R5-telnet-R2-access-list
 match protocol telnet
class-map type inspect match-all zone1-to-zone2-icmp-class-map
 match protocol icmp
class-map type inspect match-all zone2-to-zone1-icmp-class-map
 match access-group name R4-ping-R2-access-list
 match protocol icmp
!
policy-map type inspect zone2-to-zone1-policy-map
 class type inspect zone2-to-zone1-icmp-class-map
  inspect
 class type inspect zone2-to-zone1-telnet-class-map
  inspect
 class class-default
  drop
policy-map type inspect zone1-to-zone2-policy-map
 class type inspect zone1-to-zone2-icmp-class-map
  inspect
 class type inspect zone1-to-zone2-telnet-class-map
  inspect
 class class-default
  drop
!
zone security 1
zone security 2
zone-pair security zone1-to-zone2-zone-pair source 1 destination 2
 service-policy type inspect zone1-to-zone2-policy-map
zone-pair security zone2-to-zone1-zone-pair source 2 destination 1
 service-policy type inspect zone2-to-zone1-policy-map
!

视频部分参见:https://www.youtube.com/watch?v=5vrDeMxQC8E

参考文献

  1. Zone-Based Policy Firewall Design and Application Guide
  2. Cisco ASA 5500 Series Configuration Guide using the CLI, 8.2

2017年10月12日更新