我刚刚与安全人员进行了一次有趣的会议,我希望得到一些支持的本次会议的要点是:
Apache 是安全的,因为它只需要打开端口 80 和 443(用于 http 和 https 访问)。IIS 需要向客户端打开更多端口,因为它还需要 DNS 和其他东西。
这听起来很可疑,请不要误会我的意思:我喜欢 apache,就像我喜欢 IIS 一样,但我不是防火墙和网络配置方面的专家:我需要一些这方面的意见。
为了得到答案,请假设 apache 和 IIS 是最新版本。
答案1
没有任何理由要求 IIS 服务器必须比 Apache 服务器开放更多端口。实际上,您可能希望在 IIS 和其后面的服务器(AD 等)之间开放更多端口,但如果您有前后接口,则无论如何都只会在后面开放它们,这使得 IIS 能够像 Apache 一样在前端端口上使用 80/443 运行。
答案2
我感觉你们的安全人员给你们带来了很多麻烦。我的服务器前端只打开了 80/443 端口,没有出现任何问题。
答案3
正如其他人提到的,一个 HTTP 服务器 (IIS/Apache) 不需要比另一个打开更多的端口。他们似乎混淆/混淆的是 HTTP 服务器的下方。加入 Active Directory 域的 Windows 非常依赖 DNS。
一张显示服务器与防火墙位置关系的图表会有所帮助。听起来 Web 服务器应该是面向公众的。如果是这样,它是否位于 DMZ 中?
不过,我同意其他人的观点。在任何情况下,你都没有必要向公众公开超过 80/443 的内容。
编辑:
在您的 DMZ 中,如果 Windows 机子必须加入 AD 域并且 DMZ 中没有 DC(我猜没有),那么需要打开其他端口才能与 DNS 和 AD 进行通信。
现在,我不是 *nix 大神,但如果 Apache 有任何类型的中央身份验证,我认为情况也是如此。不过,也许已经设置好了,他们正在推动更多地使用现有配置。
底线:IIS 需要打开更多端口的说法根本不正确。所有底层服务都可能需要打开更多端口,但这完全取决于 Web 应用程序的工作方式和管理方式。对于直接 HTTP 服务,标准端口 80/443 就是所需的全部。