我被要求考虑在DMZ中的web服务器(Debian / Apache / PHP)和后端MySQL数据库之间放置一个防火墙来实现“隔离”。 目前,iptables正在MySQL服务器上运行,并且分别仅允许TCP 22和3306用于SSH和MySQL。 但是,这显然不够好,build议使用硬件防火墙。
以思科的ASA 5505为例, 吞吐量为150Mbps,与networking服务器和MySQL服务器现在在同一台GbE交换机上享受的千兆比特吞吐量相比,这似乎相当低。
这是一个问题吗? 我现在还不能给你任何数字,但可以随时说出你的典型的表单驱动的数据录入CRUD webapp,可能有100个并发用户会话。
如果没有任何真正的吞吐量数字是不可能确定的,任何人都可以提出任何测量方法吗? 我想抓取JMeter,模拟一些负载,并使用ntop在MySQL接口的端口镜像上(或者在MySQL服务器上)测量带宽。
编辑:
我粗略地介绍了有关千兆位以太网的项目,理论上的吞吐量应该是125MB / s,而思科5505的最大吞吐量是150Mbps(或〜18MB / s),并不能解释NAT或ACLparsing等。不能看到NAT或ACLparsing对于单节点networking来说是个大问题)。 即使如此,防火墙肯定会成为Web服务器和MySQL服务器之间的一个潜在瓶颈,看起来好的,具有高质量SAS磁盘和其他服务器组件的RAID1设置应该至less能够达到50-75MB / s。
那么在networking服务器上的两个NIC,一个在DMZ上,另一个在LAN上呢?
编辑:由于答案被接受,我把更多的细节。
networking服务器必须面向公众,这个想法是防火墙,所以只有端口80443可以公开访问。 然后在内部它可以与LAN接口上的数据库服务器进行通信。 这也有利于将您的公共stream量放在与内部stream量不同的界面上。 这是一个非常常见的configuration,并提供了额外的安全性,因为公共stream量和内部stream量在物理上是分开的,而不是依赖防火墙。
我不太确定你在哪里得到最大的。 吞吐量的数字,因为思科的网站讲述了一个不同的故事(150Mbps)。
这是一个100Mb的以太网连接,当然你的实际吞吐量将完全取决于许多因素,包括你在ASA上进行什么样的过滤。 拥有ASA的优势在于您可以添加AIP-SSC卡并获得入侵防护/检测。
您可以随时从允许退货的供应商处尝试ASA5505。 我不能说你的吞吐量,因为我只有5510和5520。 我个人从家里使用5505,没有吞吐量的问题,但当然这只是我和我的家人。
是的,这将是一个瓶颈,如果你想要处理1Gbps线速,你可能需要一个更大的防火墙。
但是,你真的需要今天运行在1Gbps吗? 这可能是未来的需求,但是如果您目前只使用5Mbps,那么您现在仍然有足够的容量。
在连接SQL和Web服务器的交换机上,您可以使用某些方法从MIB中检索端口使用状态,以查看您确实需要多less带宽。 我们在工作中使用仙人掌,因为它是免费的,快速和容易设置。 当我们预测/体验性能问题时,我们可以监视交换机的使用情况,并使用证据来决定下一步该做什么。
你将需要连接一些监控(应该有munin包,让这一切很容易cheesy),并了解你真正需要什么。
如果你发现你的速度真的超过了100Mbps,那么你只需要一个更快的防火墙(或者甚至像使用鲤鱼+ pfsync进行故障转移的OpenBSD盒子)。
asa 5505的吞吐量是150 mbit / s。 我没有看到效益安全的明智之举。 可能由不太了解防火墙的人决定。