在几个服务器系统上,我遇到了两种主要的iptables防火墙configuration:
第一个是阻止每个INPUT除了提供服务的端口,如HTTP。
第二个阻塞每个INPUT除了NEW状态的连接的数据包为几个服务,精心设置和所有数据包在ESTABLISHED状态的连接。 它也阻塞除ESTABLISHED状态的连接之外的所有OUTPUT数据包。
后者提供什么样的安全性,第一个简单的解决scheme不pipe理?
当然,阻止使用外出端口的用户可能是有用的,但是如果我不需要保护服务器不受它自己的用户的影响,而只是来自外部的威胁,这两种方法是相同的,还是会提供好处?
你所描述的第一种types的防火墙是无状态的。 这是简单的,不跟踪连接; 它只是尽可能快地检查给定的规则。 除了在防火墙性能严重瓶颈的情况下,通常不推荐这样做,因为它比起乍看起来明显可以显示更多的stream量。 特别是,与合法连接无关的stream量可以通过这样的防火墙。
第二种types的防火墙是有状态的 。 它能够跟踪连接状态,确定一个特定的数据包是否与一个已知好的连接相关联,并接受或拒绝这个连接。 捕获无效stream量要比无状态防火墙好得多。 如果没有一些压倒一切的担心,所有的防火墙应该是有状态的,以获得最大的安全性。
这通常归结为前面描述的糟糕计划。 反应式安全解决/扑灭火灾。 也就是说,“哦,屎,他们在123上敲打我们,把它锁起来!” 或者更合适的,列入黑名单。 后者是一种白名单(最佳实践),通常归结为通过隐式排除locking事物,并根据需要开放你所需要的东西。
你select哪一个通常归结于你的环境/风格。