Linux怎么设置net.ipv4.conf.all.accept_redirects拒绝ICMP重定向

梦瑶酱_7023

梦瑶酱_7023

2026-11-09

932人浏览

原创

必须同时设为0,因default控制新建接口(如容器网卡)默认值,all控制现有接口立即生效,缺一将导致新旧网卡均可能接收重定向报文;还需同步关闭secure_redirects、accept_source_route并启用rp_filter构成纵深防御。

linux怎么设置net.ipv4.conf.all.accept_redirects拒绝icmp重定向

必须设为 0,不能只改 default 或漏掉 all —— 否则新网卡或容器网络仍可能接收重定向报文,导致路由被篡改。

为什么只改 net.ipv4.conf.all.accept_redirects 还不够

内核对网络接口的参数继承有两层:default(新创建接口的默认值)和 all(当前所有接口立即生效)。只设 default 不影响已存在的 eth0、docker0 等接口;只设 all 则下次新增网卡(比如 k8s 创建 pod 网络)会沿用旧的默认值(通常是 1)。两者必须同时设为 0 才能覆盖全量场景。

  • net.ipv4.conf.all.accept_redirects = 0:让所有已有接口立刻停止接收 ICMP 重定向
  • net.ipv4.conf.default.accept_redirects = 0:确保后续新建接口(包括容器、虚拟网卡)默认关闭该功能
  • IPv6 同理,net.ipv6.conf.all.accept_redirects 和 net.ipv6.conf.default.accept_redirects 也必须显式设为 0

配置文件位置与写法细节

推荐写入 /etc/sysctl.d/99-secure.conf(优先级高、语义清晰、不污染主配置),而非直接改 /etc/sysctl.conf。内容如下:

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

注意:= 两侧必须有空格,行尾不能有多余空格或注释(sysctl 解析器对格式敏感);不要写成 accept_redirects=0(缺少前缀会忽略)。

Linuxdo Application
Linuxdo Application

为 Linux.do 注册撰写高通过率、去 AI 化的中文小作文。进行自适应调查以了解申请人的真实背景,...

下载

生效与验证时容易忽略的点

执行 sudo sysctl -p /etc/sysctl.d/99-secure.conf 后,仅表示参数已加载进内核,不代表业务路由没被破坏。务必验证两件事:

  • 检查是否真为 0:sysctl -a | grep 'accept_redirects' | grep =\ 0 —— 若输出为空,说明某一项仍是 1
  • 确认业务连通性:ip route get 8.8.8.8 应返回正常路径(如 via 192.168.1.1 dev eth0),而不是 unreachable 或 unexpected interface
  • 别忘了 flush 路由缓存:sysctl -w net.ipv4.route.flush=1,否则旧重定向带来的错误路由条目可能残留

配套参数不补全等于白设

攻击者常组合利用多个 IP 层机制绕过单一防护。accept_redirects = 0 单独存在时,仍可能被 accept_source_route = 1 或 rp_filter = 0 抵消效果。必须同步设置:

  • net.ipv4.conf.all.secure_redirects = 0:这个“安全重定向”校验逻辑早已过时且可绕过,显式关掉更可靠
  • net.ipv4.conf.all.accept_source_route = 0:禁用源路由选项,堵住另一条 IP 地址伪造路径
  • net.ipv4.conf.all.rp_filter = 1:反向路径过滤,自动丢弃源 IP 不匹配入接口的包,是防欺骗的基础

这些参数共同作用才构成纵深防御,缺一不可。单独调一个 accept_redirects 是最常见、也最危险的“伪加固”。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4470

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3753

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

3053

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7550

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

7182

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

4093

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3565

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3819

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习