DHCP技术及其安全性的研究

更新时间:2024-05-13 23:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

由于可以方便的管理IP地址,动态的为网络中的客户端分配IP地址,进行网络配置,DHCP成为了网络中基础性的服务,在现代网络体系架构中被广泛应用。

DHCP技术动态地为主机配置参数,可以有效的解决目前IP地址资源不足和无线网络用户移动性等问题,并能减轻网络管理员的工作量,减少手动网络配置的错误,使得IP网络地址的分配和管理变的容易,为用户上网提供了方便,但是对于客户端和服务器来说,DHCP本身没有权限控制机制,恶意用户便可以很容易地获得IP访问内部或外部网络,存在着很大的安全隐患。

关键字:网络; DHCP; IP地址; 安全

Abstract

Because of the easy to management IP address,dynamically allocated IP address for the client in the network,For network configuration,DHCP became the basic service in network,in the modern network system architecture is widely used.

DHCP technology to dynamically configure the parameters for the host,can effectively resolve the IP address resource shortage problem and wireless network user mobility problem and so on,and can reduce the workload of the administrator,reduce the mistakes in manual network configuration,makes the allocation and management of the IP network address becomes easy,DHCP technology provides the convenience for the online user,But for the client and the server, DHCP itself has no access control mechanism,a malicious user can easily get the IP access to the internal and external network,There are a lot of potential safety hazard.

Keyword: network,DHCP,IP address,safety

第1章 绪 论

1.1 研究背景

TCP/IP网络在Internet领域中占据的比重越来越大。计算机的普及,现代生活网络化、信息化的发展,使得网络已经成为人们沟通与交流不可分割的一部分。

1.1.1 研究DHCP技术的重要性

1. 缓解IP地址的缺乏

在Internet网络规划中,现行采用的是IPv4(IP第四版,32bit的IP地址)的协议标准。由于IP地址资源日趋紧张,而IPv6(IP第六版,128bit的IP地址)尚未普及,采用DHCP服务动态的给客户端分配IP地址,大大提高了IP地址的利用率,有效缓解了IP地址紧缺的问题。

2. 解决客户端经常移动的问题

随着笔记本电脑的普及,大量的移动客户端入网时需要配置网络参数,这样使网络具有了很强的动态性,在这种情况下,客户端就必须修改自己的IP地址,而如果使用DHCP服务,计算机将自动联系DHCP服务器并且取得新子网中的一个IP地址。

3. 避免不必要的错误

在常见的小型网络中,网络管理员基本上是采用手动配置IP地址的方法,而到了中大型网络,这种方法就不太适用了,特别是大型网络中。如果所有主机的IP地址都靠管理员的手工设置,并且必须配置的网络参数还包括子网掩码、网关地址、DNS地址,这种方式很容易出错,还会使网络中的IP发生冲突带来许多的不便,即使客户端不再使用该IP地址,该IP地址仍然被其占据不能被其它客户端使用。因此,为了解决手动分配IP地址方法存在的弊端, 引入了DHCP技术。 1.1.2 研究DHCP技术安全的必要性

DHCP系统早在1990s就设计出来了,那个时期的互联网络数量相对来说很少, 因此DHCP本身基本没有安全性设计可言。随着互联网规模日益扩大,网络安全问题日益突出,DHCP系统也面临着严重的安全威胁,DHCP不仅运行于不具有安全性的UDP/IP 协议层之上,而且DHCP协议本身没有任何安全措施,一旦DHCP遭受攻击,整个DHCP服务覆盖的网络范围都将遭受无法估量的损失。

DHCP安全是一个很重要的问题,它与DHCP的应用息息相关。

1.2 论文研究内容

1.2.1 DHCP协议及相关协议的研究

首先是了解DHCP协议中所规范的为网络中的客户端动态地配置IP地址和网络参数的过程。搜集目前应用DHCP协议的领域,分析DHCP服务器在与客户端交互信息的过程和为客户端配置的选项信息。研究在最新的应用领域中对DHCP的选项信息的定义和内容的扩展,以及有关DHCP方面的最新的技术动态。

1.2.2 DHCP面临的安全隐患及解决措施

查阅大量资料,了解网络中面临的威胁和网络安全的关键技术。结合DHCP工作原理和DHCP服务器与客户端交互的过程,分析在采用DHCP技术网络中,对DHCP服务器和客户端的网络威胁。针对这些威胁产生的原因及对网络的危害程度和其危害原理,根据DHCP服务器工作的特点, 研究对应的方法和策略。

1.2.3 DHCP服务器容灾技术

了解最新的容灾技术,对比不同的容灾技术和方法进行详细比较,总结出不同的容灾技术对应的不同场合。研究DHCP服务器应用的范围,和工作特点,针对DHCP服务器的应用找出适合的方法和技术。在出现灾难或者意外时,为网络的畅通使用,DHCP服务器的容灾技术不仅仅是数据上的备份,还要在应用上保证为网络中的计算机提供连贯的IP服务,保证DHCP服务器配置文件和活动租约信息等所有数据的完整性和安全性。在发生故障时,备用DHCP服务器平滑的接替灾难中的DHCP服务器提 供正常的IP服务。

1.3 论文结构章节安排

第一章简要介绍了本文的研究背景、意义和研究的主要内容,最后还简单介绍了论文内容的安排。

第二章介绍了DHCP协议,工作原理及过程,DHCP客户端地址的申请和DHCP中继服务。

第三章是本文的重点,主要研究DHCP常见的易受到的威胁,分析DHCP威胁因素,并针对这些威胁提出了主动检测,检查MAC地址,LANA系统,SPINACH方法和DHCP消息认证的方法,消除DHCP威胁结合的网络安全技术。 第四章介绍容灾技术的概念和评测参数,研究实现DHCP服务器容灾的可行方法—为DHCP服务器提供冗余服务器。

第五章结束语, 总结论文的研究成果, 并展望后续的研究工作。

第2章 DHCP技术

2.1 DHCP概述

2.1.1 DHCP的概念

DHCP[1]的全称是Dynamic Host Configuration Protocol(动态主机配置协

议),它的两个主要组成部分是协议(用在DHCP服务器和客户端之间交流TCP/IP配置参数,协议分装在用户数据报协议UDP数据报中)和服务(用于管理DHCP客户端的请求和维护TCP/IP配置参数的数据库)。DHCP的目的是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。DHCP用于给多个客户端集中分配IP地址以及相关的配置参数,将TCP/IP的设置和IP地址统一起来管理,避免了不必要的地址冲突问题。常常用在众多计算机的网络管理中,从而减少了网络管理员手动配置地址带来的不便。

DHCP的前身是BOOTP[2]。BOOTP原本是用于无磁盘主机连接的网络上面的:网络主机使用BOOTROM而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:在设定前须事先获得客户端的硬件地址(MAC),而且,与IP的对应是静态的。换而言之,BOOTP

非常缺乏“动态性”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。DHCP可以说是BOOTP的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;客户端则会使用从服务器分配下来的IP数据。与BOOTP比较起来,DHCP透过“租约”的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考虑,DHCP 也完全照顾了BOOTP Client 的需求。

2.1.2 DHCP分配方式

DHCP是基于C/S(客户端/服务器)模式的。这种模式下,根据DHCP协议,把DHCP服务器主机设计成提供初始化参数的主机,传递网络配置参数给需要的网络主机。DHCP协议支持三种IP地址分配方式[2]。第一种是自动分配(Automatic Allocation),一旦DHCP客户端第一次成功的从DHCP服务器端租用到IP地址之后,就永远使用这个地址。第二种是动态分配(Dynamic Allocation),当DHCP客户端第一次从DHCP服务器端租用到IP地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个IP地址,以便给其它客户端使用,当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的IP地址。第三种是手动分配,客户端IP地址由网络管理员指定,DHCP协议仅用来向客户端传递指定的地址。如表2-1所示,列出了动态TCP/IP配置与手动TCP/IP配置的特点对比。

表 2-1 DHCP动态TCP/IP配置与手动TCP/IP配置的特点对比 动态TCP/IP配置 确保网络中客户端得到的IP信息是合法的和可用的。 只配置服务器即可,避免多个用户使用相同IP地址而产生的冲突。 手动TCP/IP配置 使用不正确的IP地址可能会导致网络问题,无法访问网络资源。 输入IP地址、子网掩码、默认网关、DNS(IP、MASK、GATEWAY、DNS)时可能会有输入错误或输入无效的IP地址,导致了通信无法常进行。 能动态的设定IP地址之外,还可以将一些IP保留下来给一些特殊用途的机器使用。 在每台客户端上手动输入IP 地址,耗时较多。 2.1.3 DHCP端口号 DHCP协议报文使用UDP协议封装。DHCP服务器监听UDP端口号67,DHCP客户端监听UDP端口号68。DHCP服务器和客户端分别使用不同的端口而不是使用同一个端口的原因是,DHCP服务器的应答是可以广播的,使用不同的UDP端口号,可以确保只有客户端会接收应答消息。

2.1.4 DHCP报文

1. DHCP报文的分组格式,如表 2-2。

表 2-2 DHCP报文的分组格式 链路层头 IP首部 UDP首部 DHCP消息 14字节 20字节 8字节 548字节(max)

2. DHCP消息格式,如表 2-3。

表 2-3 DHCP消息格式 op(1) htype(1) xid(4) secs(2) ciaddr(4) yiaddr(4) siaddr(4) giaddr(4) chaddr(16个字节) sname(64个字节) file(128个字节) options(可变长variable) flags(2) hlen(1) hops(1) op字段:operator,表示当前报文是客户端的请求还是服务器的应答, 为1(1=BOOTREQUEST)时表示是客户端的请求, 为2(2=BOOTREPLY)时表示是服务器的应答。

htype字段:hardware type,表示客户端的网络硬件地址类型,如htype为1,表示客户端的网络硬件地址是10MB的以太网类型。

hlen字段:hardware length,表示客户端的网络硬件地址长度,通常对于以太网来说,硬件地址长度为6字节。

hops字段: 表示当前的DHCP报文经过的DHCP中继的数目,客户端或服务器发出DHCP报文时, 此字段都初始化为0,每经过一个DHCP中继,此字段就会加1,此字段的作用是限制DHCP报文不要经过太多的DHCP中继,协议规定,当hops大于4 (现在也有规定为16) 时,这个DHCP报文就不能再进行处理, 而是丢弃。

xid字段:Transaction ID,事务ID,客户端每次发送DHCP请求报文时选择的随机数, 与服务器之间同步消息和消息的响应,用它来匹配服务器的相应报文。客户端会丢弃xid不匹配的相应的报文。

secs字段:由客户端指定的时间,指的是开始地址获取和更新进行后的时间数,此字段一般没有多大意义,最初设计此字段是为了让DHCP服务器在繁忙时,优先处理此字段大的DHCP请求(因为此字段越大说明这个客户端等待的时间就越长)。

flags字段:在BOOTP中此字段是保留不用的,在DHCP协议中也只使用了其左边的最高位,其格式如表 2-4。

表 2-4 flags字段

0 15 B 必须为0 flags字段整个字段占16比特位,其中,最左边比特位被解释为广播响应标志位,所有其它比特位保留备用,必须被客户端设置为0,服务器和DHCP中继忽略这些比特位。当客户端不能接收单播的DHCP响应报文时,必须把广播响应标志位置为1,否则置为0。而DHCP服务器响应报文是广播还是单播,就将根据此广播响应标志位来判断。

ciaddr字段:client ip address,表示客户端自己的IP地址。可以是服务器分配给客户端的IP地址,也可以是客户端已有的IP地址。此字段不为0的原则就是客户端能够使用此IP地址接收报文。DHCP服务器发现此字段不为0时,可以直接将响应报文单播给客户端。

yiaddr字段:your ip address,表示服务器分配给客户端的IP地址。当DHCP服务器响应客户端的DHCP请求时,将把分配给客户端的IP地址填入此字段。

siaddr字段:server ip address,表示客户端获取启动配置信息的服务器IP地址,一般是TFTP服务器的IP地址。

giaddr字段:gateway ip address,记录第一个DHCP中继代理的IP地址。当客户端发出DHCP请求报文后,如果网络中存在DHCP中继,则第一个DHCP中继转发整个DHCP请求报文后,就会把自己的IP地址填入此字段(随后的DHCP中继将不再改写此字段,只是把hops加1)。DHCP服务器将会根据此字段为用户分配IP地址,并把响应报文转发给此DHCP中继代理,由DHCP中继代理再转发给客户端。

chaddr字段: client hardware address,记录客户端的实际硬件地址内容。当客户端发出DHCP请求报文时,将把自己的网卡硬件地址填入此字段,DHCP服务器一般都会使用此字段来唯一标识一个客户端。而且此字段与前面的htype hlen字段必须一致。如当htype hlen分别为l和6时,此字段必须填入6字节的以太网MAC地址。

sname字段:server name,记录客户端获取启动配置信息的服务器名字。此字段由DHCP服务器填写,而且是可选的,如果填写,必须是一个以0结尾的字符串。

file字段:file name,记录客户端的启动配置文件名。此字段由DHCP服务器填写,而且是可选的,如果填写,必须是一个以0结尾的字符串。

options字段:是可变长选项字段,对于BOOTP协议,此字段为64字节协议,对于DHCP协议,此字段为64-312字节,当客户端需要更长时,可以与DHC服务器协商。此字段中包含了大量可选的终端初始配置信息和网络配置信息,如决定终端的IP特性配置信息,域名信息,标识终端的特殊信息,终端的默认网关IP地址,DNS服务器的IP地址,WINS服务器的IP地址,用户使用IP的有效租期等消息。正是因为有了此字段,DHCP协议才能够给客户端提供大量的配置信息。

3. DHCP报文类型

DHCP报文分为请求报文和应答报文共8种,其中请求报文分别是DHCPDISCOVER、DHCPREQUEST、DHCPNAK、DHCPDCLINE、DHCPRELEASE和DHCPINFORM应答报文是DHCPOFFER和DHCPDACK。

消息类型及对应的功能如表 2-5所示。

表 2-5 DHCP消息和功能说明

类型字段 1 2 DHCP报文类型 DHCPDISCOVER DHCPOFFER 功能 客户端进行广播以确定本地可用的服务器。 服务器应答客户端的DHCPDISCOVER消息。 3 DHCPREQUEST 客户端发给服务器的消息,作用有三个:从一台服务器请求提供的配置参数(此时客户端也就拒绝了其他服务器提供的参数);系统重新启动后, 客户端利用这个消息确认先前分配的网络地址是否仍然有效;为一个特定的网络地址延长租约。 4 DHCPDACK 服务器发给客户端的配置参数,包括已提交的网络地址。 5 DHCPNAK 服务器发给客户端的消息,告知客户端当前使用的网络地址无效或者租期已满。 6 DHCPDCLINE 客户端发给服务器的消息,告知服务器此网络地址已经被使用。 7 DHCPRELEASE 客户端发给服务器的消息,告知服务器客户端不再使用此地址,取消剩余租约。 8 DHCPINFORM 客户端发给服务器的消息,仅要求本地配置参数,客户端已经配置好了网络地址,不需要再发送网络地址了。 2.2 DHCP工作原理及过程 2.2.1 DHCP客户端状态

DHCP客户端有九种状态,分别是:HALT,INIT,SELECTING,

REQUESTING,BOUND,RENEWING,REBINDING,INIT-REBOOT,在DHCP系统的实现中可以根据实际需要进行裁减,不必实现全部的状态。其中,HALT是还未初始化的停止状态;INIT是初始化完成即将执行DHCP协议的状态;

SELECTING是选择服务器提供的offer的状态;REQUESTING是客户端向服务器请求分配IP地址和相关配置信息的状态;BOUND是客户端根据服务器提供的配置参数配置完成的状态;RENEWING是客户端续约的状态;REBINDING是客户端重绑定的状态;INIT-REBOOT是客户端重启前的初始化状态;REBOOTING客户端重启的状态。

2.2.2 DHCP客户端地址首次申请

DHCP Server Selected DHCP客户端接入网络时,会进行首次地址申请[3]。申请过程如图 2-1所示。 客户端 Client DHCP Server No Selected 客户机接入网络 Begin initialization 广播发现报文阶段 DHCPDISCOVER 决定配置 先传回应答报文 DHCPOFFER 客户端收集应答 Collects replies 后传回应答报文 DHCPOFFER 客户选择配置 Selects configuration 广播请求报文阶DHCPREQUEST 提交配置 传回应答报文 DHCPACK 初始化完成 Initialization complete 广播请求报文阶DHCPREQUEST 广播发现报文阶段 DHCPDISCOVER 决定配置

图 2-1 客户端首次地址申请

DHCP客户端首次地址申请可以分为四个阶段[4]: 发现阶段,提供阶段,选择阶段,确认阶段,各过程中DHCP服务器和客户端的交互如下: 1. 发现阶段

客户端寻找服务器的阶段。客户端接入网络时,处于初始化状态,客户端并不知道服务器的IP地址,它会向网络发出一个DHCPDISCOVER报文来寻找DHCP服务器。由于客户端本身没有IP地址,也不知道DHCP服务器的IP地址,因而以0. 0. 0. 0作为源地址,255. 255. 255. 255为目标地址发送IP地址租用请求,向网络进行广播DHCPDISCOVER报文,其中DHCPDISCOVER报文包含客户端的MAC(Media Access Control,媒体访问控制,通称网卡硬件地址)地址和计算机名称,以便让DHCP服务器知道是谁在发送。这一过程也被称为IP租约请求(IP Lease Request),即客户端向未知的DHCP服务器请求一个IP地址。发现阶段客户端的处理过程如下图 2-2所示:

接口初始化 DHCP Client初始化 超时重发 DHCPDISCOVER 图 2-2 发现阶段客户端的处理

接口激活DHCP 等待回应的 DHCPOFFER 延时发送 DHCPDISCOVER 2. 提供阶段

服务器向客户端提供网络配置参数的阶段。这个阶段在网络中接收到客户端DISCOVER报文的DHCP服务器就会做出响应,提供可用的IP租用地址。如果DHCP地址池中有足够的IP地址, 并且能够确认该IP地址对于该客户端所在的网络是一个合法的地址,那么这个DHCP服务器就会对这个请求回复一个DHCPOFFER消息,其中包含了该客户端的MAC地址,提供的IP地址,子网掩码,租期和提供该DHCP服务的服务器(Offering DHCP Server)的地址。这一个过程也被称为提供IP租约(IP Lease Offer),此时客户端还不能使用该IP地址。提供阶段服务器的处理如图 2-3所示

记录这条租约 没有冲突 地址冲突检查 收到 DHCPDISCOVER 记录接收报文的接口IP 根据接口IP查找地址池 创建租约:IP+Client ID+租期 从地址池中分配一个IP 将租约期限设为60秒,租约状态为OFFER 记录这条租约 冲突 释放租约,把IP加入冲 突列表,并重新分配IP 图 2-3 DHCP提供阶段服务器的处理

3. 选择阶段

客户端选择某台DHCP服务器提供的网络配置参数的阶段。如果客户端收到网络上多台DHCP服务器的响应,但它只选择接收到的第一个DHCPOFER报文,然后它以广播形式发送一个DHCPREQUEST报文作为响应,表示已接收其中某一个DHCP服务器提供的IP,该消息中包含向它所选定的第一个OFFER报文中的网络配置参数和它选择的DHCP服务器的消息。这样,其他的服务器收到整个消息后就会收回它们的OFFER,并随时准备向下一个客户端提供IP地址。这一过程也被称为客户端选择IP租约(IP Lease Selection)。在这一过程中,客户端还会向网络发送一个ARP消息,查询网络上面有没有其它机器使用该IP地址,如果发现该IP已经被占用,客户端则会发送一个DHCPDECLINE消息给DHCP服务器,拒绝接受其DHCPOFFER,并重新发送DHCPDISCOVER信息。事实上,并不是所有DHCP客户端都会无条件接受DHCP服务器的OFFER,尤其是主机上有安装其它TCP/IP相关的客户软件。客户端也可以用DHCPREQUEST向服务器提出DHCP选择,而这些选择会以不同的号码填写在 DHCP Option Field 里面:换一句话说,在DHCP服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些TCP/IP设定,而主动权永远在客户端这边。 4. 确认阶段

DHCP服务器确认所提供的网络配置参数。当DHCP服务器接收到客户端的DHCPREQUEST消息之后,便向客户端发出一个DHCPACK响应,包含它所提供的IP地址及其他配置信息的DHCPACK确认报告,以确认IP租约的正式生效,也就结束了一个完整的DHCP工作过程。这一过程叫确认IP租约(IP Lease Acknowledgement)。确认阶段服务器的处理如下图 2-4所示。

收到

DHCPREQUEST 根据客户端ID

查找租约 找到租约 比较租约中的IP是否等于Request IP Address 相等 不相等 将租约状态改为Commit 发送DHCPNAK 发送DHCP ACK 图 2-4 DHCP确认阶段服务器的处理

确认阶段客户端的处理如下图 2-5所示:

收到DHCP消息 判断消息类型 是DHCPNAK 重新开始申请 是DHCPACK

发送免费ARP 地址冲突检查 有冲突 无冲突 发送DHCPCLINE 绑定IP和其他配置参数进入BOUND状态 重新开始申请 等待续约 图 2-5 DHCP确认阶段客户端的处理

2.2.3 DHCP客户端再次登录与续约机制

首次地址申请“租约”形成后,DHCP服务发挥作用,在不同的“租用期限”将会经历以下几个阶段[5]

重新登录:它将尝试更新上次关机时拥有的IP租用,即客户端直接发REQUEST请求报文,该REQUEST报文和第一次的REQUEST报文不同之处在于没有DHCP服务器的消息,所有的DHCP 服务器都会收到该报文。如果先收到ACK报文,则继续使用现有IP地址,并更新其租期;如果先收到NAK报文,则发送DISCOVER报文,开始新一轮的IP租用过程;如果未收到任何服务器的ACK或NAK报文,客户端将尝试联系现有IP租用中列出的缺省网关,如果联系成功且租用尚未到期,客户端则认为自己仍然处于现有IP租用时的相同子网上(没有被移走),继续使用现有的IP地址。如果未能与缺省网关联系成功,客户机则认为自己已经被移到不同的子网上,将会开始新一轮的IP租用过程。客户端重新登录网络地址申请如图 2-6所示。

DHCP Server Selected 客户机 Client 开始初始化 Begins initialization DHCP Server No Selected 广播请求报文阶段 DHCPREQUEST 决定配置 广播请求报文阶段 DHCPREQUEST 决定配置 DHCPRACK DHCPRACK 忽略其它DHCPRACK 图 2-6客户端重新登录网络地址申请

更新租约阶段:DHCP协议使用租约机制实现网络地址的动态配置。一旦DHCP客户端成功地从服务器那里获得网络地址时,服务器上就会生成一个该客户端的租约表项,该表项记录了客户端标识,网络地址及租约期限等。系统约定,客户端的IP租约到1/2期限时,进入RENEWING状态,客户端会直接使用已经租用到的IP地址,向DHCP服务器单播发出DHCPREQUEST报文。如果服务器是可用的,通常回送一个DHCPACK报文,同意客户端的请求,客户端继续使用现有IP地址,并更新其租期;如果服务器是不可用的,通常回送一个DHCPNAK报文,客户端可以继续使用现有IP地址,但不更新其租期。

重新捆绑阶段:当客户端的租约到7/8的期限时,进入REBINDING状态,客户端会再次试图更新租用期。如果服务器是可用的,通常回送一个DHCPACK消息,同意客户端的请求,客户端继续使用现有IP地址,并更新其租期;如果服务器是不可用的,通常回送一个DHCPNAK报文,客户端可以继续使用现有IP地址,但不更新其租期,直到客户端租约已满,客户端重新执行DHCPDISCOVER报文。

上述过程就是DHCP客户端的再次登录和续约过程,续约成功后,客户端的租约会重新进行计算。

2.2.4 地址的手动释放

当DHCP客户端正常下线或者不想再使用原来的网络地址时,就会向服务器发送一个DHCPRELEASE消息。服务器收到该消息就会收回分配给客户端的网络地址,并删除相应的租约表项,该网络地址以后可以继续分配给该客户端或者其它客户端。

2.3 DHCP中继

2.3.1 DHCP服务器的应用

在DHCP网络中,DHCP服务器的放置位置[6]通常有以下三种方式: (1)分布式,每个物理网络至少有一台DHCP服务器。 (2)集中式,多个物理网络共用一台DHCP服务器。 (3)混合式,多个物理网络共用几台DHCP服务器。 这三种放置位置的特点如下:

分布式: 每个物理网络至少配置一台DHCP服务器,仅管理该网络的IP分配,功能专一,响应速度快。当物理网络主机数量很少时,将造成硬件资源的极大浪费。

集中式:DHCP服务器放置在网络的中央位置,多个物理网络共用一台DHCP 服务器,节省硬件资源,但需要DHCP中继代理的转发功能,且当距离相隔较远的低速网络时,响应速度较慢。

混合式: 既解决了分布式硬件资源的浪费,又解决了集中式低速网络流量的问题。但需要DHCP中继。 2.3.2 DHCP中继简介

DHCP中继[7](DHCP Relay)也叫做DHCP中继代理。如果DHCP客户端与DHCP服务器在同一物理网段,则客户端可以正确地获取动态分配的IP地址。如果不在同一物理网段,则需要DHCP中继代理(DHCP RelayAgent)。用DHCP中继代理可以去掉在每个物理的网段都要有DHCP服务器的必要,它可以传递消息到不在同一物理子网的DHCP客户端。

2.3.3 DHCP中继原理

1.当DHCP客户端启动并进行DHCP初始化时,它会在本地网络广播配置请求报文。

2. 如果本地网络存在DHCP服务器,则可以直接进行DHCP配置,不需要DHCP中继。

3. 如果本地网络没有DHCP服务器,则与本地网络相连的具有DHCP中继功能的网络设备收到该广播报文后,将进行适当处理并转发给指定的其他网络上的DHCP服务器。

4.DHCP服务器根据DHCP客户端提供的信息进行相应的配置,并通过DHCP中继将配置信息发送给DHCP客户端,完成DHCP客户端的动态配置。

DHCP中继消息传递如下图 2-7所示。

DHCP服务器 DHCP服务器应答 客户端 客户请求 中继客户端请求 DHCP服务器 中继DHCP服务器应答 客户端请求 客户端 图 2-7DHCP中继传递消息图

2.3.4 DHCP中继工作过程

DHCP中继工作过程如图 2-8,其中DHCP中继设备修改DHCP消息中的相应字段,把DHCP的广播包改为单播包,并负责在服务器与客户端之间转换。 客户端 DHCP中继代理 DHCP服务器

Client DHCP Relay DHCP Server

广播 单播

DHCP DISCOVER(广播) DHCP DISCOVER(单播)

DHCP OFFER(广播) DHCP OFFER(单播)

图 2-8 DHCP中继工作过程

DHCP REQUEST(广播) DHCP REQUEST(单播) DHCPACK(广播) DHCPACK(单播) 第3章 DHCP的安全性问题及对策

3.1 DHCP的缺陷

DHCP只是在功能上设计得很好,可以很方便地为网络中新客户端配置IP地址和网络参数,但DHCP存在着许多严重的缺陷:DHCP不具有将地址和用户名联合起来管理的功能;DHCP服务器仅仅只能在有请求时分发IP地址,并在过期时将它们收回,它不会询问用户的信息,也不会跟踪除了IP地址和租约参数以外的其它信息;在安全层面,DHCP没有提供任何有效的方式来认证IP地址冲突或者追踪流氓地址,也不具有任何防御恶意主机的功能,因此DHCP极易遭受各种各样的攻击。

3.2 DHCP易受到的威胁

DHCP在设计上不具有任何防御恶意主机的功能,因此DHCP极易遭受各种各样的威胁。DHCP服务器的威胁可以是一个非法客户端伪装成一个合法客户端申请IP地址和网络参数,轻易的使用外部和内部网络资源从而导致信息的泄密;也可以是流氓DHCP服务器应答合法的客户端,当客户端申请IP地址和网络参数时,它故意提供错误的配置信息,流氓服务器可以在地址池,排除域,保留地址,子网掩码,DNS服务器地址,默认网关地址等错误的配置。

3.3消除DHCP威胁的对策

3.3.1 主动检测非法服务器

当网络中一个伪服务器建立后,对网络的危害是巨大的,可导致整个网络的瘫痪。网络管理员通常是检查导致网络瘫痪的各个细节,都一无所获,很难想到是伪服务器所致,最后排除了各种原因,确定存在一个伪服务器在网络中,但在大型企业网络中是很难确定它的位置。所以,在网络中构建一个网络入侵监控程序,主动检测是否有伪服务器在网络中,尽早发现伪服务器并避免对网络造成的损失。

