我认为这是一个相当先进的问题,我希望有经验的人能帮助我。 深呼吸,我们走吧:
我们是一个规模不大但正在增长的网站,希望添加另一个服务器,以便我们有两个:一个Web应用程序服务器和一个数据库服务器。
我们也在寻找一个硬件防火墙。
所有标准的东西。
我们的服务器由托pipe公司(natch)托pipe在他们的一个设施中。 我们不拥有自己的盒子,而只是从一家公司租用一个机架。 当我们得到我们的防火墙和额外的服务器,我们将租用更多的货架。
很简单,我猜。
现在变得更复杂了:我们需要直接访问这两个服务器(即远程桌面访问,SQL服务器访问,FTP访问等)。
我们有我们的单一IP地址的网站,虽然我们的连接是通过路由器才到达我们的服务器,我们没有访问它。 如果我尝试导航到我们的默认网关,我什么也得不到。
将防火墙添加到我们当前的configuration最好的方法是什么? 我们希望能够在eBay上以低廉的价格获得类似于Firebox X1000的东西,并请求:www.ourdomain.com并将其转发给服务器A(例如192.168.0.10),并请求server.ourdomain.com和转发给服务器B(例如192.168.0.11)。
这有意义吗? 我们是否以错误的方式去做? 这样的企业级防火墙是否存在? (asidE:2000个并发会话大概是我们迄今为止在网站上看到的最大值,但是显然,增长会是一件好事。)
感谢任何帮助,我完全困惑,Watchguard和Juniper的人们虽然非常有帮助,却似乎无法放下心思。
更新:感谢Zoredache和Jesper Mortensen以最直接最有用的方式回答我的问题。 我现在对整个过程有了更多的了解(显然,防火墙没有简单的方法来做我想做的事 – 而且我原来的要求现在没有什么意义了,现在我对层更加了解 – doh)。
最终,我们决定使用第三台服务器作为防火墙,而不是专用的硬件防火墙。 其原因主要是因为它会为我们制造出更多的便宜,而且完成同样的工作。 我们已经计划有第三台服务器来收集我们自己的分析,我们希望这是一个非常轻的工作(他们在客户端触发,然后loginSQL),所以我们有理由将其移动到也是我们configuration的“前沿”,并将其用作防火墙。
我们也可能会configuration一个VPN,所以我们可以用这种方式pipe理Web App服务器和数据库服务器,而不是直接连接到它们。
这意味着我们不需要购买防火墙或租用额外的机架单元。
build议和我们的解决scheme之间的唯一区别是我们将使用Windows Server 2008,因为a)我的知识和b)我们通过BizSpark包免费获得。
再次感谢!
PS – 任何人都有这个新的防火墙/ VPN /(轻量级)SQL服务器的规格提示? (一个快速的处理器和大量的内存似乎对我有意义…但我知道什么?:)
当然这是有道理的,而且使用基于Linux的防火墙很容易。 只需使用一个具有公共地址的接口来设置Linux机箱,另一个接口使用私有地址。
然后设置一个像squid的反向代理。 Squid或任何你select的反向代理可以根据主机头转发http请求到内部系统。
您可以使用VPN到Linux防火墙,以访问大多数其他服务。 我不认为这将是一个好主意,让你的SQL服务器直接连接到互联网。 如果您必须访问某些服务,则还可以使用NAT将您select的某个端口转发到内部系统上的端口。
欢迎来到这个网站,Django R. 🙂
你正在巧妙地进行事实调查,但显然IPnetworking不是你的主要技能 – 也许雇用附近的顾问会是一个好主意? 这并不难,但根据您的数据中心(DC)要求,解决scheme可能采取不同的方向。
我们没有拥有自己的盒子,当我们拿到我们的防火墙和额外的服务器时,我们将租用几个货架。
Ehmn,它是哪种模式 – 您自己的硬件的托pipe,还是托pipe服务(DC提供硬件和部分或全部系统pipe理)? 如果是托pipe服务,那么就让DC以通常的方式处理这个问题,这样您的解决scheme对DC技术人员来说就是“熟悉的”。
将防火墙添加到我们当前的configuration最好的方法是什么?
一种常见的做法是:
这样您的面向Internet的服务器就具有公共IP地址,这简化了故障排除,允许轻松进行远程监控,而且一般来说不错。 而你的数据库服务器没有公有IP地址,这就增加了一层间接寻址,也就是说在深度安全方面很有帮助。
Firebox X1000在eBay上便宜,请求:www.ourdomain.com并将其转发给服务器A(例如192.168.0.10),并请求server.ourdomain.com并将其转发给服务器B(例如192.168.0.11 )。
不容易。 您的防火墙在第3层上工作; 它没有访问HTTP(第7层),所以“www。” 和“服务器”。 主机名是不知道的。 您只能对IP地址和端口号进行静态NAT。 你可以分配多个IP地址到防火墙的外部接口,或使用不同的端口号,但这是一个繁琐的解决scheme。
此外,如果您的Web服务器在内部IP上,那么您将始终将防火墙视为请求的源IP,即Web服务器日志意义不大。
您可以预先使用负载均衡器(第7层设备) ,并根据HTTP服务器名称指定stream量。 在这种情况下,将源IP地址作为X-FORWARDED-FOR HTTP头添加到HTTP请求中,如果需要原始IP,则您的Web服务器和Web应用程序需要查找此头。 一个带有内置软件防火墙的linux服务器,以及一个像nginx这样的HTTP服务器将是一个非常好的和廉价的解决scheme 。 但问问自己,你有没有先前的经验,快速build立这样的服务器,并保持良好的维护…
棘手的事情是确定您的托pipe公司的拓扑约束以及您的其他性能要求,即您的网站有什么样的带宽? 你能想象得到千兆位吞吐量吗?
你实际上正在谈论的是把你的专用服务器的ips改为你不能路由到的专用服务器(分别为192.168.0.10和11),然后用另外一个带有多个公网IP地址的端口转发服务器。 因此,服务器A和B将通过192.x子网在本地交换机上进行通信,并且所有入站的Internet通信将遍历路由器/防火墙C.您将分别从路由器C到A和B执行NAT,并且您的网站将如常parsing到C上的一个IP地址。这是一个基本的设置,firebox可能没问题,但我认为你最好用基于Linux的服务器来做路由或像Vyatta这样的打包解决scheme。
关键是检查你的托pipe服务,因为他们可能不允许这样做,如果他们不这样做,那么你的select可能会限制到基于主机的防火墙或其他相对不安全的解决scheme。 您的托pipe服务提供商也可能为想要处理自己的路由和防火墙的人设置不同的设置,值得与他们核对。
没有像其他人那样写作,我在这里为我的最后一个公司做了非常正确的事情。
我们有一个Fortigate防火墙,并将其configuration为接受来自外部的各种地址的连接,然后将这些地址转发到不同的主机。 IE浏览器。 siteA.domain.com转到服务器A,siteB.domain.com转到服务器B.
设置起来并不难,我们有服务自动故障切换站点之间。
你没有提到你想要什么样的防火墙行为。 你也没有提到你在服务器上获得什么样的stream量。 所以,第一件事…
因此,除了网站之外,networking上还有哪些“东西”与服务器有关? 谁需要访问服务器,并为什么? (即你需要FTP访问,Telnet访问,SSH访问…?)
你想/只需要港口限制? 例如,如果您只使用端口80/443和SSH(端口22)(没有telnet,没有FTP),则可以阻止除这些端口之外的所有端口的访问。 添加电子邮件,你需要更多的端口打开。
你想要有状态的数据包检查? 如果你只是防火墙上面的3个端口,并没有邮件服务器,那么你可能不会。 但是,如果您的服务器(或者邮件服务器)上有用户,那么您的防火墙问题会更大,包括白名单,黑名单,状态数据包检查,病毒检查程序等等。
如果你想要的只是3个端口(80/443/22)的端口阻塞,那么运行OpenBSD的单个服务器(远远超过任何LINUX BOX,IMO)要足够了。 把Web服务器放在他们自己的“不可路由的”静态IP上,让OpenBSD框的PF根据需要路由stream量。 简单,便宜和简单。
如果你需要一个具有全状态数据包检查function,电子邮件和垃圾邮件过滤function的“全身”防火墙,那么我build议你从SonicWall投资更多的东西。
干杯,
-R