宝塔面板安全提示:禁用 IPv4 发送重定向 完整教程

当宝塔面板安全扫描提示「未禁用 IPv4 发送重定向(send_redirects)」时,可通过以下步骤快速修复,保障服务器网络安全。


一、问题背景

风险说明

net.ipv4.conf.all.send_redirectsnet.ipv4.conf.default.send_redirects 是 Linux 内核控制 ICMP 重定向报文发送的参数。

  • 若保持默认开启(值为 1),服务器可能被利用进行路由劫持、网络欺骗等攻击。
  • 安全加固要求将其设置为 0,即禁止发送 ICMP 重定向报文

二、操作步骤(永久生效推荐)

步骤 1:编辑内核参数配置文件

  1. 登录服务器终端(可通过宝塔面板「终端」或 SSH 工具)。
  2. 执行以下命令打开配置文件:
    bash vi /etc/sysctl.conf
  3. 在文件末尾添加以下两行配置:
    conf net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0
    > 示例:添加后文件末尾效果
    conf ... net.core.somaxconn = 1024 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0
  4. 保存并退出编辑器(vi 操作:按 Esc → 输入 :wq → 回车)。

步骤 2:加载配置(立即生效)

执行以下命令,让新配置永久生效(重启后依然保留):

sysctl -p

执行成功后,终端会输出所有加载的配置项,包含你新增的两行:

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

步骤 3:临时生效(可选,用于快速验证)

若需立即生效且不依赖配置文件(重启后失效),可执行以下命令:

sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.route.flush=1

也可合并为一行执行:

sysctl -w net.ipv4.conf.all.send_redirects=0 && sysctl -w net.ipv4.conf.default.send_redirects=0 && sysctl -w net.ipv4.route.flush=1

三、验证配置是否生效

方法 1:查看 sysctl -p 输出

执行 sysctl -p 后,若输出中包含以下内容,说明配置已加载:

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

方法 2:直接查询参数值

执行以下命令,分别检查两个参数的当前值:

sysctl net.ipv4.conf.all.send_redirects
sysctl net.ipv4.conf.default.send_redirects

预期输出

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

若输出为 0,代表配置已生效,安全风险已修复。


四、宝塔面板重新扫描

  1. 回到宝塔面板 → 「安全」→ 「安全检测」。
  2. 点击「重新检测」,等待扫描完成。
  3. 原「未禁用 IPv4 发送重定向」风险项应标记为已修复

五、常见问题解答

Q1:执行 sysctl -p 报错怎么办?

  • 检查 /etc/sysctl.conf 中是否有拼写错误(如参数名、等号格式)。
  • 确保配置行没有多余空格或特殊字符。
  • 修正后重新执行 sysctl -p

Q2:重启服务器后配置失效?

  • 若仅执行了 sysctl -w 临时生效,重启后会恢复默认值。
  • 必须完成步骤 1 + 步骤 2,将配置写入 /etc/sysctl.conf 才能永久生效。

Q3:是否会影响服务器正常业务?

  • 不会。禁用 ICMP 重定向是标准的安全加固操作,不会影响正常的网络通信和业务运行。

六、总结

通过「编辑配置文件 → 加载配置 → 验证生效」三步,即可完成 IPv4 发送重定向的禁用,解决宝塔面板安全提示,提升服务器网络安全性。

  • ✅ 永久生效:写入 /etc/sysctl.conf,重启后依然保留。
  • ✅ 操作简单:仅需修改两行配置,无需额外依赖。
  • ✅ 安全可靠:符合等保及服务器安全加固标准。