为什么要使用防火墙服务器?


104

请注意:我对将其变成火焰战争不感兴趣!我了解许多人对此主题抱有坚定的信念,这在很大程度上是因为他们在防火墙解决方案上付出了很多努力,而且还因为他们被灌输了对他们的必要性的信念。

但是,我正在寻找安全专家的答案。我认为这是一个重要的问题,答案不仅会给我自己和我工作的公司带来更多好处。我运行服务器网络已经有好几年了,没有任何妥协,也没有任何防火墙。防火墙无法阻止我们曾经遇到过的安全威胁。

我想我在这里工作了太久了,因为当我说“服务器”时,我总是指“向公众提供的服务”,而不是“秘密内部计费数据库”。因此,我们的任何规则在任何防火墙必须允许访问整个互联网。此外,我们的公共访问服务器都位于与办公室分开的专用数据中心中。

有人问了类似的问题,我的回答被投票为负数。这使我相信,要么投票否决的人并不真正理解我的答案,要么我不了解安全性,无法做我当前正在做的事情。

这是我的服务器安全性方法:

  1. 将服务器连接到Internet 之前,请遵循操作系统的安全准则

  2. 使用TCP包装程序将对SSH(和其他管理服务)的访问限制为少数IP地址。

  3. 使用Munin监视此服务器的状态。并以默认配置修复Munin节点固有的严重安全问题。

  4. Nmap我的新服务器(也在将服务器连接到Internet之前)。如果要对这台服务器进行防火墙保护,则这应该是应该限制传入连接的确切端口集。

  5. 将服务器安装在服务器机房中,并为其提供公共IP地址。

  6. 使用我的操作系统的安全更新功能来确保系统安全。

我的理念(以及该问题的基础)是,基于主机的强大安全性消除了防火墙的必要性。总体安全性原则认为,即使您具有防火墙,也仍然需要基于主机的强大安全性(请参阅安全性指南)。其原因是,将公共服务转发到服务器的防火墙使攻击者几乎没有防火墙。服务本身是易受攻击的,并且由于向整个Internet提供该服务是其操作的要求,因此限制访问它不是重点。

如果服务器上有可用端口不需要整个Internet进行访问,则需要在步骤1中关闭该软件,并在步骤4中进行验证。如果攻击者通过易受攻击的软件成功闯入服务器,并自己打开一个端口,攻击者可以(并且这样做)通过在随机端口上建立出站连接来轻松击败任何防火墙。安全性不是要在成功的攻击后为自己辩护-这已经被证明是不可能的-首先是将攻击者拒之门外。

有人建议,除开放港口外,还有其他安全方面的考虑-但对我来说,这听起来像是捍卫自己的信仰。基于端口直接转发到该操作系统/ TCP堆栈这一事实,无论是否存在防火墙,任何操作系统/ TCP堆栈漏洞都应同样容易受到攻击。同样,在服务器本身上运行防火墙而不是在路由器上运行防火墙(或者更糟糕的是在两个地方)都似乎增加了不必要的复杂性。我理解“安全性是成层的”这一理念,但有一点要像建立一个屋顶,方法是将X层胶合板彼此堆叠,然后在所有层上钻一个洞。另一层胶合板不会阻止您通过该孔泄漏

坦白地说,我看到防火墙可用于服务器的唯一方法是,它是否具有动态规则来阻止来自已知攻击者的所有服务器的所有连接-例如垃圾邮件的RBL(巧合的是,这几乎是我们的邮件服务器所做的) 。不幸的是,我找不到能做到这一点的防火墙。其次,最好的是一台IDS服务器,但前提是假定攻击者没有先攻击您的真实服务器,并且攻击者在进行攻击之前不费吹灰之力地探测整个网络。此外,已知这些会产生大量的误报。


2
那么,在服务器之间传递的所有流量都是加密的吗?
GregD

5
爱它。本地防火墙规则几乎总是仅限伏都教。
unixtippse

2
您的网络中也有台式机/员工吗?您如何处理他们?
布兰登


2
@routeNpingme:好像我没有在原始帖子中包含那个花絮。我们所有的服务器都必须对公众开放,并位于专用的数据中心中。如果您的办公室是您的数据中心,我想您的服务器网络和办公室网络之间必须有防火墙。在这种情况下,我说的是服务器网络-为什么要对具有完全公共访问权限的内容进行防火墙?
厄尼2010年

Answers:


54

防火墙的优点:

  1. 您可以过滤出站流量。
  2. 第7层防火墙(IPS)可以防御已知的应用程序漏洞。
  3. 您可以集中阻止某个IP地址范围和/或端口,而不是尝试确保没有服务在每台单独计算机上的该端口上侦听或拒绝使用TCP Wrappers进行访问。
  4. 如果您必须与安全意识较弱的用户/管理员打交道,则防火墙可以提供帮助,因为它们将提供第二道防线。没有它们,必须绝对确定主机是安全的,这要求所有管理员都对安全性有充分的了解。
  5. 防火墙日志将提供中央日志,并有助于检测垂直扫描。防火墙日志可以帮助确定某些用户/客户端是否正在尝试定期连接到所有服务器的同一端口。要在没有防火墙的情况下执行此操作,必须将来自各种服务器/主机的日志组合起来以获得集中的视图。
  6. 防火墙还带有反垃圾邮件/反病毒模块,这些模块也增强了保护功能。
  7. 操作系统独立的安全性。基于主机操作系统,需要各种不同的技术/方法来使主机安全。例如,Windows机器上可能不提供TCP包装程序。

