关闭/打开无法访问消息的原因?

Pau*_*aul 4 linux icmp

我在这个问题上看到(如何阻止 Linux 发送 ICMP“目标无法访问”响应?)有很多讨论指出您不应该关闭 ICMP 无法访问的消息。我想知道为什么以及何时应该这样做?我也想知道怎么做。我知道它会破坏 MTU 路径发现,但还有什么?

在 cisco 设备上,您可以打开和关闭此功能,这肯定是有原因的。在他们的文档中,它只是说关闭它是为了提高安全性,因为更难获取有关您的网络的信息?这就是 cisco 文档所说的。我需要实现为我的公司打开和关闭开关的功能,所以我正在了解它。不管为什么我仍然必须这样做,但我想知道为什么要这样做或不给别人的答案。

当我想关闭 ICMP 重定向时,我会这样做:

echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
Run Code Online (Sandbox Code Playgroud)

对于无法访问的对象是否有类似的东西?

另一个线程上的用户是这样做的:

iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j DROP 
Run Code Online (Sandbox Code Playgroud)

这是一个好方法,然后我可以通过停止这种下降来再次打开它吗?

我应该告诉人们他们不需要这个功能吗?

编辑:在线我看到这个:

An attacker could gather information’s about your network when scanning it,
like unused IP’s and networks. When working with (interface-) Access-Lists,
a deny statement triggers an ICMP Type 3     Code 9/10 message
(Network/Host is Administratively Prohibited). When disabling ICMP    unreachables 
on the interface where the ACL is applied, the deny statement 
acts like a ‘drop’ and does not reply.
Run Code Online (Sandbox Code Playgroud)

pau*_*ska 6

来自security.SE 上关于同一主题的非常详尽且写得很好的答案,我强烈建议您阅读:

ICMP 的核心是设计为 IP 的调试、故障排除和错误报告机制。这使得它非常有价值,因此需要花很多心思将其关闭。这有点像在所有 cron 条目的末尾添加 >/dev/null 2>&1 。

Source Quench / Redirect 几乎已经过时并从现代网络设备中删除。IPv6需要ICMP 才能完全发挥作用。

底线:除非您完全理解其含义,否则不要阻止任何事情。如果我要给您一个建议,那就是在您的外部防火墙中阻止 icmp echo,并让其他所有内容保持打开状态。但这只是我的观点。