![为什么 ipsec 要我禁用重定向?](https://linux22.com/image/188691/%E4%B8%BA%E4%BB%80%E4%B9%88%20ipsec%20%E8%A6%81%E6%88%91%E7%A6%81%E7%94%A8%E9%87%8D%E5%AE%9A%E5%90%91%EF%BC%9F.png)
我刚刚配置了一个 VPN 连接(l2tp),但是当我运行时,ipsec verify
我得到:
$ ipsec verify
...
NETKEY: Testing XFRM related proc values
ICMP default/send_redirects [NOT DISABLED]
Disable /proc/sys/net/ipv4/conf/*/send_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!
ICMP default/accept_redirects [NOT DISABLED]
Disable /proc/sys/net/ipv4/conf/*/accept_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!
XFRM larval drop [OK]
您能用简单的语言解释一下这意味着什么吗?如果我不禁用它们会发生什么?
答案1
为了发送重定向你可以在中找到答案利伯斯旺常见问题解答:
假设您在云中有一个与手机一起使用的 VPN 服务器。您的手机将设置 IPsec VPN,其所有流量都会被加密并发送到云实例,云实例将其解密并使用 SNAT 将其发送到互联网上。它收到的回复会被加密并发送到您的手机。
您的手机将向 VPN 服务器发送加密数据包。服务器在 eth0(它唯一的接口!)上接收它并解密它。然后,解密后的数据包就可以进行路由了。服务器查看应将数据包发送到哪个接口。注定是要从eth0出去的。由于数据包通过 eth0 传入并通过 eth0 发出,因此服务器显然必须有一条不涉及自身的更好路径,因为它从相同的接口发出。它不知道数据包已加密到达并被解密。
这就是为什么我们建议使用以下命令在 /etc/sysctl.conf 中禁用“send_redirects”
也许是强天鹅简介这里更清楚一点:
如果 VPN 网关不是 LAN 的默认网关,如果主机将发往远程主机/子网的流量发送到 VPN 网关,并将它们定向到 LAN 的默认网关(这可能不会),则 ICMP 重定向可能会返回到主机。不起作用,否则可能会导致该流量未加密)。为了避免这种情况,请通过将 net.ipv4.conf.all.send_redirects 和 net.ipv4.conf.default.send_redirects 设置为 0 来禁用发送此类 ICMP 消息(如果在接口出现之前未设置后者,则还要设置选项单独的接口,即 net.ipv4.conf..send_redirects)。
为了接受重定向我认为只是良好的网络实践。由于您的 VPN 网关应该知道所有本地路由,因此任何 ICMP 重定向都是伪造的,应被忽略。