web安全day4--DHCP部署与安全(DHCP安全)

网友投稿 326 2022-10-05


web安全day4--DHCP部署与安全(DHCP安全)

一、DHCP作用和相关概念

DHCP全称Dynamic Host Configuration Protocol,中文名:动态主机配置协议。主要作用有自动分配IP地址。

相关概念有:

地址池:包括了ip地址、子网掩码、网关、DNS和租期等。

DHCP协议工作在传输层,依赖UDP协议,当 Client传送封包给 Server时,采用的是UDP 68 Port,从 Server传送给 Client则是使用UDP 67 Port。

DHCP有减少工作量、避免IP冲突、提高地址利用率的优点。

二、DHCP原理

1)client广播发送DHCP DISCOVERY

client广播请求ip地址,广播内容包含了client的mac地址、是否需要子网掩码、dns服务器地址等。此时使用udp的68号端口向server的67号端口发送。

2)server单播发送DHCP OFFER

server向该client在二层单播拟分配的ip地址、子网掩码、网关、dns服务器地址、租期、续租时间等内容,同时还向client告知了自己的ip地址。此时使用udp的67号端口向client的68号端口发送。

3)client广播发送DHCP REQUEST

client如果希望使用这个地址,就会广播发送一个请求包,这个请求包包含了自己的mac地址,服务器的ip地址,需要的ip地址等内容。这里广播的意义在于如果网络中还存在其他服务器,client的广播行为可以告知其他服务器已经选用了某个服务器,避免其他服务器为其分配地址,造成地址池浪费。

4)server单播发送DHCP ACK

server如果认为自己能够为该client分配其请求的地址,就会向该client二层发送ack信息,包括了分配的ip地址、子网掩码、网关、dns服务器、租期、续约时间等内容,还包括了自己的ip地址。

5)client发送免费arp三次

client收到了该ack后,为了再次判断网络中是否有人已经使用了该地址,就会向该ip发送三次免费arp,免费arp的原理是源目ip地址都是自己的ip地址,目的mac地址是全0,表示二层广播,如果收到了arp应答,就表明网络中存在使用该ip地址的设备,这时我们不希望看到的。三次arp均未收到响应后,就会正式使用该ip地址了。

6)dhcp地址池和续约

dhcp服务器中地址池中的ip地址有userd、idle、static-bind、static-bind userd、disable、expired、conflict等状态。

userd:表示此ip地址已经使用;

idle:表示此ip地址处于空闲状态;

static-bind:表示该ip地址已经绑定mac地址且未使用

static-bind userd:表示该ip地址已经绑定mac地址且已经使用

disable:表示该ip地址无法使用

expired:表示该ip地址租期已过,处于空闲状态

conflict:表示该ip地址与网络上的其他地址冲突。在两种情况下会出现这种情况。

dhcp server收到dhcp discovery报文时,给client分配ip地址前会发送ping探测,如果能够ping通则设置ip地址未confilct状态,并且选择其他ip地址分配给client。dhcp client获取ip地址成功后,会立即发送免费arp,如果收到响应,则发送dhcp decline报文通知dhcp server该ip地址冲突,dhcp server 会设置该地址为conflict状态。当地址池中idle状态和expired状态的ip地址耗尽时,会自动收回conflict状态的ip地址,分配给新的client。

dhcp总是通过DHCP request报文来更新租约。租期默认为24小时,如果到达12小时,就会单播dhcp request报文给原server请求续约,如果没有收到响应,那么在到达21小时的时候,就会广播发送DHCP request报文给所有网络中的server来请求续约。如果此时仍然无法获得ack,就会再次广播发送discovery包请求新的ip地址。当无任何服务器响应时,网卡会先生成一个全球统一的无效地址169.254.x.x/16,临时解决局域网内通信的问题。

三、实验一:部署windows DHCP服务器

我们开启一台windows2003和一台windowsxp虚拟机,分别充当服务器和客户机,然后给windows2003配置固定地址和dhcp服务,让windowxp自动获取到ip地址。

1)IP地址固定

服务器地址必须固定,我们

但是现在还无法提供dhcp服务,因为我们没有创建地址池。地址池的概念在windows中被称为作用域,它们是相同的概念。

我们一般不会取开头和结尾的地址,这些地址是为其他服务所预留的。

我们再回到windowsxp上查看我们的ip地址情况

发现其已经正确获取到ip地址和其他一些信息。

此时我们可以在服务器中看到分配的地址信息。

可以获得客户机的ip地址、计算机名、租约信息以及mac地址(唯一id)

客户端主动释放地址

键入ipconfig/release就可以主动释放此前获取到的地址。

