在同一台机器上运行IIS和虚拟化的SQL Server

我为政府内的一个小组织工作。 我们在政府上维护我们自己的Windows Server 2003 Web服务器。 DMZ。 我们必须在七月份之前迁移到Windows Server 2008或2012。 另外,我正在使用.Net重build网站,现在将使用SQL Server数据库而不是MS Access。

我已经读过,把IIS和SQL Server都放在同一个盒子里,尤其是一个暴露在世界的盒子里不是最好的办法。 由于预算和政治,我们只看一台服务器。 我们现有的服务器不能升级; 它不符合Windows Server 2008+的最低要求。

我目前正在为一个新的服务器的configuration工作,我正在考虑在虚拟机上运行SQL Server,而IIS在主机上运行。 我的安全问题是什么? 黑客是否有可能盗取我的虚拟机并获得完整的访问权限? 没有数据将被分类,因为它们都可以通过我们的公共网站访问。

编辑 – 添加服务器规格

戴尔PowerEdge T430塔式(FT430)

  • 2个Intel Xeon E5-2620 v3 2.5GHz,15Mcaching
  • 8 x 8GB RDIMM,2133MT / s,双排列x8数据宽度
  • PERC H730 RAID控制器(将使用RAID 5)
  • 4个600GB 15K SAS 2.5英寸热插拔硬盘
  • OnBoard Broadcom 5720双端口1Gb LOM
  • 双重,热插拔,冗余电源(1 + 1),495W

不知道你真正在看什么服务器,我们只能猜测。

增加GregL和Jim B所说的。

我猜你是从Server 2003 Standard,IIS 6.5,Access 2007迁移使用ASP经典代码页通过OLEDB静态连接。 您可能正计划使用升迁向导导入您的Access(大多数情况下这种types的工作方式),或者您可以尝试使用32位应用导入/导出。

为了您的新安装,我正在考虑MS Server 2012 Standard,该版本已获得1项物理安装和2项虚拟安装的许可。 这将为您提供在不同的VM中独立运行SQL和IIS的选项。 但是,这可能不是你最好的办法。

不要:从超V主机操作系统运行公共应用程序。 我也build议不要在主机上启用RDP。 将主机看作是服务器的电源线。 如果中断,你需要现场解决。

您可以:在虚拟机中安装IIS >内存取决于您的代码,如果您运行ASP classic或.Net

您可以:在虚拟机中安装MS SQL > 虚拟机的大小取决于您的MS SQL版本 。 Express版本提供高达10GB的数据总开销( 比较版本 )。

按照您现在看到的7年计划您的服务器。 示例:虚拟服务器驱动器大小第一天,128Gb,第五年1.5TB,计划3TB。

IIS 7.5及更高版本在虚拟环境中工作得非常好。 在您的虚拟环境中运行为您的操作系统devise的MS SQL Express也很好。 背后的想法是能够从一台物理服务器上运行更多的操作。 如果它运行在独立安装,它应该只是在虚拟安装中find。 不包括使用所有物理连接设备和内存获益的Datacenter版本。 在同一个虚拟机上同时安装IIS和SQL Express可以减less我的pipe理时间,而不必再看第二台服务器。 除非您计划运行Datacenter版本,否则您需要在自己的物理机器上运行它。

这里有一些数字我的Server 2008 R2标准。 CPU 3.3Ghz,8核心,1个物理1个虚拟Windows服务器,2个虚拟Ubuntu服务器,2个Win8虚拟桌面,2个Win7虚拟桌面。

IIS = 3.4Gb (27 IIS www网站,3 ASP经典24 .Net)

2008 SQL Express = 1.14Gb (28 dbs有效)

OS 2008 R2 VM = <2Gb

总内存10Gb从来没有使用过这一切。

你的64Gb内存机器将会很好,但是要把你的真实数字和你的系统调整到20%左右,或者操作系统build议的内容。

关于黑客,他们确实存在,但脚本也是如此。 计划你的系统恢复,就好像你打算每天晚上被黑客攻击一样。 实践你的恢复过程,直到它完美,然后当需要的时候,它会实际上工作。

不,黑客不能“盗取你的虚拟机并获得完整的访问权限”。 他们需要进入虚拟机pipe理界面,如果他们到了那里,你的政府部门有更大的问题。

在同一台服务器上同时运行IIS和SQL在技术上是好的,但是否是一个好主意取决于您的负载configuration文件是否允许。

如果这是一个小网站,你们都很好。 我已经看到很多这些一次运行完美。 只要确保有足够的资源(CPU,RAM和磁盘I / O)让IIS和SQL运行良好,并且将SQL限制为只有CPU / RAM的一个子集可能不会是错误的,从而不会造成所有问题。 因为它会,如果你让它。

如果这是一个真正的大/繁忙的网站,那么你会想重新考虑。 看到你正在使用MS Access,我不可能想象到这种情况。

就安全问题而言,这实际上取决于你想要如何pipe理各个部分。 如果你打算从桌面连接到SQL实例,那么你必须暴露1433端口,这意味着其他人也可以这样做。 除非你的防火墙的设置方式只能从内部区域进行。 如果你很高兴RDP进入服务器,并在本地完成,你只需要公开IIS端口(80和/或443),这是不是比你现在可能有的安全。


重新阅读问题和评论后,我看到你想要一个物理服务器。 它将运行IIS以及SQL for VM。

这是没有意义的。 将服务器视为直接pipe理程序,并在各个VM中运行这两个层,或者在硬件上本地运行它们。 混合的东西只会导致stream泪。

没关系。 不同之处在于,如果您已经损害了Web服务器,则免费侵入了SQL服务器。 由于它在DMZ上,请确保pipe理端口被防火墙closures,并在SQL Server上configuration内存限制。