防范源路由欺骗的核心是关闭路由器等三层设备的源路由功能(如no ip source-route)并取消基于地址的信任机制,而非修改服务器路由表。

新手配置服务器路由表防源路由欺骗,核心不是改服务器路由表,而是关掉路由器/三层设备上对源路由选项的处理能力。源路由攻击不靠篡改服务器本地路由表,而是利用IP包头里的“源路由选项”字段,强制数据包按攻击者指定路径转发——这一步发生在网络层设备(如路由器、防火墙)上,服务器本身通常根本不处理该字段。
重点关掉源路由功能
在所有面向外部的路由器、防火墙或支持三层转发的交换机上执行:
- 华为/H3C设备:进入系统视图后输入 no ip source-route
- Cisco设备:在全局配置模式下输入 no ip source-route
- Linux服务器若启用了IPv4源路由(极少见),可通过 sysctl -w net.ipv4.conf.all.accept_source_route=0 关闭,并写入
/etc/sysctl.conf持久化
配合取消基于地址的信任机制
很多老式内网服务(如rlogin、rsh)依赖IP地址做身份信任,这恰好是源路由攻击的放大器。务必停用这类服务:
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
- 检查并卸载 rsh-server、rlogin 等软件包
- 确认 SSH 配置中
PermitRootLogin和AllowUsers设置合理,不用IP白名单代替认证 - Web或API服务禁用仅靠X-Forwarded-For或Remote-Addr做权限判断的逻辑
加一层入口过滤(URPF)
在边界路由器接口开启单播反向路径转发(URPF),能有效拦截伪造源IP的报文(含被源路由绕过的场景):
- 严格模式(strict):只允许从“去往该源IP的最佳返回路径”进来的包
- 推荐命令(华为):urpf strict 或带ACL控制范围(如仅对特定用户段启用)
- 注意:必须确保路由对称(进出接口一致),否则会误丢正常流量
别踩这些常见误区
新手容易花时间做但实际无效的操作:
- 在服务器上手动添加静态路由来“防御”——源路由攻击不走你配的路由表
- 试图在iptables/netfilter里匹配源路由选项——Linux默认已忽略该字段,且匹配开销大、不可靠
- 关闭ICMP重定向或禁ping——和源路由欺骗无直接关系
- 以为更新服务器操作系统就能解决——关键在中间网络设备配置


















