为什么要使用防火墙服务器?
请注意:我对将其变成火焰战争不感兴趣!我了解许多人对此主题抱有坚定的信念,这在很大程度上是因为他们在防火墙解决方案上付出了很多努力,而且还因为他们被灌输了对他们的必要性的信念。 但是,我正在寻找安全专家的答案。我认为这是一个重要的问题,答案不仅会给我自己和我工作的公司带来更多好处。我运行服务器网络已经有好几年了,没有任何妥协,也没有任何防火墙。防火墙无法阻止我们曾经遇到过的安全威胁。 我想我在这里工作了太久了,因为当我说“服务器”时,我总是指“向公众提供的服务”,而不是“秘密内部计费数据库”。因此,我们的任何规则将在任何防火墙必须允许访问整个互联网。此外,我们的公共访问服务器都位于与办公室分开的专用数据中心中。 有人问了类似的问题,我的回答被投票为负数。这使我相信,要么投票否决的人并不真正理解我的答案,要么我不了解安全性,无法做我当前正在做的事情。 这是我的服务器安全性方法: 将服务器连接到Internet 之前,请遵循操作系统的安全准则 。 使用TCP包装程序将对SSH(和其他管理服务)的访问限制为少数IP地址。 使用Munin监视此服务器的状态。并以默认配置修复Munin节点固有的严重安全问题。 Nmap我的新服务器(也在将服务器连接到Internet之前)。如果要对这台服务器进行防火墙保护,则这应该是应该限制传入连接的确切端口集。 将服务器安装在服务器机房中,并为其提供公共IP地址。 使用我的操作系统的安全更新功能来确保系统安全。 我的理念(以及该问题的基础)是,基于主机的强大安全性消除了防火墙的必要性。总体安全性原则认为,即使您具有防火墙,也仍然需要基于主机的强大安全性(请参阅安全性指南)。其原因是,将公共服务转发到服务器的防火墙使攻击者几乎没有防火墙。服务本身是易受攻击的,并且由于向整个Internet提供该服务是其操作的要求,因此限制访问它不是重点。 如果服务器上有可用的端口不需要整个Internet进行访问,则需要在步骤1中关闭该软件,并在步骤4中进行验证。如果攻击者通过易受攻击的软件成功闯入服务器,并自己打开一个端口,攻击者可以(并且这样做)通过在随机端口上建立出站连接来轻松击败任何防火墙。安全性不是要在成功的攻击后为自己辩护-这已经被证明是不可能的-首先是将攻击者拒之门外。 有人建议,除开放港口外,还有其他安全方面的考虑-但对我来说,这听起来像是捍卫自己的信仰。基于端口直接转发到该操作系统/ TCP堆栈这一事实,无论是否存在防火墙,任何操作系统/ TCP堆栈漏洞都应同样容易受到攻击。同样,在服务器本身上运行防火墙而不是在路由器上运行防火墙(或者更糟糕的是在两个地方)都似乎增加了不必要的复杂性。我理解“安全性是成层的”这一理念,但有一点要像建立一个屋顶,方法是将X层胶合板彼此堆叠,然后在所有层上钻一个洞。另一层胶合板不会阻止您通过该孔泄漏 坦白地说,我看到防火墙可用于服务器的唯一方法是,它是否具有动态规则来阻止来自已知攻击者的所有服务器的所有连接-例如垃圾邮件的RBL(巧合的是,这几乎是我们的邮件服务器所做的) 。不幸的是,我找不到能做到这一点的防火墙。其次,最好的是一台IDS服务器,但前提是假定攻击者没有先攻击您的真实服务器,并且攻击者在进行攻击之前不费吹灰之力地探测整个网络。此外,已知这些会产生大量的误报。