1.Ipsec的介绍
IPSec (Internet Protocol Security)协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。它是由IETF(Internet Engineering Task Force,Internet 工程任务组)开发的,可为通讯双方提供访问控制、无连接的完整性、数据来源认证、抗重播、加密以及对数据流分类加密等服务。
IPSec 是网络层的安全机制。通过端对端的网络层包信息的保护的安全性来提供主动的保护以防止专用网络与 Internet 的***。在上层应用程序即使没有实现安全性,也能够自动从网络层提供的安全性中获益。
2.Ipsec的安全特性
不可否人性 :"不可否认性"可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过消息。"不可否认性"是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于在理论上只有发送者才唯一拥有私钥,也只有发送者才可能产生该数字签名,所以只要数字签名通过验证,发送者就不能否认曾发送过该消息。但"不可否认性"不是基于认证的共享密钥技术的特征,因为在基于认证的共享密钥技术中,发送方和接收方掌握相同的密钥。
抗重播性
ipsec的接收端在接受到数据包的时候,会检测数据包的数据段的序列号(Sequence Number)从1开始的32位单增序列号,不允许重复,唯一地标识了每一个发送数据包。利用该序列号来验证数据包的唯一性并拒绝接受已经过时或者重复发送的数据报文,以防止***者截获破译信息后,再用相同的信息包冒取非法的访问权(即使这种冒取行为发生在数月之后)。
数据完整性
ipsec接收端利用MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等hash算法对来自对方发送的数据包进行验证,防止数据包在传输过程中被人篡改,从而确保数据的完整性和一致性。IPSec利用Hash函数为每个数据包产生一个加密检查和,接收方在打开包前先计算检查和,若包遭篡改导致检查和不相符,数据包即被丢弃。
数据可靠性(加密)
ipsec发送方在传输前通过DES、3DES、AES对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信息也无法被读。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。
数据来源认证
IPsec在接收端通过pre-shared -key(域共享密钥、证书、kerberos v5等来认证发送IPsec报文的发送端是否合法,从而实现数据来源的认证。
3.安全协议中AH协议与ESP协议的比较
AH协议(Authentication Header,认证头,IP协议号为51,使用较少)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。
ESP协议(Encapsulated Security Payload,封装安全载荷,IP协议号为50,使用较广)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。
4.Ipsec的两种工作模式
隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。
传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯 。
tunnel和transport模式下的数据封装形式,data为传输层数据
5.加密算法与验证算法
验证算法
AH 和ESP 都能够对IP 报文的完整性进行验证,以判别报文在传输过程中是否被篡改。验证算法的实现主要是通过杂凑函数。杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。一般来说IPSec 使用两种验证算法:
MD5:MD5 输入任意长度的消息,产生128bit 的消息摘要。
SHA-1:SHA-1 输入长度小于2 的64 次方比特的消息,产生160bit 的消息摘要。SHA-1 的摘要长于MD5,因而是更安全的。
加密算法
ESP 能够对IP 报文内容进行加密保护,防止报文内容在传输过程中被窥探。加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。
StoneOS 实现了三种加密算法:
DES(Data Encryption Standard):使用56bit 的密钥对每个64bit 的明文块进行加密。
3DES(Triple DES):使用三个56bit 的DES 密钥(共168bit 密钥)对明文进行加密。
AES(Advanced Encryption Standard):StoneOS 实现了128bit、192bit 和256bit密钥长度的AES 算法。
6.Ipsec的基本概念
数据流:在 IPSec 中,一组具有相同源地址/掩码、目的地址/掩码和上层协议
的数据集称为数据流。通常,一个数据流采用一个访问控制列表(acl)来定
义,所有为ACL允许通过的报文在逻辑上作为一个数据流。为更容易理解,
数据流可以比作是主机之间一个的TCP 连接。IPSec 能够对不同的数据流施
加不同的安全保护,例如对不同的数据流使用不同的安全协议、算法或密钥。
安全策略:由用户手工配置,规定对什么样的数据流采用什么样的安全措施。
对数据流的定义是通过在一个访问控制列表中配置多条规则来实现,在安全策
略中引用这个访问控制列表来确定需要进行保护的数据流。一条安全策略由
“名字”和“顺序号”共同唯一确定。
安全策略组:所有具有相同名字的安全策略的集合。在一个接口上,可应用或
者取消一个安全策略组,使安全策略组中的多条安全策略同时应用在这个接口
上,从而实现对不同的数据流进行不同的安全保护。在同一个安全策略组中,
顺序号越小的安全策略,优先级越高。
安全联盟(SecurityAssociation,简称SA):IPSec 对数据流提供的安全服
务通过安全联盟SA 来实现,它包括协议、算法、密钥等内容,具体确定了如
何对IP 报文进行处理。一个SA 就是两个IPSec 系统之间的一个单向逻辑连
接,输入数据流和输出数据流由输入安全联盟与输出安全联盟分别处理。安全
联盟由一个三元组(安全参数索引(SPI)、IP 目的地址、安全协议号(AH
或ESP))来唯一标识。安全联盟可通过手工配置和自动协商两种方式建立。
手工建立安全联盟的方式是指用户通过在两端手工设置一些参数,然后在接口
上应用安全策略建立安全联盟。自动协商方式由IKE 生成和维护,通信双方基
于各自的安全策略库经过匹配和协商,最终建立安全联盟而不需要用户的干
预。
安全参数索引(SPI):是一个32比特的数值,在每一个IPSec 报文中都携
带该值。SPI、IP 目的地址、安全协议号三者结合起来共同构成三元组,来唯
一标识一个特定的安全联盟。在手工配置安全联盟时,需要手工指定SPI 的取
值。为保证安全联盟的唯一性,每个安全联盟需要指定不同的SPI 值;使用IKE
协商产生安全联盟时,SPI 将随机生成。
安全提议:包括安全协议、安全协议使用的算法、安全协议对报文的封装形式,
规定了把普通的IP 报文转换成IPSec 报文的方式。在安全策略中,通过引用
一个安全提议来规定该安全策略采用的协议、算法等。
7.Ipsec的基本配置
创建加密访问控制列表
acl acl-number
rule{ normal | special }{ permit | deny } pro-number[source source-addrsource-wildcard | any ][source-port operator port1 [ port2 ] ] [ destinationdest-addr dest- wildcard | any ][destination-port operator port1 [ port2 ] ][icmp-type icmp-type icmp-code][logging]
定义安全提议 ipsecproposal proposal-name
设置安全协议对 IP 报文的封装模式encapsulation-mode { transport | tunnel }
选择安全协议transform {ah-new | ah-esp-new | esp-new }
选择加密算法与认证算法
Esp协议下transform { ah-new | ah-esp-new | esp-new }
AH协议下 transform { ah-new | ah-esp-new | esp-new }
创建安全策略
手工创建安全策略的配置包括:
手工创建安全策略ipsec policy policy-namesequence-number manual
配置安全策略引用的访问控制列表security acl access-list-number
指定安全隧道的起点与终点 tunnel local ip-address tunnel remoteip-address
配置安全策略中引用的安全提议 proposal proposal-name
配置安全策略联盟的 SPI 及使用的密钥
SPI的配置
sa inbound { ah |esp } spi spi-number
sa outbound { ah |esp } spi spi-number
密钥的配置
AH16进制密钥 sa { inbound | outbound } ah hex-key-stringhex-key
AH 字符密钥 sa { inbound | outbound } ah string-keystring-key
ESP16进制密钥 sa { inbound | outbound }esp encryption-hex hex-key
ESP字符密钥 sa { inbound | outbound } esp string-keystring-key
在接口上应用安全策略组 ipsec policy policy-name
IKE 创建安全策略联盟的配置包括:
用 IKE 创建安全策略联盟
ipsec policy policy-name sequence-numberisakmp
配置安全策略引用的访问控制列表
security acl access-list-number
指定安全隧道的终点
tunnel remote ip-address
配置安全策略中引用的安全提议
proposal proposal-name1 [proposal-name2...proposal-name6 ]
配置安全联盟的生存时间(可选)
配置全局时间
ipsec sa global-duration time-basedseconds
ipsec sa global-duration traffic-basedkilobytes
配置独立时间
sa duration {time-based seconds |traffic-based kilobytes }
8.Ipsec ***的案例
实现设备:华为S3526E交换机一台,华为的2621路由器三台
实验环境:通过ipsec实现192.168.1.0网段与192.168.2.0、192.168.3.0网段之间能够通过***互访,而192.168.2.0网段与192.168.3.0网段不建立***连接。
拓扑图:
具体配置如下:
交换机的配置:
路由器R1的配置:
验证到交换机各个svi接口的互通性
创建到路由器R2访问列表、安全协议及安全策略:
创建到路由器R3访问列表、安全协议及安全策略的配置同上。这里就不在列出了。
路由器R2上的配置:
路由器R3上的配置:
测试到各个路由器外网口的互通性
创建R2到路由器R1访问列表、安全协议及安全策略:
实验测试:
2.0网段到1.0网段:
3.0网段到1.0网段: