1. IP Source Guard(IP 源防攻击)特征
- 基于二层接口的源 IP 地址过滤
- 只支持在二层物理接口或者 VLAN 上使用,而且只对开启了 IPSG 功能的非信任接口进行检查
- 只检查主机发送的 IP 报文(IPv4 和 IPv6),不对 ARP 和 PPPoE 进行检查
- 利用「绑定表(源 IP 地址、源 MAC 地址、所属 VLAN、入接口的绑定关系,静态绑定表或 DHCP Snooping 绑定表)」去检查二层接口上收到的 IP 报文,匹配绑定表的报文才允许通过,其他报文将被丢弃
- 防止非法主机伪造合法主机的 IP 地址进行冒充
- 防止非法主机不能通过自己手工配置的 IP 地址方式来访问网络或攻击网络
- 静态绑定表项中指定的信息都用于 IPSG 过滤接口收到的报文
- 动态绑定表项中 IPSG 依据该表项中的哪些信息过滤接口收到的报文,由用户设置的检查项决定,缺省是四项都进行匹配检查(MAC 地址、IP 地址、VLAN ID、入接口)
- 需要使用到信任接口时,通常与 DHCP Snooping 配合使用
- IPSG 防止不了 ARP 欺骗攻击
- IPSG 无法避免地址冲突
2. Port Role
信任接口:从接口收到的报文也不会执行 IPSG 检查(需要确定此接口一般不存在攻击)。在 DHCP Snooping 的场景下,通常把与合法 DHCP 服务器直接或间接连接的接口设置为信任接口
非信任接口:从接口收到的报文会执行 IPSG 检查(使能 IPSG)
未使能 IPSG:从接口收到的报文不会执行 IPSG 检查(可能存在攻击)
3. 实现原理
非法主机仿冒合法主机的 IP 地址发送报文到达 Switch 后,因报文和绑定表不匹配被 Switch 丢弃
4. 应用场景
- 防止主机私自更改 IP 地址(针对 IP 地址是动态分配的环境,或管理手工指定)
- 限制非法主机接入(针对 IP 地址是静态分配的环境)
1)基于接口使能IPSG
在接入用户侧的接口上应用 IPSG,该接口接收的所有 IP 报文均进行 IPSG 检查
2)基于VLAN使能IPSG
在接入用户侧的 VLAN 上应用 IPSG,属于该 VLAN 的所有接口接收到 IP 报文均进行 IPSG 检查
3)多交换机环境
- 假设接入内网1 的 Switch_1 不支持 IPSG 功能,可以在 Switch_2 上的 IF1 接口应用 IPSG(需要在 Switch_2 上创建内网1 内主机的绑定表)。但是由于 Switch_1 没有 IPSG 功能,所以从 Switch_1 发送过来的报文是有可能存在 IP 欺骗攻击的,在 Switch_2 的 IF1 接口上应用 IPSG 可以把攻击隔绝在这里,使受攻击的范围减小到最小
- 接入内网2 的 Switch_2 的 IF2 接口上也需要应用 IPSG 功能,如果不应用,内网2 内也可能存在 IP 地址欺骗攻击
5. 绑定表
绑定表生成后,IPSG 基于绑定表向指定的[**接口或者指定的 VLAN **]下发 ACL,由该 ACL 来匹配检查所有 IP 报文
绑定表类型 | 生成过程 | 适用场景 |
---|---|---|
静态绑定表 | 使用 user-bind 命令手工配置 | 适用于主机数较少且主机使用静态 IP 地址的场景 |
DHCP Snooping动态绑定表(1) | DHCP 主机动态获取IP地址时,设备根据 DHCP 服务器发送的 DHCP Reply 报文动态生成 | 适用于主机数较多且主机从 DHCP 服务器获取 IP 地址的场景 |
DHCP Snooping动态绑定表(2) | 802.1X 用户认证过程中,设备根据认证用户的信息生成 | - 适用于主机数较多、主机使用静态 IP 地址、并且网络中部署了 802.1X 认证的场景 - 该方式生成的表项不可靠,建议配置静态绑定表 |
ND Snooping动态绑定表 | 配置 ND Snooping 功能后,设备通过侦听用户用于重复地址检测的 NS 报文来建立 | 仅针对IPv6主机,适用于主机数较多的场景 |
6. 与其他相关特性比较
1)IPSG 与 DAI
都是采用绑定表(静态绑定表或者 DHCP Snooping 绑定表)实现对报文过滤
特性 | 功能介绍 | 应用场景 |
---|---|---|
IPSG | 利用绑定表对 IP 报文进行过滤。设备会匹配检查接口上接收到的 IP 报文,只有匹配绑定表的 IP 报文才允许通过 | 防止 IP 地址欺骗攻击。如防止非法主机盗用合法主机的 IP 地址,非法获取上网权限或者攻击网络 |
DAI | 利用绑定表对 ARP 报文进行过滤。设备会匹配检查接口上接收到的 ARP 报文,只有匹配绑定表的 ARP 报文才允许通过 | 防御中间人攻击。中间人通过ARP欺骗,引导流量从自己这里经过,从而可以截获他人信息 |
2)IPSG 与 静态 ARP
静态 IPSG 和静态 ARP 都可以实现 IP 和 MAC 的绑定
- 静态 ARP 防止不了 IP 地址欺骗攻击
- IPSG 防止不了 ARP 欺骗攻击 | 特性 | 功能介绍 | 应用场景 | | :—-: | :—-: | :—-: | | IPSG | 通过静态绑定表固定 IP 地址和 MAC 地址之间映射关系,设备会匹配检查接口上接收到的报文,只有匹配绑定表报文才允许通过 | 一般部署在与用户直连的接入设备(也可以是汇聚或者核心设备)上,防止内网中的 IP 地址欺骗攻击。如非法主机仿冒合法主机的 IP 地址获取上网权限 | | 静态ARP | 通过静态 ARP 表固定 IP 地址和 MAC 地址之间映射关系,静态 ARP 表项不会被动态刷新,设备根据静态 ARP 表转发接收到的报文 | 一般部署在网关上,配置重要服务器的静态 ARP 表项,防止 ARP 欺骗攻击,保证主机和服务器之间的正常通信 |
3)IPSG 与 Port Security
静态 IPSG 和端口安全都可以实现 MAC 地址和接口的绑定
特性 | 功能介绍 | 应用场景 |
---|---|---|
IPSG | 通过在绑定表中固定 MAC 和接口的绑定关系,实现固定主机只能从固定接口上线,并且绑定表以外的非法 MAC 主机无法通过设备通信。但是绑定表项需要手工配置,如果主机较多,配置工作量比较大 | 绑定 MAC 和接口只是 IPSG 的一部分功能,IPSG 能实现 IP 地址、MAC 地址、VLAN 和接口之间的任意绑定。它主要用来防止 IP 地址欺骗攻击。如防止非法主机盗用合法主机的 IP 地址,非法获取上网权限或者攻击网络 |
端口安全 | 通过将接口学习到的指定数量的动态 MAC 地址转换为安全 MAC 地址,以固定 MAC 表项,实现固定主机只能从固定接口上线,并且 MAC 表以外的非法 MAC 主机无法通过设备通信。安全 MAC 地址是动态生成的,无需手工配置 | 防止非法主机接入,还可以控制接入主机的数量,比较适合于主机较多的场景 |