该问题的答案部分来自以下问题:


通用防火墙清单文件通过删除所有我本来不允许的内容(除ICMP之外)结束。 )。


但是,允许防火墙允许ICMP的确是一种好的做法?这对安全有何影响?在某些情况下应关闭ICMP吗?

评论

我敢肯定还有很多其他原因,但是有一个原因-这使远程管理成为噩梦。

这是“除非您是网络之神,并且真的知道您在做什么,否则请不要理会”。

IMO,这条规则适用于整个防火墙,而不仅仅是ICMP。

另请参阅:停止破坏Internet!

RFC 4890:ietf.org/rfc/rfc4890.txt和此RFC草案:datatracker.ietf.org/doc/draft-ietf-opsec-icmp-filtering / ...……都提供了有关如何同时过滤ICMPv4和ICMPv4的详细建议。 ICMPv6数据包。

#1 楼

与其他IP协议相比,ICMP很小,但是它确实具有大量不同的功能。 ICMP的核心设计为IP的调试,故障排除和错误报告机制。这使其具有不可思议的价值,因此需要大量的考虑才能将其关闭。就像在所有cron条目的末尾加上>/dev/null 2>&1一样。转换为3种类型


0-回声应答(ping响应)
8-回声请求(ping请求)
11-超出时间

这是16种中的3种。让我们看一下其他一些可用的ICMP类型。减慢其传输速度)
3-无法到达目的地(包括16种不同类型的消息,从报告碎片问题到防火墙报告端口已关闭),两者均可对于使非恶意主机在网络上正常运行而言非常宝贵。实际上,有两种(可能更多,但对我来说最明显的)是很好的情况,您不想限制ICMP。


路径MTU发现-我们结合使用的“不要分段”标志,然后键入3代码4(“目标不可达-需要分段,并且设置了DF标志”),以确定主机之间路径上的最小MTU。这样,我们可以避免传输过程中出现碎片。
Active Directory要求客户端ping域控制器以拉下GPO。他们使用ping来确定“最接近”的控制器,如果没有响应,则假定没有一个控制器足够接近。因此不会发生策略更新。

这并不是说我们必须将所有事物都开放给全世界。使用ICMP可以进行侦察,这通常是阻塞的原因。可以使用ping来确定主机是否确实在运行,或者可以使用“超时”(作为跟踪路由的一部分)来规划网络体系结构,也可以使用Rory禁止重定向(类型5代码0)来更改主机的默认路由。 br />
鉴于所有这些,我的建议是,一如既往,对您的保护采取审慎周到的方法。整体上阻止ICMP可能不是最好的主意,但是选择并选择要阻止的内容,并从该位置进行选择可能会为您带来所需的信息。

评论


小细节:虽然ICMP在IPv4中是可选的,但IPv6要求它正常运行。 ICMP的角色已发生很大变化。轻量级的内容:blogs.cisco.com/security/icmp-and-security-in-ipv6

–迈克
2012年10月17日在7:43

@Mike哦,可以肯定,我想我不清楚,但是我在特别谈论v4。 IPv6是一种与众不同的野兽,我们在设计和保护v6网络时确实需要将其视为完全不同的协议。

–斯科特包
2012年10月17日在11:38

+1“ ...或Rory禁止...”我实际上大声笑了。

– tylerl
2012年10月18日在2:08

@tylerl:我也笑了。当然,我已经喝了些酒,而且已经比睡前晚了1.5个小时。

–斯科特包
2012年10月18日,2:14

Source Quench已被正式弃用(RFC 6633)。而且几十年来几乎没有在互联网上见过。

–迈克尔·汉普顿
13年5月17日在0:37

#2 楼

ICMP存在是有原因的,并非所有原因都是ping。这是“元”协议,用于传达有关网络本身的控制消息。请查看Wikipedia上的ICMP,以更好地了解它的用途和用途。其他ICMP消息还包括目标主机不可达,需要分段,拥塞控制,超出TTL,IP协议错误

网络将在没有ICMP的情况下运行-面对数据包丢失的抵御能力是IP的核心优势之一-但它将运行得更慢,效率更低,并且没有这些信号的好处可以帮助您诊断和解决问题。

