问题描述
目前 DHCP 协议在应用的过程中遇到很多安全方面的问题,网络中存在一些针对 DHCP 的攻击,如 DHCP Server 仿冒者攻击、DHCP Server 的拒绝服务攻击、仿冒 DHCP 报文攻击等等;
解决方案
引入 DHCP Snooping 技术,以保证网络通信业务的安全性,在 DHCP Client 和 DHCP Server 间,DHCP Snooping 建立一道防火墙,以抵御网络中针对 DHCP 的各种攻击;
DHCP Snooping 是 DHCP 的一种安全特性,用于保证 DHCP Client 从 合法的 DHCP Server 获取网咯地址;
原理简述
DHCP Snooping 主要是通过 DHCP Snooping 信任功能 和 DHCP Snooping 绑定表 实现 DHCP 网络安全:
1)信任功能:能够保证 DHCP Client 从合法的 DHCP Server 获取网络地址;
2)绑定表:设备在其中记录 DHCP Client 的 网络地址 与 物理地址 等参数的对应关系,防止网络上针对 DHCP 攻击;
信任功能
DHCP Snooping 信任功能,能将接口分为两类:
信任接口:
1)通常连接 DHCP Server;
2)正常接收 DHCP Server 响应的 DHCP ACK、DHCP NAK、DHCP Offer 报文;
非信任接口:
1)通常连接 DHCP Client;对于 DHCP Client 的请求报文,设备只会通过信任接口发送给合法的 DHCP Server,不会转发到非信任接口;
2)非信任接口收到的 DHCP Server 发送的 DHCP OFFER、DHCP ACK、DHCP NAK 报文会被直接丢弃;
绑定表
当使能 DHCP Snooping 功能后,该二层接入设备:
1)将从收到 DHCP ACK 报文中提取关键信息(包括 PC 的 MAC 地址、获取到的 IP-ADDR、地址租期)
3)并获取与 PC 连接的使能 DHCP Snooping 功能的接口信息(包括接口编号及该接口所属的 VLAN),根据这些信息生成 DHCP Snooping 绑定表;
2)根据 DHCP 租期进行老化 或 根据用户释放 IP-ADDR 时发出的 DHCP Release 报文自动,DHCP Snooping 绑定表来删除对应表项;
鉴于 DHCP Snooping 绑定表记录 DHCP Client IP-ADDR 与 MAC-ADDR 等参数的对应关系,故通过对报文与 DHCP Snooping 绑定表进行匹配检查,能够有效防范非法用户的攻击;
补充说明:
1)DHCP Snooping 绑定表能够进行手工配置,并不是必须依赖 DHCP 功能;
特性说明
WIP
应用场景
WIP
配置案例
// 开启 DHCP Snooping 特性 // 在 VLAN 下,执行此命令,则对设备所有接口接收到的属于该 VLAN 的 DHCP 报文命令功能生效; // 在接口下,当配置该命令的接口,默认 Untrust 状态:收到 DHCP 请求报文后,转发给所有的信任接口;收到 DHCP 响应报文后丢弃; [Huawei] dhcp snooping enable [ ipv4 | ipv6 ] [Huawei-vlan2] dhcp snooping enable [Huawei-GigabitEthernet0/0/1] dhcp snooping enable # 配置该命令的接口,收到 DHCP 请求报文后,转发给所有的信任接口,如果没有其他信任接口,则丢弃该 DHCP 请求报文; # 收到 DHCP 响应报文后,只转发给连接对应客户端的并且配置命令 dhcp snooping enable 的接口,如果查不到上述接口,则丢弃该 DHCP 响应报文; [Huawei-GigabitEthernet0/0/1] dhcp snooping trusted // 缺省情况下,设备接口为非信任状态; # VLAN 视图下配置接口为“信任”状态 # 在 VLAN 视图下执行此命令,则命令功能仅对加入该 VLAN 的接口收到的属于此 VLAN 的 DHCP 报文生效; [Huawei-vlan2] dhcp snooping trusted interface interface-type interface-number # (可选)配置丢弃 GIADDR 字段非零的 DHCP 报文 # 使能检测 DHCP Request 报文中 GIADDR 字段是否非零的功能。此命令同时可以在 VLAN 视图或接口视图下进行配置; # 在 VLAN 下,执行此命令,则对设备所有接口接收到的属于该 VLAN 的 DHCP 报文命令功能生效; # 在 Intf 下,执行该命令,则对该接口下的所有 DHCP 报文命令功能生效; [Huawei] dhcp snooping check dhcp-giaddr enable vlan { vlan-id1 [ to vlan-id2 ] } # 手动添加绑定表项 [WIP]
案例:内网 DHCP 防护
# [SW1] vlan 10 dhcp snooping enable dhcp snooping check dhcp-chaddr enable dhcp snooping max-user-number 2 dhcp snooping trusted interface GigabitEthernet0/0/3 [SW1]display dhcp snooping user-bind all DHCP Dynamic Bind-table: Flags:O - outer vlan ,I - inner vlan ,P - map vlan IP Address MAC Address VSI/VLAN(O/I/P) Interface Lease -------------------------------------------------------------------------------- 192.168.10.252 5489-980a-79e2 10 /-- /-- GE0/0/2 2022.03.29-01:03 192.168.10.253 5489-982f-7d2e 10 /-- /-- GE0/0/1 2022.03.29-01:04 -------------------------------------------------------------------------------- print count: 2 total count: 2
1)开启 DHCP Snooping 特性,来防止非法 DHCP Server 响应:
2)开启 Max User Number 特性,来防止限制 Stravation Attack(限制绑定数量);
3)通过 Check CIAddr 特性,检查客户端物理地址,防止 Stravation Attack(通过修改 CIAddr 的攻击);