最重要的是,如果您没有防火墙并且系统受到威胁,那么您将如何检测到它?尝试在本地系统上运行某些命令“ ps”,“ netstat”等无法信任,因为可以替换这些二进制文件。不能保证对远程系统的“ nmap”进行保护,因为攻击者可以确保root-kit在特定时间仅接受来自选定源IP地址的连接。

硬件防火墙在这种情况下有帮助,因为与主机OS /文件相比,更改防火墙OS /文件非常困难。

防火墙的缺点:

  1. 人们认为防火墙将确保安全,不会定期更新系统并停止不需要的服务。
  2. 他们花费。有时需要每年支付许可费。特别是在防火墙具有防病毒和防垃圾邮件模块的情况下。
  3. 其他单点故障。如果所有流量都通过防火墙,并且防火墙发生故障,则网络将停止。我们可以有冗余的防火墙,但是以前的成本要点会进一步扩大。
  4. 状态跟踪在接受所有传入连接的面向公众的系统上没有任何价值。
  5. 状态防火墙是DDoS攻击期间的一个巨大瓶颈,通常是首先失败的原因,因为它们试图保持状态并检查所有传入的连接。
  6. 防火墙看不到内部加密流量。由于应该对所有流量进行端到端加密,因此大多数防火墙在公共服务器之前几乎没有任何价值。可以为某些下一代防火墙提供私钥以终止TLS并查看流量内部,但是这进一步增加了防火墙对DDoS的敏感性,并破坏了TLS的端到端安全模型。
  7. 修补操作系统和应用程序漏洞的速度比防火墙快得多。防火墙供应商经常在已知问题上坐了好几年而不进行修补,而修补防火墙群集通常会导致许多服务和出站连接停机。
  8. 防火墙远非完美,许多臭名昭著的越野车。防火墙只是在某种形式的操作系统上运行的软件,可能除了(通常是较慢的)CPU外,还带有额外的ASIC或FPGA。防火墙具有错误,但是它们似乎提供很少的工具来解决它们。因此,防火墙为应用程序堆栈增加了复杂性,并增加了难以诊断的错误的来源。

6
Above all this if you do not have firewall and system is compromised then how would you detect it?入侵检测不是防火墙的工作。该作业由独立于防火墙的HIDS(基于主机的入侵检测系统)更适当地处理。
史蒂文

6
Syslog服务器消除了对第5项的需要。如果有的话,最好将防火墙日志发送到syslog服务器,以防攻击者设法破坏防火墙并删除其日志。然后,攻击者必须破坏两个系统才能删除日志,并且可能没有为此做好准备(尤其是使用自动攻击)。同样,如果所有系统都具有集中式日志记录,则与防火墙日志相比,您可以获得有关攻击的详细信息。
厄尼2010年

2
我的观点是,由于HIDS驻留在主机上,我们无法信任其输出。例如,即使我们使用加密安全的“ tripwire”作为基于主机的IDS,攻击者也始终可以将其所有tripwire二进制文件(twadmin,tripwire,twprint等)替换为不会报告入侵的受感染版本。即使我们尝试从其他系统复制库/二进制文件,也可能会运行一个进程来监视这些受损的二进制文件,并在替换或更新的情况下再次用损坏的版本替换它们。在这种情况下,可以信任与主机无关的防火墙。
Saurabh Barjatiya

2
之所以会接受这个答案,是因为它提供了更好,更全面的使用防火墙的理由,因此受到了更广泛的欢迎。并非如此。
Ernie

有状态的数据包检查防火墙不属于服务器的前面。在DDoS攻击中,它们是巨大的责任,通常是遭受攻击时首先失败的东西。
rmalayter

33

可以将TCP Wrappers称为基于主机的防火墙实现。您正在过滤网络流量。

对于攻击者在任意端口上建立出站连接的观点,防火墙也将提供一种控制出站流量的方法。正确配置的防火墙以适合于与系统相关的风险的方式管理入口和出口。

关于防火墙如何无法缓解任何TCP漏洞,您不熟悉防火墙的工作方式。思科提供了大量可供下载的规则,这些规则可识别以可能导致特定操作系统问题的方式构造的数据包。如果抓住Snort并以正确的规则集开始运行它,您也会在这种情况下得到提醒。当然,Linux iptables可以过滤掉恶意数据包。

基本上,防火墙是一种主动保护。您越远离主动行动,最有可能发现自己在对问题做出反应而不是预防问题的情况下。与专用防火墙一样,将保护集中在边界上,使事情变得更容易管理,因为您拥有一个中心瓶颈,而不是在各处重复制定规则。

但是,没有一件事情必然是最终的解决方案。一个好的安全解决方案通常是多层的,其中您在边界处有防火墙,在设备处有TCP包装程序,并且还可能对内部路由器有一些规则。通常,您应该保护网络免受Internet的侵害,并保护节点之间的相互保护。这种多层方法不像在多片胶合板上打一个洞,而是更像是搭上一扇门,这样入侵者就有两个可以打破的锁,而不仅仅是一个。这被称为人身安全陷阱,大多数建筑物都有一个原因。:)


6
同样,如果他们潜入建筑物内并为外面的朋友打开内门,那么他们还必须解锁并打开外门。(即,没有外部防火墙,进入服务器的人可以将其打开,而外部防火墙仍会阻止外部的开放端口)
Ricket 2010年

@Ricket:也许可以,但是现代的攻击者不会为这样的事情而烦恼。除了将服务器添加到僵尸服务器场之外,攻击者还必须特别感兴趣您的站点。
厄尼2010年

1
@Ernie-不,它只需要存在即可自动探测以获取Warez,客户数据库,财务信息,密码以及添加到僵尸网络的可用空间-但这甚至可能会很糟糕-有些管理员会很乐意为您的IP漏洞如果您看起来像是僵尸。
罗里·阿尔索普2010年

TCP Wrappers could be arguably called a host-based firewall implementation+1是个不错的答案。
sjas 2015年

15

(您可能需要阅读“ 没有防火墙的生活 ”)

现在:拥有一个不再发布补丁程序的旧系统该怎么办?如果无法在需要的时候将补丁应用到N机器,又可以在网络中较少的节点(防火墙)中应用补丁,该怎么办?

讨论防火墙的存在或需求毫无意义。真正重要的是,您必须实施安全策略。为此,您将使用将实现它的任何工具,并帮助您管理,扩展和发展它。如果需要防火墙,那很好。如果不需要它们,那也很好。真正重要的是有效且可验证地实施您的安全策略。


1
嘿。在过去的8年中,我一直在没有防火墙的情况下运行我们的服务器网络。我本可以写成 “没有防火墙的生活”,但是无论如何,他做得比我更好,并且运行的网络比我大。
Ernie 2010年

2
@Ernie-我想你可能很幸运。您怎么知道自己没有受到损害?对我的许多客户进行取证调查的结果发现了妥协,有时可以追溯到几个月前,而攻击者则发现了个人和财务信息,客户详细信息,知识产权,商业计划等。正如肖恩所说,请进行适当的安全审核。
罗里·阿尔索普2010年

1
实际上,除了我们的服务器网络与办公室网络在物理上是分开的(因此,即使从每台服务器上进行root访问)也无法从中收集到真正敏感的数据之外,我仍然能够发现我们遇到的每一个妥协自从我从这里开始以来。我可以继续讲述我开始时曾发生的恐怖表演,但我没有足够的空间。:)可以说大多数攻击不是很细微的,这些细微的攻击也是可以发现的。哦,是的,用户权限分离是您的朋友。
Ernie

9

您的大多数解释似乎都驳斥了对防火墙的需求,但我认为没有防火墙的弊端,只是需要很少的时间来建立防火墙。

严格意义上来说,很少有事情是“必需品”。安全性更多地在于设置所有可以的封锁。入侵服务器所需的工作更多,意味着成功攻击的机会更少。您想要使闯入您的机器比在其他任何地方都要花费更多的工作。添加防火墙可以使更多工作。

我认为关键用途是安全性上的冗余。防火墙的另一个优点是,您可以简单地放弃尝试连接到任何端口的尝试,而不是响应被拒绝的请求-这将使对攻击者的映射更加不便。

在您问题的实际注释上对我来说最重要的是,您可以将SSH,ICMP和其他内部服务锁定到本地子网,并限制传入连接的速率以帮助缓解DOS攻击。

“安全性不是要在成功的攻击后为自己辩护-这已经被证明是不可能的-首先是将攻击者拒之门外。”

我不同意。限制损害赔偿同样重要。(在这种理想情况下,为什么要使用哈希密码?还是将数据库软件粘贴在与Web应用程序不同的服务器上?)我认为这句老话“不要将所有鸡蛋都放在一个篮子里”。


1
好吧,你是对的,我没有在那儿放任何弊端。缺点:网络复杂性增加,单点故障,带宽瓶颈的单个网络接口。同样,在一个防火墙上犯的管理错误可能会杀死整个网络。而且,在到服务器机房20分钟的行程中,上帝禁止您同时将自己锁定在其中。
厄尼2010年

1
这可能纯粹是夸夸其谈,但是当您说“安全性更多是关于设置所有可以设置的封锁”时,我宁愿听到“安全性更多是在默认情况下阻止所有内容,并仔细打开严格的最低要求进行操作”。
MatthieuP,2010年

+1全面的安全计划涵盖了预防,检测和响应。
Jim OHalloran 2010年

8

Should I firewall my server?好问题。似乎没有什么必要将防火墙拍在网络堆栈之上,该网络堆栈已经拒绝了对除合法开放的少数端口以外的所有端口的连接尝试。如果操作系统中存在一个漏洞,该漏洞允许恶意制作的数据包破坏/利用主机,那么在同一主机上运行的防火墙是否可以阻止利用?好吧,也许 ...

这可能是在每个主机上运行防火墙的最强烈的理由:防火墙可能阻止网络堆栈漏洞被利用。这有足够的理由吗?我不知道,但我想有人会说:“没有人因为安装防火墙而被解雇。”

在服务器上运行防火墙的另一个原因是使这两个原本密切相关的问题脱钩:

  1. 我可以从哪里和哪些端口接受连接?
  2. 哪些服务正在运行并正在监听连接?

如果没有防火墙,则正在运行的服务集(以及tcpwrappers的配置等)将完全确定服务器将打开的端口集以及将接受其连接的端口。基于主机的防火墙为管理员提供了更大的灵活性,使其可以在可扩展的范围内使用之前以受控方式安装和测试新服务。如果不需要这种灵活性,则无需在服务器上安装防火墙。

最后,我经常添加一个没有在您的安全检查表中提到的项目,它是基于主机的入侵检测系统(HIDS),例如AIDEsamhain。良好的HIDS会使入侵者极难对系统进行不必要的更改并保持未被发现的状态。我相信所有服务器都应运行某种HIDS。


1
+1表示HIDS系统。
山姆·哈里克

3
HIDS非常好-如果您打算设置它而忘记它。永远不要添加或删除帐户。否则,绝大多数的HIDS日志将成为您今天所做的工作的一长串,并且很快就会一直被忽略。
厄尼

正如他们所说,没有痛苦就没有收获。在变化很大的服务器上,可以过滤掉预期的噪声,使您可以集中精力应对意外的事情。
史蒂文

6

防火墙是一种工具。它本身并不能使事情变得安全,但是可以作为安全网络中的一层来做出贡献。那并不意味着您需要一个防火墙,我当然担心那些盲目地说“我必须要有防火墙”的人却不理解他们为什么这么想以及不了解防火墙的优缺点。

我们可以说有很多不需要的工具...是否可以在没有防病毒软件的情况下运行Windows计算机?是的,这是……但是拥有这是一个不错的保险层。

关于防火墙,我也要说同样的话-关于防火墙,无论您说什么,保险都是不错的选择。它们不能替代修补程序,锁定计算机,禁用您不使用的服务,进行日志记录等,但它们可以是有用的补充。

我还建议,方程式会有所变化,具体取决于您是在谈论将防火墙放在似乎经过精心维护的一组服务器的前面,还是在工作站和服务器混合在一起的典型LAN的前面,尽管IT团队尽了最大的努力和希望,其中一些可能仍在运行一些繁琐的工作。

要考虑的另一件事是创建明显硬化的目标的好处。可见的安全性,无论是明亮的灯光,沉重的锁和建筑物上明显的警报盒;或企业IP地址范围上的明显防火墙可以阻止临时入侵者-他们会寻找更容易的猎物。这不会阻止坚定的入侵者知道您有他们想要的信息并决心获取信息,但是阻止临时入侵者还是值得的-特别是如果您知道任何其侦察力持续超过阻止力的入侵者都需要特别注意。


1
因此,为什么我说“服务器”而不是“办公室网络”?:)特别是在我们的情况下,数据中心和办公室是两个物理上分离的实体。
厄尼2010年

我了解Ernie,但这是值得强调的一点,所以我做到了。
罗伯·摩尔

5

所有伟大的问题。但是-我很惊讶PERFORMANCE没有出现在桌子上。

对于频繁使用(CPU方式)的Web前端,本地防火墙确实会降低性能和周期。尝试进行负载测试,看看。我看到了无数次。关闭防火墙可使性能(每秒请求数)提高70%或更多。

必须考虑这种折衷。


2
这在很大程度上取决于适当的防火墙规则。防火墙规则按顺序在每个数据包上运行,因此,您不必查看数百个规则。去年冬天,当我们管理一个在超级碗上有广告的站点时,例如,防火墙规则就不是问题。但我确实同意您需要了解防火墙规则对性能的影响。
肖恩·赖夫施奈德

4

防火墙是附加保护。它可以防止的三种特殊情况是网络堆栈攻击(即,您的服务器操作系统容易受到攻击,使得特制的数据包永远无法达到端口级别),成功入侵从而建立了与“电话回家”(或发送垃圾邮件等)的连接),或者成功入侵打开了服务器端口,或者(较难检测到)在打开端口之前,请注意端口敲接顺序。当然,最后两个与减轻入侵造成的损害有关,而不是防止入侵造成的损害,但这并不意味着它没有用。请记住,安全性不是一无所有的主张。一个采用分层的方法(皮带和吊带)来达到足以满足您需要的安全级别。


+1绝对,深度防御是关键。
Jim OHalloran 2010年

2
我看不到如何能阻止出站流量产生任何效果,尤其是当我们的客户希望我们的许多服务器将邮件发送到Internet上的随机主机时(垃圾邮件就是这种情况)。“ Phoning home”仅是连接到网络上其他随机主机的问题-我怀疑阻止所有出站连接节省几下会根本没有帮助-也就是说,如果您想在Internet上做任何事情。封锁几个港口就像在沙漠中间建立一个收费站。
厄尼2010年

3

无论如何,我都不是安全专家,但是听起来好像您已经被防火墙保护了。似乎您已经采用了防火墙的某些核心功能,并将其作为策略和过程的一部分。不,如果您要自己做与防火墙相同的工作,则不需要防火墙。对于我自己,我宁愿尽我所能保持安全性,但要让防火墙望着我,但是在某个时候,当您可以做防火墙正在做的所有事情时,它就变得无关紧要了。


3

对于较小的设置,当然不需要防火墙。如果您有一台或两台服务器,则可以维护软件防火墙。话虽如此,我们并非没有专用的防火墙,我维持这一理念有几个原因:

角色分离

服务器用于应用程序。防火墙用于数据包检查,过滤和策略。Web服务器应该担心要提供网页,仅此而已。将这两种角色都放在一台设备中,就像要求您的会计师同时担任您的安全防护员一样。

软件是一个移动的目标

主机上的软件始终在变化。应用程序可以创建自己的防火墙例外。操作系统已更新并打补丁。服务器是高流量的“管理”区域,并且防火墙策略/安全策略通常比应用程序配置对安全更重要。在Windows环境中,假设有人在某些组策略级别上犯了一个错误,并且在台式机上关闭了Windows防火墙,并且没有意识到它将被应用到服务器上。您只需点击一下就能打开。

仅就更新而言,防火墙固件更新通常每年发布一次或两次,而操作系统和服务更新是不断更新的。

可重用服务/策略/规则,可管理性

如果我一次设置了一个称为“ Web服务器”的服务/策略(例如TCP 80和TCP 443),并将其应用于防火墙级别的“ Web服务器组”,则效率会更高(几个配置更改)而且与在10个盒子上设置防火墙服务并打开2个端口x 10次相比,不容易发生人为错误的可能性要大得多。当该政策需要更改时,它是1次更改与10次更改。

在攻击期间或折衷后,我仍然可以管理防火墙

假设我的基于主机的防火墙+应用程序服务器受到攻击,而CPU不在计划之列。为了什至开始弄清发生了什么,我忍不住要让攻击者进入并查看它的负担。

实际经验-我曾经弄乱过防火墙规则(将左端口设置为ANY而不是特定端口,并且服务器具有易受攻击的服务),并且攻击者实际上具有实时的远程桌面会话。每次我开始进行会话时,攻击者都会杀死/断开我的会话。如果不是能够通过独立的防火墙设备阻止这种攻击,那可能会更糟。

独立监控

专用防火墙单元中的日志记录通常远远优于基于主机的软件防火墙。有些足够好,您甚至不需要外部SNMP / NetFlow监视软件即可获得准确的图像。

IPv4保护

如果一个用于Web,一个用于邮件,则没有理由拥有两个IP地址。将服务放在单独的盒子上,并通过为此目的设计的设备适当地路由端口。


2

Blockquote好吧,您是对的,我没有在其中添加任何弊端。缺点:网络复杂性增加,单点故障,带宽瓶颈的单个网络接口。同样,在一个防火墙上犯的管理错误可能会杀死整个网络。而且,在到服务器机房20分钟的行程中,上帝禁止您同时将自己锁定在其中。

首先,通过网络最多添加一个附加的路由跃点并不复杂。其次,没有实现任何单点故障的防火墙解决方案都是完全没有用的。就像将重要的服务器或服务群集在一起并使用绑定的NIC一样,您也可以实现高可用性防火墙。不这样做,或者不认识并知道自己会这样做是很短视的。简单地说只有一个接口并不会自动使某些瓶颈。该断言表明,您不知道如何正确计划和部署大小足以处理通过网络的流量的防火墙。您说的很正确,即策略错误可能会损害整个网络,但是我认为在所有服务器上维护单个策略比单个位置更容易出错。

至于您要跟上安全修补程序并遵循安全指南的说法;充其量是个摇摇欲坠的争论。通常,直到发现漏洞后才提供安全补丁。这意味着在您运行可公开寻址服务器的整个过程中,它们都容易受到攻击,直到对其进行修补为止。正如其他人指出的那样,IPS系统可以帮助防止此类漏洞的危害。

如果您认为自己的系统尽可能安全,那将是一个很好的信心。但是,我建议您对网络进行专业的安全审核。它可能只是睁开你的眼睛。


It may just open your eyes.+1,因为它将是棺材中的最后一个钉子。
sjas 2015年

2

如前所述,一般来说,安全性是洋葱。存在防火墙的原因有很多,而不仅仅是所有其他的笨拙的笨蛋。

之所以出现这个答案,是因为在此页面上搜索“ fail2ban”并没有给我任何结果。因此,如果我将其他内容加倍,请忍受。而且请原谅,如果我有点,我会提供简单的经验,因为这可能对其他人很方便。:)

本地与外部网络注意事项

这是特定于Linux的,并且专注于基于主机的防火墙,这通常是用例。外部防火墙与适当的网络结构紧密结合,通常还会考虑其他安全因素。您要么知道这里的隐含含义,要么您可能不需要此帖子。否则,请继续阅读。

在外部和本地运行防火墙似乎违反直觉,并且有双重作用。但是,这也使规则可以转向外部规则,而不会损害位于其后的所有其他主机的安全性。这种需求可能是由于调试原因,也可能是因为有人刚干了。“自适应全局防火墙”部分中还有另一个用例,为此您还需要全局和本地防火墙。

成本和可用性始终如一:

防火墙只是适当的安全系统的一个方面。不要安装防火墙,因为这会“花钱”,引入SPOF或仅仅是胡说八道,请原谅我的法语。只需设置一个集群。哦,但是如果火室停电了怎么办?然后,将群集设置为跨越两个或多个防火分区。

但是,如果由于两个外部运营商都停业(挖掘机杀死了您的光纤)而导致整个数据中心无法访问怎么办?然后,使您的集群跨越多个数据中心。

这太贵了?集群太复杂了吗?好吧,偏执必须要付出。

只是抱怨SPOF,但不想花更多的钱或创建一些更复杂的设置就是双重标准的明显例子,或者只是公司或客户方面的一个小钱包。

这种模式适用于所有这些讨论,无论哪种服务是当前的日常事务。无论是VPN网关,仅用于防火墙的Cisco ASA,MySQL还是PostgreSQL数据库,虚拟系统或服务器硬件,存储后端,交换机/路由器,...

现在,您应该明白了。

为什么要烦恼防火墙?

从理论上讲,您的推理是正确的。(只能利用运行中的服务。)

但这只是事实的一半。防火墙,尤其是有状态防火墙可以为您做更多的事情。无状态防火墙仅在遇到类似上述其他性能问题时才重要。

简单,集中,离散的访问控制

您提到了TCP包装器,它们实现了与保护您的基本相同的功能。为了论证,我们假设某人不认识tcpd并喜欢使用鼠标?fwbuilder可能会想到。