主动检测模块拥有一个主动检测非法服务器的功能,它可以配置在客户端,合法服务器端以及DHCP中继端。下面将以客户端配置主动检测非法服务器功能为例进行描述。主动检测模块主动向DHCP服务器发送DHCPDISCOVER消息。想要发现伪服务器,首先在收到客户端发出的DHCPDISCOVER消息后,无论是合法DHCP服务器还是伪服务器都会发出DHCPOFFER消息,这时主动检测模块不是选择一个DHCP服务器来为它配置IP地址和参数,而是解析出接收的DHCPOFFER消息中的服务器标识选项(一般由DHCP服务器的IP地址表示)。此时在客户端保存着一张表,此表记录着它对应的所有合法DHCP服务器的标识。主动检测模块会查询DHCP Server ID 表,如果解析出的DHCP服务器标识都在表中,则说明该子网段中没有非法的DHCP服务器,则继续发出DHCPREQUEST广播报文。为了避免在网络中产生广播风暴,影响网络的性能,所以要间隔一定的时间。如果收到的DHCPOFFER消息中的DHCP服务器标识有些不在DHCP Server ID表中,那说明该子网中有非法的DHCP服务器被启动了。主动检测模块记录伪DHCP服务器的IP地址,然后以某种方式向网络管理

员发送警告信息,例如向网络管理员发送Email等。

3.3.2 检测MAC地址

首先,用户在DHCP服务器上注册他们主机的MAC地址,DHCP服务器只为注册过的主机分配IP地址,因此,这是一种机器认证方式。当客户主机向DHCP服务器申请IP地址时,客户端必须发出广播,源地址和目的地址分别为0. 0. 0 .0 和255 .255 .2 55 .255。当客户端和DHCP服务器之间通讯的时候,DHCP服务器要知道是哪一个客户端在申请IP地址。因此,DHCP报文中客户端标识项必须填写并且在申请IP地址的全过程都必须是一致的,通常客户端标识项填写的是客户端的MAC地址。因为MAC地址是唯一的, 它可以唯一标识一台客户端。

3.3.3 LANA系统

这种LANA系统[8]解决安全问题的方法是:使用特殊的HUB来进行存取控制,HUB的每个端口对应特定的DHCP客户机,相当于绑定的机制。

3.3.4 SPINACH方法

SPINACH[9,10](Secure Public Internet Access Handler)在连接到公共端

口的客户端和部门网络中的主机间建了一个所谓的“监测层”来控制网络中传输的数据。应用在DHCP中时,具体做法如下:在用户进行了身份认证之后,认证服务器给用户一个叫做ticket的控制信息,用户再把ticket提交给适当的服务器以获取必要的信息,比如,用户将ticket提交给路由器以连接到外部网络中。

3.3.5 DHCP消息认证机制

DHCP消息认证机制[12]是对以前DHCP协议的完善,与原来的DHCP 技

术很好的结合在一起, 与客户申请IP地址的过程很好的统一在一起,不仅能够对DHCP消息认证,也能对DHCP实体认证,弥补了先前DHCP协议中不能进行认证的缺陷,极大的减少了DHCP 威胁。

DHCP消息认证机制是增加一个DHCP消息选项码来完成DHCP服务器与客户端之间的认证工作。这样可以完全不改变DHCP原有协议,而对DHCP消息进行认证,虽然只是添加了一个DHCP消息选项码,但其实是增添了一个协议,且此选项码中可以定义不同的认证方法。由于消息认证机制的扩展性很好,使用的认证协议不同可以定义不用的使用算法。

3.4 消除DHCP威胁几种对策的比较 3.4.1 主动检测非法服务器

这种方法是由检测的时间间隔时段长度来决定的。虽然可以降低流氓服务器对网络的破坏程度,但是客户端在向DHCP服务器申请网络地址和参数时发DISCOVER消息是广播方式,检测模块应该在每一个物理子网内部署,并且确定合适的检测间隔时段的长度是困难的,最后即使网络中存在检测模块但还是不能完全防止流氓服务器的运行。

3.4.2检测MAC地址

这种方法可以部分地减少初级非法用户的侵入。但是对于用户来说不方便,缺乏灵活性。当非法用户将其MAC地址修改为合法的MAC地址时,很容易地

就能获得IP地址。这种方法也不是绝对安全的,而且要增加新用户注册的过程,附加注册软件, 从而加大企业成本。

3.4.3 LANA系统

LANA系统存在的缺陷:需要特殊的设备来参与进行安全管理,DHCP网络的灵活性也受到了限制。

3.4.4 SPINACH方法

这种方法并不能防止IP地址和MAC地址的同时伪造。因此,也是相对不安全的。

3.4.5 DHCP消息认证机制

消息认证只对实体和DHCP消息实现了弱的认证功能,而且该系统没有实现访问控制的功能,对DHCP消息的加密和解密会延长配置主机的时间,并且必须设计相关算法。

3.5 消除DHCP威胁结合的网络安全技术

3.5.1网络入侵监测技术

网络入侵检测技术[13]也被称为网络实时监控技术,它通过硬件或软件对

网络上的数据流进行实时检查,并与系统中的入侵特征数据库进行比对,一旦发现有被攻击的迹象,立刻根据用户所定义的动作做出反应,如切断网络连接,或通知防火墙系统来调整访问控制策略,将入侵的数据包过滤掉等。网络入侵检测部件可以直接部署于受监控网络的广播网段,或者直接接收受监控网络旁路过来的数据流。为了更有效地发现网络攻击的迹象,网络入侵检测组件应能够分析各种网络协议,识别各种网络攻击行为。网络入侵检测部件对网络攻击行为的识别通常是通过网络入侵特征库来实现的,这种方法有利于在出现了新的网络攻击手段时方便地对入侵特征库加以更新,提高入侵检测部件对网络攻击行为的识别能力。

