在提供服务的同一台机器上安装防火墙有效吗?

我是一个实际上开始一个servlets。 而我目前有单一的服务器。 现在没有钱购买分离的/专用的防火墙设备。

在提供互联网服务的同一台机器上安装防火墙软件是否有效? 我的服务器将在多个端口上提供HTTP,NFS和SSH以及定制的服务器软件。


(编辑)所有服务(NFS除外)都应该向互联网开放。 不是内部服务。 我想我的机器(在Xen虚拟化)直接连接到互联网,因为我可以连接到我的机器只有IP地址的SSH。


(编辑)NFS不对互联网开放。 对不起,我错了。 NFS将只通过SSH提供。

如果你小心地打开你的端口只需要访问这些服务的最小的IP地址子集(即打开自定义应用程序/ NFS / SSH端口只需要访问这些服务的最小的一组IP地址)经验告诉我认为你的数据包过滤/防火墙与你的服务运行在同一台机器上没有任何问题,通过外部防火墙保护它们(如果我们只是谈论一台服务器,而对NAT或其他高级防火墙不感兴趣协议检查等function)。

那么对于那些需要对整个互联网(即HTTP / S)开放的服务,我会build议,并根据您select的操作系统,使用额外的工具/技术来最小化这些服务被利用的风险您正在使用的软件中存在漏洞,或者您正在编写的软件中存在编程错误)。 如果你使用的是linux / apache,modsecurity是保护你的web服务的一个很好的select。 在IIS的情况下,微软有自己的一套工具和调整,以提供同等级别的保护。

但当然,这只是我的意见,也许你最好的策略是等待听到更多的意见/经验,然后决定你的自我。

如果你的机器足够强大(大量内存,大量内核),那么我build议你去虚拟化的path:

  • 安装pipe理程序(VMware ESXi或Citrix XenServer – 它们都有免费版本)

  • 创build2个虚拟机:

    • VM#1有2个networking接口:外部和内部*

    • VM#2有1个networking接口:内部*

  • 在VM#1中安装防火墙

  • 在VM#2中安装服务器

**这里的内部是指仅存在于XenServer框内的networking,从盒子外部无法访问*

我最近写了一些关于这个问题的文章, 为什么我需要一个防火墙,如果我的服务器configuration的很好? 而社区似乎总体上已经find了有用的答案; 你可能希望阅读它。

如果您正在运行VMWare ESX(i),那么他们实际上拥有特定的虚拟设备 ,可以将防火墙整合到与DMZ和私有设备相同的硬​​件上。