应该启用来自管理网络的完全访问权限,这是基于主机的防火墙的第一个用例。

如何进行多服务器设置,在该数据库中其他地方运行数据库,并且无论出于何种原因都不能将两台/所有计算机都放在共享(专用)子网中?使用防火墙仅允许MySQL对其他服务器的单个给定IP地址进行3306端口访问,这很简单。

而且这对于UDP也完美无瑕。或任何协议。防火墙是如此灵活。;)

缓解端口扫描

此外,有了防火墙,由于可以通过内核及其网络堆栈监视每个时间跨度的连接量,因此可以检测并缓解常规的端口扫描,防火墙可以对此进行操作。

无效或晦涩的数据包也可以在到达您的应用程序之前进行处理。

出站流量限制

过滤出站流量通常很麻烦。但这可能是必须的,具体取决于合同。

统计

防火墙可以为您提供的另一件事是统计信息。(考虑watch -n1 -d iptables -vnxL INPUT在顶部添加一些特殊IP地址规则,以查看数据包是否通过。)

您可以在白天查看事物是否起作用。在对连接进行故障排除并能够告诉电话上的其他人您没有收到数据包而无需诉诸于chatty tcpdump的情况下,这非常有用。联网很有趣,大多数人现在才知道他们在做什么,而且通常只是简单的路由错误。地狱,即使我并不总是知道我在做什么。尽管到目前为止,我实际上已经使用了数十个复杂的系统和设备,但通常也使用隧道技术。

IDS /入侵防御系统

如果没有适当注意并定期更新,那么Layer7防火墙通常是不二之选(IPS / IDS)。再加上许可证真是太贵了,所以如果您没有真正的金钱需要可以买到的东西,我将不遗余力地获得一份。

伪装

容易,只需与包装器一起尝试即可。:D

本地端口转发

参见伪装。

使用动态IP地址保护密码访问通道

如果客户拥有动态IP地址并且未部署VPN设置怎么办?还是其他动态防火墙方法?这个问题已经暗示了这一点,这里将提供一个用例,不幸的是,我找不到能做到这一点的防火墙。部分。

必须禁用通过密码访问root帐户的权限。即使访问仅限于某些IP地址。

此外,如果确实出错(用户具有对计算机的管理访问权限,并且“发生了事”?),那么如果ssh密钥丢失或部署失败,仍然可以使用密码登录准备好另一个Blanko帐户非常方便。网络访问的想法相同,因为它在Linux上具有单用户模式或使用init=/bin/bashvia grub进行本地访问确实非常糟糕,并且无论出于何种原因都无法使用活动磁盘。别笑,有虚拟化产品禁止这样做。即使该功能存在,如果运行的缺少该功能的软件版本过时怎么办?

无论如何,即使您在某个深奥的端口上而不是在22上运行ssh守护程序,如果未实现端口爆震(甚至打开另一个端口,从而缓解portcans的问题,由于太不切实际也逐渐被淘汰)的端口扫描将检测到您最终服务。

通常,出于效率方面的考虑,您还可以使用相同的配置,端口和服务设置所有服务器。您不能将ssh设置为每台计算机上的其他端口。另外,您每次都认为它是“公共”信息时,就无法在所有计算机上进行更改,因为它已经在扫描之后。的问题,nmap有随时为您破解Wi-Fi连接时是合法与否不是一个问题。

如果此帐户未命名为“ root”,则人们可能无法猜测您“后门”的用户帐户名。但是他们会知道,如果他们从您的公司购买另一台服务器,或者只是购买了一些网站空间,并且对此不加约束/不受约束/不受限制地看待/etc/passwd

现在仅是理论上的说明,他们可以使用那里的可黑客攻击的网站来访问您的服务器,并查看通常在您所在位置运行的方式。您的黑客搜索工具可能无法全天候运行24/7(通常是出于文件系统扫描的磁盘性能原因而在夜间运行?),并且病毒扫描程序不会在第二天零时发现第二天更新,因此它将无法立即发现这些事件,并且如果没有其他保护措施,您甚至可能都不知道发生了什么。回到现实,如果某人可以使用零时差攻击,那么很有可能他不会以您的服务器为目标,因为这些服务器很昂贵。这仅是为了说明如果出现“需求”,总有进入系统的方法。

但是,关于这个话题,只是不要使用额外的密码帐户,就不用打扰了吗?请继续阅读。

即使攻击者获得了这个额外帐户的名称和端口,即使您仅使用了八个字母的密码,fail2ban+ iptables组合键也会使攻击者很短。再加上fail2ban也可以用于其他服务,从而扩大了监视范围!

对于您自己的服务,如果需要的话:基本上,将文件失败记录到文件中的每个服务都可以通过提供文件,匹配的正则表达式以及允许的失败次数来获得fail2ban支持,并且防火墙会愉快地禁止它的每个IP地址。被告知。

我不是在告诉您使用8位数密码!但是,如果由于五次错误的密码尝试而被禁止使用24小时,那么即使在安全性如此差的情况下,如果他们没有可使用的僵尸网络,也可以猜测他们将不得不尝试多长时间。您会惊讶于客户倾向于使用哪些密码,而不仅仅是密码ssh。通过Plesk查看人们的邮件密码,可以告诉您所有您不希望知道的信息,如果您愿意的话,但是我在这里不想暗示的内容。:)

自适应全局防火墙

fail2ban仅仅是一个使用类似的应用程序iptables -I <chain_name> 1 -s <IP> -j DROP,但是您可以使用Bash魔术快速地轻松构建自己的东西。

