IP源防攻击IPSG(IP Source Guard)是一种基于二层接口的源IP地址过滤技术,它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。
2.1 IPSG基本原理
-
- 绑定表
IPSG利用绑定表(源IP地址、源MAC地址、所属VLAN、入接口的绑定关系)去匹配检查二层接口上收到的IP报文,只有匹配绑定表的报文才允许通过,其他报文将被丢弃。绑定表如图2-1所示,包括静态和动态两种。
图2-1 绑定表
绑定表生成后,IPSG基于绑定表向指定的接口或者指定的VLAN下发ACL,由该ACL来匹配检查所有IP报文。主机发送的报文,只有匹配绑定表才会允许通过,不匹配绑定表的报文都将被丢弃。当绑定表信息变化时,设备会重新下发ACL。缺省情况下,如果在没有绑定表的情况下使能了IPSG,设备会允许IP协议报文通过,但是会拒绝所有的数据报文。IPSG只匹配检查主机发送的IP报文,包括IPv4和IPv6报文,对于ARP、PPPoE等非IP报文,IPSG不做匹配检查。
IPSG原理图如图2-2所示,非法主机仿冒合法主机的IP地址发送报文到达Switch后,因报文和绑定表不匹配被Switch丢弃。
图2-2 IPSG实现原理图
-
- IPSG中的接口角色
IPSG仅支持在二层物理接口或者VLAN上应用,且只对使能了IPSG功能的非信任接口进行检查。对于IPSG来说,缺省所有的接口均为非信任接口,信任接口由用户指定。IPSG的信任接口/非信任接口也就是DHCP Snooping或ND Snooping中的信任接口/非信任接口,信任接口/非信任接口同样适用于基于静态绑定表方式的IPSG。
图2-3 IPSG中的接口角色示意图
IPSG中各接口角色如图2-3所示。其中:
- IF1和IF2接口为非信任接口且使能IPSG功能,从IF1和IF2接口收到的报文会执行IPSG检查。
- IF3接口为非信任接口但未使能IPSG功能,从IF3接口收到的报文不会执行IPSG检查,可能存在攻击。
- IF4接口为用户指定的信任接口,从IF4接口收到的报文也不会执行IPSG检查,但此接口一般不存在攻击。在DHCP Snooping的场景下,通常把与合法DHCP服务器直接或间接连接的接口设置为信任接口。
- IPSG的过滤方式
静态绑定表项包含:MAC地址、IP地址、VLAN ID、入接口。静态绑定表项中指定的信息均用于IPSG过滤接口收到的报文。
动态绑定表项包含:MAC地址、IP地址、VLAN ID、入接口。IPSG依据该表项中的哪些信息过滤接口收到的报文,由用户设置的检查项决定,缺省是四项都进行匹配检查。
2.2 IPSG应用在网络中的位置
IPSG一般应用在与用户直连的接入设备上,可以基于接口或者基于VLAN应用。
如图2-4所示,在接入用户侧的接口上应用IPSG,该接口接收的所有IP报文均进行IPSG检查。
图2-4 基于接口使能IPSG
如图2-5所示,在接入用户侧的VLAN上应用IPSG,属于该VLAN的所有接口接收到IP报文均进行IPSG检查。
图2-5 基于VLAN使能IPSG
如果与用户直连的接入设备不支持IPSG功能,也可以在汇聚设备或核心设备上应用IPSG,如图2-6所示。 假设接入内网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地址欺骗攻击。
图2-6 多交换机环境