IP源防攻击IPSG(IP Source Guard)

IP源防攻击IPSG(IP Source Guard)是一种基于二层接口的源IP地址过滤技术,它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。

2.1 IPSG基本原理

    1. 绑定表

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实现原理图

    1. 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服务器直接或间接连接的接口设置为信任接口。
    1. 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 多交换机环境

相关推荐
feng_you_ying_li7 小时前
linux之数据链路层
linux·网络·智能路由器
国科安芯9 小时前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
国科安芯11 小时前
算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错
网络·人工智能·嵌入式硬件·安全·边缘计算·低轨卫星·商业航天
wdeok11 小时前
Socket编程UDP-简单的聊天室
网络·网络协议·udp
QXWZ_IA15 小时前
定位数据怎么推给 IoT 平台?消息协议选型与接入准备
网络·人工智能·物联网·安全
wdeok16 小时前
Socket编程Tcp
服务器·网络·tcp
xiaoye-duck1 天前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
无足鸟ICT1 天前
【RHCA+】iptraf-ng(网络监控分析)
linux·网络
坤坤子吖2 天前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
xiaoye-duck2 天前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型