为了进一步扩展此类功能,请将网络中服务器上的所有fail2ban IP地址聚合到一台额外的服务器上,整理所有列表并将其依次传递到您的核心防火墙,以阻止网络边缘已经存在的所有流量。

此类功能无法出售(当然可以出售,但它将是一个脆弱的系统,很糟糕),但必须与您的基础结构交织在一起。

同时,您还可以使用黑名单IP地址或其他来源的列表,无论是您自己收集还是外部收集。


1

在物理世界中,人们通过将贵重物品放在保险箱中来保护他们。但是,没有任何安全不能被破解。保险箱或安全容器的等级取决于强制进入的时间。保险柜的目的是将攻击者的时间延迟足够长的时间,以使它们被检测到并采取有效措施,然后停止攻击。

同样,正确的安全假设是,最终暴露的计算机将受到威胁。防火墙和堡垒主机的设置不是为了防止您的服务器(带有您的宝贵数据)受到破坏,而是要迫使攻击者首先对其进行破坏,并允许您在丢失贵重物品之前检测(并阻止)攻击。

请注意,防火墙和银行保险库都无法防御内部威胁。这是银行会计师连续请假两周的原因之一,并且即使受到堡垒主机的保护,服务器也要具有完整的内部安全防范措施。

您似乎在原始帖子中暗示要通过防火墙将“外部”数据包直接转发到服务器。在那种情况下,是的,您的防火墙没有做很多事情。使用两个防火墙和一个堡垒主机可以实现更好的外围防御,该堡垒主机没有从外部到内部的直接逻辑连接-每个连接都在DMZ堡垒主机中终止;在转发之前,将对每个数据包进行适当的检查(并可能解析出)。


“这是银行会计师连续请假两周的原因之一”您能对此作出澄清吗?在这里可能并不重要,但我对此很感兴趣。
Per Wiklander,2010年

-1,因为我已经介绍了在进入服务器之前不必先进入防火墙的事实-防火墙必须允许公众访问您提供给公众的服务,因此服务器本身对公众开放。我们不希望公众能够访问的任何服务器上都没有服务。
厄尼

@Ernie-你错过了重点。堡垒主机设计DMZ通过两侧的防火墙隔离主机。该主机受到攻击,最终将被颠覆。但是该主机不是您的服务器,因此适当地,您的关键信息将很少。DMZ(主机+防火墙)足够长地减慢了对服务器的攻击,以至于您可以响应并阻止其成功。
mpez0 2010年

1
@Per Wiklander-GAAP包括定期检查审核。贪污的会计师可能会发现这些数字,并防止在进行检查检查时发现问题,但如果需要连续两个星期离开工作,则将有其他人报告并发现他们的渎职行为。这是两人控制的一种形式。
mpez0

堡垒主机如何保护服务器上的任何内容?示例:端口80、25和110是服务器上唯一打开的端口。防火墙允许从整个Internet到这些端口的流量。因此,防火墙无法保护任何内容。如果您的服务器与办公室位于不同的位置,则除了办公室的防火墙外,您不需要其他保护。
厄尼2010年

1

漏洞很难预测。几乎不可能预测您的基础架构将被利用的方式。对于想要利用漏洞的攻击者而言,拥有防火墙可以“提高标准”,这是重要的部分,在您知道该漏洞是什么之前。此外,可以很容易地事先了解防火墙的后果,因此,您不太可能引起防火墙问题,该问题比您可能避免的问题更为严重。

这就是为什么“没有人因安装防火墙而被解雇”的原因。它们的实施风险非常低,并且很有可能预防或缓解漏洞利用。而且,大多数真正令人讨厌的漏洞最终都会被自动化利用,因此任何“不寻常的”事情都将最终破坏机器人,或者至少会让它跳过以支持更轻松的目标。

边注; 防火墙不仅用于互联网。您的会计部门。不需要ldsh服务器使用ssh / whatever,因此不要将其交给他们。如果某些事情确实破坏了城堡的墙壁,则对内部服务进行分区可以对清理工作产生很大的影响。


2
当您需要防火墙规则来将端口80、53、25、110、143、443、993、995以及更多端口开放到整个Internet时,拥有防火墙并不会提高标准。如果您需要类似的规则,那么这些服务器与没有防火墙一样容易受到防火墙的攻击。
厄妮

2
的确如此,但是同一台服务器可能具有端口3306(mysql)以及可能从防火墙中受益的各种其他协议。这并不是说您不应再受其他保护。只是防火墙不会受到伤害。另外,我认为您错过了我的观点,即不必为所有用户打开所有流量。端口22可能需要开放,但不能在所有主机上开放,当然也不能开放到整个Internet(或会计和人力资源)。例如,关闭25以进行计费(如果应该在465以上运行)可能会缓解某些垃圾邮件恶意软件。
恩基(Enki)

1

不得不说Ernie,尽管您似乎在加固服务器和减轻攻击和漏洞方面做了很多工作,但我不同意您对防火墙的立场。

我将安全性视为一个洋葱,因为理想情况下,在到达核心之前,您必须先经过一些层,并且个人认为在网络外围没有某种形式的硬件防火墙是严重误导的。

我承认我是从“我习惯了”的角度出发的,但是我知道每个月我都会收到Microsoft提供的那几个月补丁的一小部分清单,其中许多都是在野外被利用的。 。我想您会想到的几乎所有OS和应用程序集都会发生同样的情况。

