跳到主要内容

文件共享与DHCP服务

阅读需 5 分钟

文件服务器中的SMB协议详解与DHCP

文件服务器

文件服务器用于存储文件并使其能够被网络上的多用户或设备访问,它促进协作和数据交换。

常见文件共享技术

  1. Windows文件共享
    • 在Windows环境中,常用SMB/CIFS协议进行文件共享,它支持Windows客户端和服务器之间的文件共享
  2. NFS(网络文件共享)
    • 在UNIX和Linux系统中广泛使用,它允许用户像本地存储一样在网络上查看、存储和更新文件
  3. AFP
    • 主要用于苹果设备

SMB协议

SMB协议是一个应用层网络协议,用于实现文件共享、打印服务

基本功能

SMB协议允许计算机在网络上共享文件和打印机资源,不受操作系统平台的限制。

版本历史

  1. SMB 1.0(CIFS)

    提供基本的文件共享功能,但效率低下安全性较差

  2. SMB 2.0

    对1.0进行了性能改进,减少了协议的性能消耗

    改进了对大型文件的支持和网络错误恢复能力

  3. SMB 2.1

    性能优化。增加了租约概念以优化客户端缓存

  4. SMB 3.0

    添加了更多高级功能,如端到端加密

    支持多通道操作

    集群共享卷(CSV)支持,为服务器集群提供更好的文件共享解决方案

  5. SMB 3.1.1

    增加安全性

工作原理

SMB协议工作在TCP/IP协议栈的较高层,使用TCP端口445通信。

当客户端设备试图通过访问网络上的文件或资源时,它通过SMB协议与服务区建立连接,然后权限验证,通过后可对远程文件执行操作。

安全性

随着SMB版本的迭代,其安全性也在得到提升,但由于协议诞生的年代较早,遗留的隐患使其依然成为攻击者利用的目标之一,在生产环境中常常需要关闭445端口

DHCP服务

DHCP服务可以给主机自动分配IP地址,它使用UDP协议工作

DHCP服务器部署在67端口

DHCP客户端部署在68端口

Client端向Server端发送数据包时,源为UDP 68 Port 目的 UDP 67 Port

Server端向Client端发送数据包时,源为UDP 67 Port 目的 UDP 68 Port

DHCP 报文格式

链路层头IP头 20bytesUDP头DHCP报文

报文种类

报文种类由options字段中的option53“DHCP Message Type”选项来确定

discover 报文:0x01 客户端请求包

这是client端开始DHCP过程的第一个请求报文,client以广播的方式发送请求报文,目的是发现网络中的服务器

offer报文:0x02 服务器相应包

这是server端对discover报文的响应报文。server端将在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息,构造一个offer报文,发送给用户,告知用户本server可以为其提供IP地址的分配。通常以单播方式发送

request报文:0x03 客户端选择包

client端选择第一关offer报文的服务器作为自己的目标服务器,并回应一个request请求报文。在续租的时候client端也会发送request报文

ack报文:0x05 服务器确认包

是server端对client端request报文的确认响应报文,如果有可以分配的IP地址则发送ack报文作为回应

nak报文:0x06 服务器拒绝包

server端对client端的request报文的拒绝响应报文,如果没有可用IP则发送nak报文给client端

release报文:0x07 客户端释放包

client端主动释放分配的IP,并发送release报文给server

decline报文:0x04

client端收到server端回应的ack报文后,会发送一次arp报文,判断ip地址是否已经被用,由于地址冲突或其他原因导致IP地址不可用,则发送decline报文通知server分配的IP地址不可用

inform报文:0x08

在client已经获得了IP地址,需要从server端获得更详细的配置信息时,就会发送inform报文向server请求,server端根据租约查找到对应配置信息,回应ack报文给client

动态获取IP地址的四个阶段

发现阶段、提供阶段、选择阶段、确认阶段

租约续期

  1. 当client端ip地址已经用到50%时间,client会以单播形式向服务端发送一个request包,以期望续租。server端会回应一个ack包并重新约定一个时间
  2. 当上一步发送的request包server端无响应时,client端会继续使用直到87.5%时间 ,client端会再续租一次,以广播方式发送一个request包,server收到响应后会回应一个ack包,重新约定一个时间
  3. 如果上一步发送的request包server端仍没有响应,client到时会直接过期

主动释放IP地址

ipconfig /release   --释放IP地址

ipconfig /renew --重新获取IP地址

DHCP安全

DHCP饥饿攻击:大量的伪造DHCP客户端MAC地址,并通过发送大量的DHCP不完整请求,将DHCP地址池中的地址快速消耗殆尽,使DHCP服务器不饿能正常分配地址

如何防御:

  • 设置适当的租约时间,更快的回收和重新分配
  • 进行MAC地址过滤
  • 限制客户端的IP分配
  • DHCP Snooping
  • 监控与警报
  • VLAN和网络隔离
  • 安全强化