网络入侵检测技术可以用来实现网络安全检测和实时攻击识别,但它只能作为网络安全一个重要的安全组件,其原因在于网络入侵检测技术对网络攻击进行识别并做出反应, 但其侧重点是在于发现。

3.5.2 访问控制

访问控制是网络安全防范和保护的主要技术,决定了谁能够访问系统的何种资源以及如何使用这些资源,适当的访问控制可以防止未经授权的用户有意或无意地获取数据。访问控制的手段包括用户识别代码、口令、登录控制、资源授权(如用户配置文件,资源配置文件和控制列表)授权验证,日志记录和审计。访问控制技术包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。下面分述要用到的几种访问控制技术。 1. 入网访问控制

入网访问控制为网络访问控制提供了第一层访问控制,它控制用户登录到服务器并获取网络资源,控制用户的访问时间和访问登录后的工作站。用户的网络访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户

账号的缺省限制检查,三个层次的任何一层没有通过,用户都不能访问的网络。 网络用户的用户名和密码验证是防止非法访问的第一道防线。用户注册时首先输入用户名和密码,服务器将验证所输入的用户名是否合法的,如果验证合法,才能继续验证用户输入的密码,否则,用户退出网络。网络管理员可以控制和限制普通用户的帐号使用、访问网络的时间、方式。用户名或用户账号是所有计算机系统中最基本的安全形式,用户帐号应只有系统管理员可以建立,用户密码应是每个用户接入到网络“身份证”,用户可以修改自己的密码,但系统管理员可以控制密码的形式。用户名和密码验证有效之后,再进一步履行用户账号的缺省限制检查,网络应能控制用户登录访问的站点,限制用户上网时间,限制用户访问工作站的数量。网络应对所有用户的访问进行审计,如果多次输入口令不正确,则认为是非法用户的入侵,给出警告信息并限制一段时间之内不能登录。 2. 网络的权限控制

网络的权限控制是针对网络非法操作所提出的一种安全保护措施,用户和用户组被赋予一定的权限。网络控制用户和用户组可以访问哪些目录、子目录、文件和其他资源,可以指定用户对这些文件、目录、设备能够执行哪些操作。 3. 目录级安全控制

网络应允许控制用户对目录、文件、设备的访问。用户在目录一级对所有文件和子目录访问有效,用户进一步指定对目录下的子目录和文件的权限。对目录和文件的访问权限一般有八种: 系统管理员权限( SuPevrisor )、读权限( Read )、写权限(Write)、创建权限( Create )、删除权限( Erase )、修改权限(Modify )、文件查找权限( File Scan )、存取控制权限(AcesContor)。用户对文件或目录的有效权限取决于以下因素:用户的受托者指派、用户所在组的受托者指派,继承权限屏蔽取消的用户权限。网络系统管理员应为用户指定适当的访问权限,这些访问权限控制着用户对服务器的访问,八种访问权限的有效组合可以让用户有效地完成工作,并能有效地控制用户对服务器资源的访问,从而加强了网络和服务器的安全性。

4. 属性安全控制

在使用文件、目录和网络设备时,网络管理员应给文件、目录等指定访问属性。网络上的资源都应预先标出一组安全属性的用户访问网络资源对应的访问控制表,用以表明用户对网络资源的访问权限。属性设置可以覆盖已经指定的任何受托者指派的有效权限,属性往往能控制以下几个方面的权限: 写入文件数据、拷贝一个文件、删除目录或文件、查看目录和文件、执行文件、隐藏文件,共享,系统属性等。网络的属性安全控制可以保护重要的目录和文件,防止用户对目录和文件的误删除、修改、显示等。 5. 网络服务器安全控制

网络允许在服务器控制台上执行一系列的操作。用户可以使用控制台来加载和卸载模块,安装和删除软件等操作。网络服务器的安全控制包括:设置口令锁定服务器控制台上的重要信息,以防止非法用户修改,删除或破坏数据;设定服

务器登录时间限制,非法访问者检测和关闭的时间间隔。

6. 网络监测和锁定控制

网络管理员对网络实施监控,服务器记录用户对网络资源的访问,对非法的网络访问,服务器以图形和文字或声音的形式报警,以引起网络管理员的注意。如果非法用户试图访问网络,网络服务器应会自动记录企图尝试进入网络的次数,如果非法访问的数量达到设定值时,那么该帐户将被自动锁定。

3.5.3 认证技术

认证技术[14]与通信的真实性有关。在单条消息的情况下,认证服务功能

是保证接收方消息来自所声称的发送方。对于正在进行的交互,涉及两个方面。首先,在连接的初始化阶段,认证服务保证两个实体是可信的;其次,认证服务必须确保连接不受第三方的干扰(第三方能够伪装成两个合法实体中的一个进行非授权传输或接受)。其中两个特殊的认证技术是同等实体认证和数据源认证。

同等实体认证:为连接中的同等实体提供身份确认,用于连接的建立或数据传输阶段。该服务想提供这样的保证:一个实体不能试图进行伪装或以前连接的未经授权重放。

数据源认证:为数据的来源提供验证,但对数据的复制或修改不提供保护。 在认证技术中常采用消息认证码,又称MAC,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。在这种方法中假定通信双方,比如A和B,共享密钥K。若A向B发送消息时,则A计算MAC,它是消息和密钥的函数,即MAC= Ck(M),其中:

M = 输入消息 C=MAC函数 K=共享的密钥 MAC=消息认证码 消息和MAC一起被发送给接收方。接收方对收到的消息用相同的密钥K进行相同的计算得出新的MAC,并将接收到的MAC与其计算出的MAC进行比较,如果我们假定只有收发双方知道该密钥,那么若接收到的MAC与计算得出的MAC相等,则有:

