这是我第一次安装IIS,我希望确保提供最大的安全性。一些问题出现在我的脑海中,当我设置时:
请注意,此服务器承载的外部网站同时拥有大约50个用户,每天大约有1000个用户,但也有仅用于内部目的的内部网站(在这种情况下,我们公司的用户在网络之外使用的网站,但没有客户使用这些网站)。
我已经读到,使用内置帐户ApplicationPoolIdentity进行应用程序池标识是最好的安全实践。我在这里的问题是,如果我可以使用这个buit--因为我将部署Wep应用程序隔离,所以我对每个Application都使用这个buit--意味着我将为我拥有的每个设置一个不同的AppPool。即使我为每个Web部署了不同的应用程序池,在每个AppPool上使用相同的帐户难道不是一个矛盾吗?
我希望安装尽可能少的特性和服务,以尽可能加强服务器。是否有一种方法来检查我所安装的功能是否被使用,或者它是否根本不需要这些功能?(对,我知道。一个小问题)
有外部访问者的网站是否需要匿名身份验证?像www.mycompany.com这样的网站需要每个人都可以访问吗?我还没有找到一种方法来禁用匿名身份验证,但使该网站仍然对每个人。
我一直认为IIS的最佳实践是将服务器放入DMZ,因为如果服务器遭到黑客攻击,入侵者就无法访问我们域网络中的所有其他服务器。由于有一些新的授权方法(如Digestauthentification )需要与域控制器( Domain )通信,而且服务器本身也需要在域上进行通信,因此我在问自己,是否最好将服务器放在域网络中,并使用其他安全措施(代理等)来保护对它的访问。还是非军事区仍然是最好的安全实践?
谢谢您的每一项投入。
发布于 2016-03-03 22:32:34
对每个应用程序使用单独的帐户-每个应用程序池导致一个独立的w3wp进程,该进程在指定的用户上下文中运行。拥有文件和其他资源(如数据库身份验证),可以提高默认操作系统、文件系统和其他安全子系统(如kerberos)的安全性。
显然,分配的帐户只应该尽可能少地访问您的主机(除非应用程序其实不应该是这样绝对要求,否则不要为网站使用高权限帐户)。
如果可能的话,我强烈建议将托管您的面向公众网站的服务器(S)和您的内部内容分开。公共可访问服务器也应放置在单独的网络段中。
您的主要攻击面是IIS (我假设您在服务器前面有防火墙),需要通过禁用服务来加强,以防止本地攻击。本地意味着在这种情况下,您的本地网络(与网络相关的服务)以及您自己的操作系统,甚至您的本地硬件(就像慢性出血那样)。
所以,是的-禁用你不需要的服务。不要禁用保护您的服务。你可能会在网上找到一些关于这方面的资源。
为了防止坏人启动可能最终包含服务器更多部分的自定义应用程序,我建议使用软件限制策略:
这导致了相互排斥,并防止了一些简单的攻击,比如打开一个shell并下载最终打开服务器门的实际应用程序。
当使用SSL/TLS时,我建议在这里也加强服务器。用于此工作的一个很好的工具是IISCrypto和SslLabs进行验证。有了一些空闲时间,您可以深入使用NGINX作为反向代理,这在传输安全性方面提供了一些额外的优势。
匿名身份验证更少“无身份验证”。所以没问题。
我看到许多网络应用了DMZ的概念,在那里放置了大量的服务器,并打开了通往主网络的大门,以支持从DMZ中托管的服务器提供的服务的后端连接。
由此得出的结论是,您有一个没有任何好处的网络分段。
所以:是的,非军事区。但不要把所有的东西都放进去,也不要打开你不需要的门。如果在同一个DMZ中有太多不相关的服务,请考虑创建一个分离的区域,将所提供的服务分离为相互关联并具有依赖关系的服务组。
发布于 2016-07-09 16:05:03
IIS最佳安全实践是一个完整的学科,您可以花几个月的时间阅读和学习。你问的是正确的问题。
我会长篇大论你的每一个具体的主题,并作出解释,但我只是重复的信息,已经有很好的记录。
简而言之,如果您希望遵循IIS的最佳实践配置,请遵循CIS II8基准测试。你需要知道和配置的一切都在这里。https://benchmarks.cisecurity.org/tools2/iis/CIS_微软_IIS_8_基准测试_v1.4.0.pdf
https://serverfault.com/questions/761273
复制相似问题