设为0是显式禁用源路由,防止攻击者绕过防火墙或发起反射攻击;需临时执行echo 0 > /proc/sys/...并永久写入sysctl.conf,再配合rp_filter、accept_redirects等参数构建纵深防护。

直接把 net.ipv4.conf.all.accept_source_route 设为 0,就能让内核在网络栈最底层丢弃所有带源路由选项的 IPv4 报文——这不是过滤,是彻底不处理,伪造路径根本进不了协议栈。
为什么必须设为 0 而不是依赖默认
虽然多数现代发行版默认值已是 0,但生产环境不能赌“默认”。一旦某次内核更新、容器启动或配置覆盖导致该值变回 1,攻击者就可能用源路由绕过防火墙、伪装内网跳转、发起反射类攻击。设为 0 是显式声明:本机不参与任何源路由路径协商。
临时关闭(立即生效,重启丢失)
运行以下两条命令:
- echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
- echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_source_route(把 eth0 换成你实际的外网接口名,如 ens3、enp0s3 等)
执行后可立刻验证:sysctl net.ipv4.conf.all.accept_source_route 应输出 = 0;若仍为 1,说明写入失败或权限不足(需 root)。
永久固化(重启后仍有效)
编辑 /etc/sysctl.conf 或新建 /etc/sysctl.d/99-secure.conf,加入:
- net.ipv4.conf.all.accept_source_route = 0
- net.ipv4.conf.eth0.accept_source_route = 0(同样替换接口名)
保存后执行:sysctl -p 或 sysctl --system 加载全部配置。注意:如果系统使用 systemd-sysctl,sysctl --system 更可靠,它会按顺序加载 /etc/sysctl.d/*.conf 和 /etc/sysctl.conf。
配合其他关键参数构建纵深防护
单关源路由不够,需同步加固网络层可信路径校验:
- 启用反向路径过滤:添加 net.ipv4.conf.all.rp_filter = 1(宽松模式,兼容大多数场景)
- 禁用 ICMP 重定向收发:添加 net.ipv4.conf.all.accept_redirects = 0 和 net.ipv4.conf.all.send_redirects = 0
- 关闭安全重定向校验(已过时且易绕过):net.ipv4.conf.all.secure_redirects = 0
这些参数共同作用,封堵 IP 伪造、路径劫持、路由表污染等常见网络层欺骗入口,不增加规则开销,却显著抬高攻击门槛。