现在,我不建议防火墙消除这种情况,也不建议防火墙不存在漏洞/漏洞,显然,“硬件”防火墙只是在硬件堆栈上运行的软件。

就是说,我睡得更香,知道如果我有一台只需要从网络访问端口443的服务器,我的外围Juniper便确保只能从网络访问端口443。不仅如此,我的帕洛阿尔托(Palo Alto)还确保对进入的流量进行解密,检查,记录和扫描,以进行IPS / IDS扫描-但这并没有消除保持服务器安全和最新的需求,但是,为什么它可以减轻零日攻击和良好的人为错误,却又为什么没有带来好处呢?


1

首先,通过谈论端口转​​发,我认为您正在将防火墙与NATing混合在一起。尽管近来NAT通常经常充当事实上的防火墙,但这并不是其设计目的。NAT是路由工具。防火墙用于调节访问。为了使思路清晰,保持这些概念的不同很重要。

当然,将服务器放在NAT盒后再配置NAT以将任何内容转发到该服务器,确实比将服务器直接放在Internet上更安全。我认为没有人会对此争论。

同样,配置为允许所有流量的防火墙根本不是防火墙。

但是,“允许所有流量”真的是您想要的策略吗?是否有人需要从俄罗斯IP地址SSH到您的任何服务器?当您修改一些新的实验性网络守护程序的配置时,整个世界真的需要访问它吗?

防火墙的强大功能在于,它可以让您仅打开那些已知需要打开的服务,并维护用于实施此策略的单一控制点。


2
我的问题已经解决了您的所有观点。是的,“允许所有流量”确实是我们想要的用于非管理服务(例如SSH或某些服务器的管理端口)的策略。否则,人们将无法查看我们的网页并向我们发送邮件!
厄尼2010年

2
至于只开放那些需要的服务,这就是步骤1和4的目的。
厄尼2010年

1

有状态的数据包检查防火墙不属于公共服务器的前面。您正在接受所有连接,因此状态跟踪非常无用。传统防火墙在DDoS攻击中承担巨大责任,并且即使在链路带宽或服务器资源被完全消耗之前,通常也是在DDoS攻击下首先要失败的防火墙。

路由器上的无状态数据包筛选器在公共服务器之前确实有意义,但前提是它们可以处理所有进出流量的线速(例如路由器中的硬件ACL)。

谷歌,Facebook甚至微软都没有将传统的“防火墙”放在公共服务器的前面。任何以“多个服务器”规模运行公共Web服务的人都应该知道这一点。

传统防火墙(如Cisco ASA)中发现的其他功能或在主机本身上实现的最佳功能可以在其中进行有效扩展。无论如何,日志记录,IDS等都是防火墙中的所有软件功能,因此如果放在公共可访问服务器的前面,它们将成为巨大的瓶颈和DDoS目标。


1
我认为背景很重要。OP可能不是在谈论Web规模的系统,在该系统中,负载均衡和防火墙的实现方式与SMB的后台技术堆栈完全不同。
ewwhite

即使在单个服务器的前面,如果您接受来自任何地方的连接,状态防火墙也无济于事。无论如何,您都需要对所有内容使用TLS或其他加密,因此防火墙可以做的就是说“嘿,在端口443上还有更多数据通过我”。防火墙几乎已经死了:etherealmind.com/why-firewalls-wont-matter-in-a-fear-years
rmalayter 2015年

0

为什么所有服务器都需要公用地址?

将服务器安装在服务器机房中,并为其提供公共IP地址。

在我定期运行的大约14台服务器中,只有2台具有可公开访问的界面。

编辑添加:在我曾参与管理的其他网络中,我们可以随意关闭/打开服务,而我们无权管理防火墙。我什至无法开始告诉您,无意间打开并打开了不需要的服务(SMTP)的次数,而唯一使我们避免成为垃圾邮件转储并在此过程中被列入黑名单的事情是防火墙。

另外,是否完全加密了服务器之间传递的所有流量?

您当然可以在没有安全带,安全气囊和光头轮胎的情况下以每小时100英里的速度行驶,但是为什么呢?


1
因为它们可能都具有需要“从Internet”访问的服务
adamo,2010年

不。更像是以70英里/小时的速度驾驶带有安全带和安全气囊的汽车,同时注意自己在做什么。但是不用锁你的门。制定了安全策略,并且服务器保持安全,但是没有防火墙。众所周知,防火墙并不是安全的全部和全部。
厄尼2010年

2
我从来没有说过,防火墙是安全的全部或全部。我不再重复这里已经说过的话。它们只是安全的许多层中的一层。我已经问过你两次了,但你还没有回答。局域网上的服务器都是闲话。您所有的服务器是否仅通过加密通道相互通信?
GregD

0

防火墙可以阻止系统用户打开管理员不知道的网络可访问服务,或者将端口转发到其他计算机。通过使用hashlimit模块,防火墙还可以基于远程IP对滥用者进行速率限制。

防火墙是另一个安全网,可确保您的策略得到遵守。当然,不要运行您不期望的服务。

我绝对建议例如及时应用软件更新,但我也建议在所有计算机上安装防火墙。就像我开车时一样:当然,我会尽量避免避开障碍物和其他汽车,但是我也系好安全带并系上安全气囊,以防万一意外情况发生。


0

您可能不会仅仅因为其他所有人在使用防火墙而意识到从防火墙中受益匪浅。在几乎每个人每天都有家庭防火墙的地方,端口嗅探已被视为可行的攻击手段而已被放弃。一个体面的黑客不会浪费时间检查这些东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.