ICMP的安全性问题往往是比较模糊的“信息披露”问题。例如。如果您的路由器将ICMP消息发送回某人,则表明某人知道您有路由器。攻击者可能知道自己拥有路由器是您担心的事情,或更可能不是。但是,为了以防万一,出于安全考虑,安全性研究往往倾向于保持沉默。以防万一。当前,在任何主流操作系统中都不存在。但是,为了以防万一,出于安全考虑,安全倡导者再次犯错。

评论


您错了,但我同意您的看法,即普通用户/管理员不应阻止ICMP。 ICMP存在多个关键的安全问题。主要问题是控制级反馈(超过ttl)不仅由目的地发送,还由中间跃点发送,可用于基于特征(初始TTL,IP标志以及更重要的IP ICMP消息的ID)。此外,ICMP消息也可以作为防火墙遍历的反馈,结合TCP窗口检查防火墙,您可以执行序列号推断攻击。

–jean-loup
2015年2月2日在13:57



#3 楼

坦白地说,将某些出站ICMP路由器级和软件防火墙级都作为额外的安全层进行过滤是很聪明的。在尝试破坏网络之前尝试获取尽可能多的有关网络的信息。如果您正在打开闸门,它们可以在很短的时间内获得大量详细信息。收集信息的资源,然后根据您认为保护自己和网络所必需的内容来过滤过滤器。便宜的一台,并有一台辅助计算机作为防火墙来测试我的所有路由器/ ipchains /软件冷杉在我为家庭和雇用我来保护其网络的任何客户通过我的主要网络使用ewalls设置之前,我强烈鼓励人们尝试对端口扫描以及如何突破防火墙进行一些研究在他们自己的网络上,以便他们可以更好地保护自己和所帮助的任何家庭。用于侦察

还有

InfoSec研究所的ICMP攻击
之所以能够继续工作,是因为程序员能够重新编码原始攻击并更改其工作方式和使用资源。对于Google可能会过滤掉的资源,请务必谨慎并运用自己的智慧!

我从事个人计算机技术已有22年,而网络安全专家则有10年。
我目前正在参加ECH和CPTS的学习,完成这些课程后,我将在攻读进攻性安全课程。

希望这会有所帮助,其他人会发现这些信息对我恢复该系统的备份非常有用,并且在此问题上我会找到其他链接和资源,我将更新此答案。

#4 楼

阻止ICMP不仅无用,而且在大多数情况下也是有害的。如果您不确定自己在做什么,尤其是为什么,那么有几个原因为什么您不应该阻止ICMP。是的,icmp ping可以帮助其他人“配置”您的网络。但是老实说,如果您根本没有打开任何tcp服务,您将被看到。如果您只是丢包,就会看到。如果您以错误的方式回应,将会看到您。因此,如果您认为必须将我们的重要服务器隐藏在网络中,因为这样会使它们更加安全,那么您的主机将成为更明亮的目标。只有无数种方法可以解决该问题,从而破坏mtu路径发现,拥塞控制等,甚至使服务器脱颖而出。因此,如果您没有足够的理由这样做,请不要在icmp中阻塞icmp,然后请仔细阅读并阅读icmp协议规范,以便您了解自己的工作方式和原因。是的,如果不确定您是否有旧内核,最好在网络边缘阻止icmp重定向。但是另一方面,更新服务器和其他主机(解决实际问题)比将它们隐藏在总是有人会发现您的错误的地毯下更好。

#5 楼

从协议结构可以看出,这完全取决于使用它的区域,并且由于防火墙能够根据类型和代码参数进行操作,因此您可以决定要通过什么防火墙,而不要通过什么。
显然,如果防火墙接收到ICMP Echo请求,并且让您知道目标主机是否处于活动状态,则没有问题,防火墙也必须能够让Echo Reply通过。必须受到DPI的约束,也就是说,它们必须与数据包的规范一致:如果ICMP数据包通过传入/传出防火墙,并且网络中的一台或多台主机上存在恶意软件,则这些主机可以从一台C&C服务器并将信息泄露到该服务器。
通常,我认为在边界路由器上使用它并不明智,但是对于内部网络诊断,是的。