如何调整Linux内核设置以抵御ICMP重定向攻击?

2026-05-07 19:311阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计657个文字,预计阅读时间需要3分钟。

如何调整Linux内核设置以抵御ICMP重定向攻击?

直接禁用TCP和UDP、ICMP重定向报文,是防止被利用进行路由攻击的最有效方式。这并非依赖防火墙过滤,而是从内核行为层面切断攻击入口,特别适用于不直接处理路由器的业务服务器。

关闭 IPv4 和 IPv6 的重定向收发

必须同时禁用“接收”和“发送”,否则仍存在被误导或被当跳板的风险:

  • 禁收:防止主机误信伪造重定向,错误更新本地路由表
  • 禁发:避免本机因配置异常(如网关错设)主动广播重定向,成为攻击中转点

/etc/sysctl.d/99-secure.conf(推荐)或 /etc/sysctl.conf 中添加以下内容:

net.ipv4.conf.all.accept_redirects = 0<br>net.ipv4.conf.default.accept_redirects = 0<br>net.ipv4.conf.all.send_redirects = 0<br>net.ipv4.conf.default.send_redirects = 0<br>net.ipv6.conf.all.accept_redirects = 0<br>net.ipv6.conf.default.accept_redirects = 0

IPv6 默认不启用 send_redirects,但显式设为 0 更稳妥。

补充关键防护参数防绕过

仅关重定向不够,攻击者可能通过其他 ICMP 路径达成类似效果,需同步加固:

  • net.ipv4.conf.all.secure_redirects = 0:禁用已过时且易绕过的“安全重定向”校验
  • net.ipv4.conf.all.accept_source_route = 0:阻止源路由选项,防范 IP 地址伪造
  • net.ipv4.conf.all.rp_filter = 1:启用反向路径过滤,丢弃源 IP 不可信的入包(若有多网卡或使用 Kubernetes,可先试 =2 宽松模式)

使配置生效并验证

执行以下命令加载新配置:

sudo sysctl -p /etc/sysctl.d/99-secure.conf

验证是否全部生效:

sysctl -a | grep redirect | grep "= 0"

应看到所有相关参数值均为 0。再用 ip route get 8.8.8.8 确认出向路径未受影响,业务连通性正常。

注意事项与例外场景

若服务器启用了 net.ipv4.ip_forward=1、运行 Docker 或 Kubernetes,需确认容器网络逻辑是否隐式依赖重定向——绝大多数云环境和标准服务部署中并不依赖,可安全禁用。临时测试可用 sysctl -w,但务必写入配置文件,否则重启失效。

本文共计657个文字,预计阅读时间需要3分钟。

如何调整Linux内核设置以抵御ICMP重定向攻击?

直接禁用TCP和UDP、ICMP重定向报文,是防止被利用进行路由攻击的最有效方式。这并非依赖防火墙过滤,而是从内核行为层面切断攻击入口,特别适用于不直接处理路由器的业务服务器。

关闭 IPv4 和 IPv6 的重定向收发

必须同时禁用“接收”和“发送”,否则仍存在被误导或被当跳板的风险:

  • 禁收:防止主机误信伪造重定向,错误更新本地路由表
  • 禁发:避免本机因配置异常(如网关错设)主动广播重定向,成为攻击中转点

/etc/sysctl.d/99-secure.conf(推荐)或 /etc/sysctl.conf 中添加以下内容:

net.ipv4.conf.all.accept_redirects = 0<br>net.ipv4.conf.default.accept_redirects = 0<br>net.ipv4.conf.all.send_redirects = 0<br>net.ipv4.conf.default.send_redirects = 0<br>net.ipv6.conf.all.accept_redirects = 0<br>net.ipv6.conf.default.accept_redirects = 0

IPv6 默认不启用 send_redirects,但显式设为 0 更稳妥。

补充关键防护参数防绕过

仅关重定向不够,攻击者可能通过其他 ICMP 路径达成类似效果,需同步加固:

  • net.ipv4.conf.all.secure_redirects = 0:禁用已过时且易绕过的“安全重定向”校验
  • net.ipv4.conf.all.accept_source_route = 0:阻止源路由选项,防范 IP 地址伪造
  • net.ipv4.conf.all.rp_filter = 1:启用反向路径过滤,丢弃源 IP 不可信的入包(若有多网卡或使用 Kubernetes,可先试 =2 宽松模式)

使配置生效并验证

执行以下命令加载新配置:

sudo sysctl -p /etc/sysctl.d/99-secure.conf

验证是否全部生效:

sysctl -a | grep redirect | grep "= 0"

应看到所有相关参数值均为 0。再用 ip route get 8.8.8.8 确认出向路径未受影响,业务连通性正常。

注意事项与例外场景

若服务器启用了 net.ipv4.ip_forward=1、运行 Docker 或 Kubernetes,需确认容器网络逻辑是否隐式依赖重定向——绝大多数云环境和标准服务部署中并不依赖,可安全禁用。临时测试可用 sysctl -w,但务必写入配置文件,否则重启失效。