键入ipconfig/renew就可以再次申请到地址,此时发送的是discovery包

如果在有ip地址的情况下再去renew,就会刷新租约,此时发送的是request包

四、实验二:保留地址

如果我们希望某个设备不会因为租约到期后再次续约而导致ip地址发生变更,我们可以保留这个地址给这个设备使用。这样既可以保持客户机的自动获取状态,又可以使得他的地址不会发生变更。

比如老板的电脑,我们就可以这样为他进行保留。但是我们怎样判断哪一台电脑是老板的电脑呢?在网络中,唯一标识一台设备的方式只能是mac地址。所以我们必须得知道老板电脑的mac地址。

五、实验三:dhcp备份和还原

为了避免我们的作用域配置丢失,我们还需要经常将我们的作用域进行备份。这样可以在dhcp服务器故障时将配置快速转移到另一台服务器上。

如果我们的园区中有很多个局域网,这些局域网依托于dhcp服务器进行地址分配,那么我们必然会在dhcp服务器中为它们创建很多作用域。

但是,所有的局域网中的电脑,它们所使用的dns服务器地址很大概率是相同的。如果一个一个为他们去配置,就会费时费力。有没有什么办法能够一劳永逸,只部署一次呢?

答案是可以的。我们可以通过配置服务器选项来实现这一需求。

再次去查看这些作用域的作用域选项,就会发现它们的dns服务器地址都已经自动同步了。

当然我们也可以在作用域的作用域选项中自己再去配置,作用域选项的优先级要高于服务器选项。

需要注意的是,网关这些配置方法还是最好不要这样配置,因为很多情况下,不同局域网的网关一般是不同的。

七、实验五:dhcp中继

问题:如果服务器的ip地址在10.1.1.2,而局域网希望获取到的地址是10.1.2.0/24的地址段,可以实现吗?

答案是不行,服务器的ip和自己所服务的ip必须处于相同的网段。但是可以使用dhcp中继来解决这个问题。实际情况是现网中,往往一个园区网中有很多个局域网,但是一般只会有1到2台dhcp服务器,一台服务器会拥有几十个作用域,用来为不同的局域网提供dhco服务。

DHCP中继负责转发DHCP服务器和DHCP客户端之间的DHCP报文,协助DHCP服务器向DHCP客户端动态分配网络参数的设备。

DHCP客户端广播发送请求报文(即目的IP地址为255.255.255.255),位于同一网段内的DHCP服务器能够接收请求报文。如果DHCP客户端和DHCP服务器不在同一个网段,DHCP服务器无法接收来自客户端的请求报文,此时,需要通过DHCP中继来转发DHCP报文。不同于传统的IP报文转发,DHCP中继接收到DHCP请求或应答报文后,会重新修改报文格式并生成一个新的DHCP报文再进行转发。

八:dhcpGJ与防御

1)GJdhcp服务器

频繁发送dhcp请求,耗尽地址池资源,结果造成正常客户机无法上网。

或者伪装成正常工作的客户端发送dhcp release报文,释放掉ip地址,导致正常的客户机无法上网。

防御方法:在管理型交换机的端口上做动态或者静态mac地址绑定或者开启dhcp snooping功能。

2)GJdhcp客户机

伪装dhcp服务器,下发非法的ip地址,导致客户机无法上网或者ip地址冲突。

GJ原理

由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。

防御方法

在管理型交换机上开启dhcp snooping功能或者除合法的dhcp服务器所在接口外,全部设置为禁止发送dhcp offer包。

为了防止DHCP Server仿冒者GJ,可配置设备接口的“信任(Trusted)/非信任(Untrusted)”工作模式。

将与合法DHCP服务器直接或间接连接的接口设置为信任接口,其他接口设置为非信任接口。此后,从“非信任(Untrusted)”接口上收到的DHCP回应报文将被直接丢弃,这样可以有效防止DHCP Server仿冒者的GJ。

3)泛红GJ

DHCP报文泛洪GJ导致设备无法正常工作

GJ原理

在DHCP网络环境中,若GJ者短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。

解决方法

为了有效的防止DHCP报文泛洪GJ,在使能设备的DHCP Snooping功能时,可同时使能设备对DHCP报文上送DHCP报文处理单元的速率进行检测的功能。此后,设备将会检测DHCP报文的上送速率,并仅允许在规定速率内的报文上送至DHCP报文处理单元,而超过规定速率的报文将会被丢弃。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot使用之多个filter的执行顺序以及配置方式
下一篇:靶机DC-7
相关文章

 发表评论

暂时没有评论,来抢沙发吧~