ipsec设置dhcp服务器设置


IPsec是IP通信提供安全性的一系列协议和服务的集合,工作在IP层,可以为上层协议和应用提供透明的安全服务。

认证机制:通过对IP报文进行Hash(如MD5,SHA-1等),接收方收到报文后,对报文进行同样的Hash算法得出同样的Hash值,从而确认报文未在中途发生篡改(使用场景限于主机和主机之间,且中间没有NAT设备对报文IP进行转换,适用场景少,较少使用)。

加密机制:通过对数据进行加密运算(DES,3DES,AES等加密算法)来保证数据的机密性,以防数据在传输过程中被窃听,同时通过报文序列号方式确保报文不被重放,防止中间人攻击。

IP协议号为51,工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(MessageDigest)、SHA-1(SecureHashAlgorithm)等。MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。

IP协议号为50,使用较广)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。

用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

IPsec对数据流提供的安全服务通过安全联盟SA来实现,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。一个SA就是两个IPsec系统之间的一个单向逻辑连接,输入、输出数据流分别由输入SA(安全联盟)与输出SA(安全联盟)分别处理。安全联盟由一个三元组(SPI、IP目的地址、安全协议号---AH或ESP)来唯一标识。安全联盟可通过手工配置和自动协商两种方式建立。

手工建立安全联盟的方式是指用户通过在两端手工设置一些参数,然后在接口上应用安全策略建立安全联盟。自动协商方式由IKE生成和维护,通信双方基于各自的安全策略库经过匹配和协商,最终建立安全联盟而不需要用户的干预。

是一个32比特的数值,在每一个IPSec报文中都携带该值。SPI、IP目的地址、安全协议号三者结合起来共同构成三元组,来唯一标识一个特定的安全联盟。在手工配置安全联盟时,需要手工指定SPI的取值。为保证安全联盟的唯一性,每个安全联盟需要指定不同的SPI值;使用IKE协商产生安全联盟时,SPI将随机生成。

在IPsec中,一组具有相同源地址/掩码、目的地址/掩码和上层协议的数据集称为数据流。通常,一个数据流采用一个访问控制列表(ACL)来定义,所有为ACL允许通过的报文在逻辑上作为一个数据流。为更容易理解,数据流可以比作是主机之间一个的TCP连接。IPsec能够对不同的数据流施加不同的安全保护,例如对不同的数据流使用不同的安全协议、算法或密钥。

用于动态建立SA,SA有生命周期,如果安全策略要求建立安全、保密的连接,但又不存在与该连接相应的SA,IPsec会立刻启动IKE来协商SA。

ISAKMP(SecurityAssociationKeyManagementProtocol,安全联盟密钥管理协议):

定义了协商、建立、修改和删除SA的过程和包格式,只是提供了一个通用框架,并没有定义具体的SA格式,与IKE独立,可以被不同的密钥交换协议使用。IKE使用ISAKMP消息来协商并建立SA。

期望在GW1与GW2两个网关(IPsec实体)之间建立IPsec隧道,GW1内网中的192.168.100.0/24子网与GW2内的192.168.66.0/24子网之间(兴趣流)通过IPsec隧道实现安全通讯。

发送者和接受者必须先计算出各自的cookie(可以防重放和DOS攻击),这些cookie用于标识每个单独的协商交换消息。RFC建议将源目IP,源目端口,本地生成的随机数,日期和时间进行散列操作.cookie成为留在IKE协商中交换信息的唯一标识,实际上cookie是用来防止DOS攻击的,它把和其他设备建立IPSEC所需要的连接信息不是以缓存的形式保存在路由器里,而是把这些信息HASH成个cookie值。