DHCP snooping
DHCP snooping 能与 802.1X 结合使用, 并不会与其产生冲突
关于 DHCP snooping 配置的一些说明:
1、交换机默认会为 DHCP snooping 非信任接口收到的 DHCP报文 加上 82 选项。2、思科路由器作为 DHCP 服务器默认收到带 82 选项的DHCP请求时不会回应。3、交换机不会向 DHCP snooping 非信任接口转发 DHCP 请求的广播包(包括 DHCP 中继的请求包)4、默认交换机的非信任端口收到带 82 选项的 DHCP Discover 报文会丢弃DHCP服务器默认是开启的,service DHCP 不会在 running-config 中显示
DHCP Snooping(DHCP监听)是一种网络安全功能,用于保护局域网中的设备免受DHCP欺骗攻击。DHCP Snooping在交换机上实施,它监控和验证通过交换机发送和接收的DHCP消息,以防止未经授权的DHCP服务器和欺骗行为。
·保障 客户端 能够成功从 服务端 获取一个正确的IP地址
·并记录客户端MAC地址和IP地址的对应关系
·防止中间人攻击
相当于 客户端和服务端 之间的一台防火墙,对报文进行过滤
DHCP Snooping 工作原理:
1、通过在交换机上 手动指定可信任的接口trust,这些接口连接的都是受信任的 DHCP服务器的接口。其它未指定的接口默认为 untrust(不信任),丢弃DHCP 报文
DHCP Snooping状态:
· trust(受信任):管理员手动配置,指接口连接的是受信任的 DHCP 服务器,可以允许 DHCP 报文通过
· untrust(不受信任):不允许 DHCP 报文通过,直接丢弃
DHCP Snooping Limited是一种模式,交换机会对已经授权的接口上的DHCP消息进行验证和保护,而未经授权的接口将被忽略,绕过DHCP Snooping的基本验证和选项过滤等保护机制。
DHCP Snooping Trust是一种授权机制,交换机可以将特定的接口授权为可靠接口(或称为信任接口),对于这些接口上的DHCP消息,交换机会默认信任其中的选项和参数。因此,对于经过授权的接口,交换机不会阻止任何DHCP基础验证和选项过滤,而是将其信任,通过验证保护现有的DHCP配置。Trust模式通常被用于实现Voice over IP(VoIP)网络中的IP电话,以确保IP电话在受到DHCP Spoofing攻击的情况下也能正常工作。
2、DHCP 会维护一张 IP地址、MAC地址、接口 的 绑定表(也称可信任接口列表),当从可信任接口收到 DHCP报文时,会查看报文中的源MAC地址、客户端MAC地址、客户端IP地址和接受该报文的接口是否与 DHCP Snooping 绑定表中的条目匹配,若不匹配,则丢弃该DHCP报文,以防止被恶意报文或伪造报文攻击
当 租约过期,或者 客户端下线时,会将对应的 条目从 DHCP snooping 绑定表 中删除
DHCP snooping 功能:
1、防止未经授权的 DHCP 服务器:阻止 未经授权的DHCP服务器通过接口,只允许受信任的接口通过DHCP报文
2、防止DHCP地址欺骗攻击:防止恶意用户通过欺骗方式发送虚假的 DHCP 响应或请求,使得客户端获得虚假的地址信息,无法正常访问网络
3、能够进行 动态绑定:确保每个设备只能获得其绑定的IP地址;提供一层安全保护
DHCP snooping 绑定表:
DHCP snooping 绑定表 包含:
1、IP 地址:DHCP 服务器下发给客户端的 IP 地址
2、MAC地址:客户端 的网卡MAC地址
3、租约期限:客户端被分配的IP地址的可使用时间(理解为保质期),通常以秒为单位
4、VLAN:客户端所在的 vlan ID
5、接口信息:连接客户端的接口
通过DHCP snooping 能够有效地防范中间人攻击、仿冒DHCP续租报文攻击、仿冒者攻击
关于 绑定表:
· 对于 动态分配 给用户的 IP地址,设备会自动学习用户的MAC地址并建立绑定表关系,不需要手动配置绑定表· 对于 静态分配(手工分配) 给用户的 IP地址,设备不会自动学习用户的MAC地址,需要手动配置绑定表
· 中间人攻击:
攻击者伪装成 DHCP服务器 和 DHCP客户端欺骗 DHCP服务器,让其认为自己是DHCP客户端欺骗 DHCP客户端,让其认为自己是DHCP服务器当 DHCP客户端要获取 地址信息时,以为攻击者是DHCP服务器,就会将DHCP请求发送给攻击者,而攻击者将该请求转发给DHCP服务器,DHCP服务器收到请求后,就会下发地址信息给攻击者,攻击者再将该信息转发给真正的客户端,在此期间,攻击者能够随时查看、修改这些报文,使得网络信息不安全且若是攻击者不进行修改报文,则不容易会被发现使用 DHCP snooping 绑定表功能 能够有效防止该攻击,会将 DHCP 报文与绑定表进行匹配(主要检查报文中的VLAN、IP、MAC、接口等信息是否匹配绑定表),若匹配成功则转发该报文,匹配不成功则丢弃
· 仿冒DHCP续租报文攻击:
以获取到IP地址的合法用户通过向服务器发送DHCP request 或 DHCP release 报文用以续租或释放IP地址如果攻击者冒充合法用户不断向 DHCP server 发送DHCP request 报文来续租IP地址,会导致这些到期的IP地址无法正常回收,以至于一些合法用户无法获取到该IP地址若攻击者仿冒合法用户的DHCP release 报文发送给 DHCP server ,将会导致用户异常下线使用 DHCP snooping 绑定表功能 能够有效防范该攻击。通过将 DHCP request续租报文和DHCP release 报文与绑定表进行匹配操作能够有效的判断该报文是否合法(主要检查报文中的VLAN、IP、MAC、接口等信息是否匹配绑定表),若匹配成功则转发该报文,匹配不成功则丢弃
· 仿冒者攻击:
攻击者伪装成DHCP服务器,当客户端发起请求时,仿冒者会给客户端回复一个错误的信息(ACK),使得客户端获取到一个错误的 网络信息(IP地址、网关、DNS等),使得客户端无法进行上网。防止仿冒者攻击,可以使用 DHCP Snooping :需要手动进行配置:将连接DHCP服务器的那一端设置为 trust(信任)模式将其余的接口设置为 untrust(不信任)模式所有从 untrust 收到的 DHCP request 报文(DHCP回包)都会被丢弃开启 DHCP Snooping 后,会生成一个 DHCP Snooping 绑定表:绑定 IP地址、MAC地址 和接口因此 DHCP Snooping 一般用于二层网络设备能够通过对报文与 DHCP snooping 绑定表进行匹配检查,匹配不上则丢弃报文
修改 CHADDR 值进行攻击:
在 DHCP报文 中 chaddr字段是用来唯一标识不同客户端的,通常是MAC地址攻击者通过不断修改chaddr字段,不断发送,让服务器不断下发 IP地址,目的是 耗尽服务器的DHCP地址池中的地址,使得合法用户请求IP地址时,无法获取到地址也是通过 DHCP snooping 绑定表进行防范,接收到 DHCP报文后,检查报文中的 chaddr 与其MAC地址是否匹配