net.ipv4.conf.eth0.route_localnet=1 / route_localnet 的安全含义是什么?

信息安全 网络 路由 欺骗 iptables
2021-08-26 20:40:07
sudo sysctl -w net.ipv4.conf.eth0.route_localnet=1

的安全含义是route_localnet什么?

3个回答

此选项的文档显示以下内容:

route_localnet - BOOLEAN
    Do not consider loopback addresses as martian source or destination
    while routing. This enables the use of 127/8 for local routing purposes.
    default FALSE

从本质上讲,它告诉内核不要将本地路由视为危险并拒绝它。只要net.ipv4.ip_forward0,您就不需要更改route_localnet在大多数情况下,您仅在使用iptables执行一些PREROUTING和/或FORWARD时才需要它。

如果这不在面向公众的网络接口上,则安全风险是有限的,否则您希望确保正确完成入口和出口过滤。这可以减少欺骗性流量的影响。

我认为主要的含义是,如果它们未能指定入口接口,则允许 127/8 通信的防火墙规则(分布或自定义)可能不再有效。如果规则是专门为它设计的,我不会看到一个大问题。

如果它实际用于线路(而不是虚拟交换机网络),则更多的是兼容性和一致性问题。

此设置的一个可能的安全含义是,如果服务在 localhost 上侦听作为一种安全措施(即它依赖于 127.0.0.1 不能被它运行的机器以外的机器寻址),这可能会破坏该假设,因为其他LAN 上的机器可以将流量路由到此主机上的 127.0.0.1。

在 Kubernetes(当前设置此选项)的上下文中对此问题的示例和讨论是here