禁用ip源路由是防范ip欺骗的关键措施,需通过设置net.ipv4.conf.all.accept_source_route=0等内核参数实现,而非iptables;临时执行echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route,永久配置则写入/etc/sysctl.conf并运行sysctl -p生效。

Linux服务器防IP欺骗,关键一步是让内核直接丢弃含源路由选项的IPv4报文——这不是iptables能干的事,而是必须通过内核参数关闭源路由接收能力。
为什么禁用源路由很重要
源路由(Source Routing)允许发送方指定数据包经过的路径节点。攻击者可利用它绕过防火墙规则、伪造跳转路径,甚至发起中间人或反射类攻击。Linux默认虽已禁用,但生产环境必须显式确认并固化配置,不能依赖默认值。
设置 accept_source_route=0
该参数控制是否接受带源路由选项的IP包。设为0后,内核在网络栈最底层就直接丢弃,不进iptables、不触发日志、不消耗后续处理资源。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 临时生效(重启失效):
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_source_route(把 eth0 换成你实际网卡名) - 永久生效:在 /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
配合其他反欺骗参数一起启用
单禁源路由不够,需组合使用才能覆盖常见IP欺骗场景:
- 开启反向路径过滤(rp_filter):建议设为1(宽松)或2(严格),统一配置 all 和具体接口;
- 禁用ICMP重定向:添加 net.ipv4.conf.all.send_redirects = 0 和 net.ipv4.conf.all.accept_redirects = 0;
- (可选)丢弃源目IP相同的报文:防范LAND类攻击,需额外启用内核模块或通过iptables匹配 -s 127.0.0.1 -d 127.0.0.1 等规则。
验证是否生效
执行以下命令检查值是否为0:
- sysctl net.ipv4.conf.all.accept_source_route
- sysctl net.ipv4.conf.eth0.accept_source_route
- 也可读取文件:cat /proc/sys/net/ipv4/conf/all/accept_source_route
返回0即表示已禁用。若为1,请检查配置文件语法、是否遗漏 sysctl -p,或确认未被其他配置覆盖。