(1)接收方可以相信消息未被修改。如果攻击者改变了消息,但他无法改变相应的MAC,所以接收方计算出的MAC将不等于接收到的MAC。因为己假定攻击者不知道密钥, 所以他不知道应如何改变MAC才能使其与修改后的消息相一致。

(2)接收方可以相信消息来自真正的发送方。因为其他各方均不知道密钥,因此他们不能产生有正确MAC的消息。

(3)如果消息中含有序列号,那么接收方可以相信消息顺序是正确的,因为攻击者无法成功地修改序列号。

近年来, 人们对密码hash函数来设计MAC越来越感兴趣。常用的消息文摘算法包括SHA、MD5和RIPEMD-160等。

第4章 DHCP服务器的容灾技术

第3章论述了人为因素对DHCP网络的威胁,本章将论述非人为因素对DHCP网络的威胁。

4.1 容灾

4.1.1 容灾的定义

容灾[15],就是为了防范由于自然灾害、社会动乱和人为破坏造成的企事业单位信息系统数据损失的一项系统工程。在男的的定义主要是指自然的和人为的灾难,包括系统硬件、网络故障、机房断电,甚至火灾、地震等。

容灾是一个范畴比较广泛的概念,广义上,我们可以把所有与业务连续性相关的内容都纳入容灾。容灾是一个系统工程,它包括支持用户业务的方方面面。容灾对于IT而言,就是提供一个能防止用户业务系统遭受各种灾难影响和破坏的计算机系统。狭义上,容灾是指除了生产站点以外,用户另外建立的冗余站点,当灾难发生生产站点受到破坏时,冗余站点可以接管用户正常的业务,达到业务不间断的目的。为了达到更高可用性,许多用户甚至建立多个冗余站点。在技术上,衡量容灾系统有两个主要的指标:RPO(Recovery Point Object)和RTO(Recovery Time Object),其中RPO代表了当灾难发生时允许丢失的数据量,而RTO则代表了系统恢复的时间。RPO与RTO越小,系统的可用性就越高,当然用户需要的投资也越大。

4.1.2 容灾技术

容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。容灾技术不仅仅可以保障数据的安全,更主要的是确保业务系统的安全运行。

4.2 DHCP服务器的容灾技术

在采用DHCP服务器为网络主机配置IP地址和网络参数时,DHCP服务器的正常运行是整个网络联网工作,共享资源和相互交流的基础和前提条件。在网络中应用DHCP服务器就要考虑到它失效的后果。

DHCP服务器为客户端分配IP地址和网络参数是一个C/S模式,所有的分配工作在DHCP服务器端,一般不涉及到其他的服务器和控制中心。DHCP服务器本身的工作模式又是一个集中式的管理,它的所有数据都保存在一个数据库中。

DHCP服务器的部署如下图 4-1所示。

客户端 客户端 客户端 客户端 DHCP服务器 客户端 客户端 中继代理 图4-1 DHCP服务器的部署图

4.3 DHCP双服务器的容灾

目前在网络中采用双服务器是为了保证当前服务器出现故障时,通过冗余服务器及时提供给客户端不重复的IP地址。然而,这种解决方案要求地址范围加倍,并且由于服务器之间没有交流,因此也不能预测从哪一台上指派地址租用。

4.4 DHCP服务器容灾新方法

容灾新方法是通过一种新的冗余模式,这种冗余模式不需要增多IP地址, 而是加强了两服务器之间的通讯,在DHCP服务器发生故障时,冗余DHCP服务器可以平滑的接替配置网络的工作。这台冗余DHCP服务器称为辅DHCP服务器,也可称为FDHCP服务器(Failover DHCP),在当前网络工作的服务器称为主DHCP服务器。

主DHCP服务器和FDHCP服务器部署在网络的不同地方,这是防止主DHCP服务器发生灾难时,FDHCP服务器也受到破坏,从而达不到容灾的作用。

DHCP服务器和FDHCP服务器为同一个网络配置IP地址和网络参数,FDHCP服务器也可以为另外一个DHCP服务器提供冗余,就是说FDHCP服务器和DHCP服务器的关系也可以是1对N的关系,这和1对1的原理是一样的, 只是提高了FDHCP服务器和DHCP服务器间的监测和数据同步的复杂度。

DHCP服务器和FDHCP服务器的配置文件内容是相同的, 由于DHCP服务器和FDHCP服务器的角色不同,所以它们的策略文件中的内容不同。策略文件中定义了服务器中的操作, 根据这些策略文件中的参数, 服务器知道执行的方式和功能,例如, 规定DHCP服务器在分配IP地址前是否先ping 一下此地址, 在分配IP地址时候是否只检查其MAC地址, 等待的间隔时间等诸如此类。所以在备用服务器和主服务器不同的职能策略文件中的定义也不同, 除了与职能相关的参数外, 策略文件中的其它定义是相同的。因为DHCP服务器和FDHCP服务器的配置文件都一样, 所以只有一个是运行的, 在为网络提供者服务, 而FDHCP服务器不为网络中的客户端提供服务。只有当DHCP服务器发生故障不能工作的时候, FDHCP服务器才开始接替DHCP服务器的工作,所以FDHCP服务器必须知道何时接替DHCP服务器工作, 即知道DHCP服务器什么时候发生了故障。并且

FDHCP服务器要想顺利无误的接替DHCP服务器, 那么它掌握的情况或者所处的状态, 拥有的数据库必须和DHCP服务器的一样, 这样才能平滑的接替DHCP服务器, 所以FDHCP服务器和DHCP服务器的数据必须保持一致性。FDHCP服务器和DHCP服务器通过建立TCP连结, FDHCP服务器每隔一段时间向DHCP服务器发出探寻包, 看DHCP服务器是否正常工作。DHCP服务器数据库文件改变时通过向FDHCP服务器发送更新的数据来保证两服务器间的数据同步。

本文来源:https://www.bwwdw.com/article/boc7.html

Top