对于分布式生产客户端-服务器 WCF 应用程序(自托管为具有 NetTcpBinding 的 Windows 服务),我正在添加逻辑以在安装期间通过 netsh 命令将 expception 添加到 Windows 防火墙。

我注意到无论防火墙异常是针对程序(可执行文件)还是针对端口,远程通信似乎都能正常工作。在我们的例子中,端口很少是默认值以外的其他端口,如果是,则用户可以相应地手动更改配置文件和防火墙。

我的问题是,为程序或端口或两者添加异常(exception)是否更好。是否有任何安全考虑使一种方法比另一种方法更可取?几乎所有 WCF 示例都显示端口异常。

任何见解将不胜感激,谢谢。

请您参考如下方法:

以下是我对它们的运作方式的总结:

应用程序异常-->授予指定应用程序打开任何端口

端口异常(exception)-->授予任何应用打开指定端口

因此,哪个更适合视情况而定。通常,首选应用程序异常。当应用程序尝试打开端口时,Windows 防火墙(如果启用)基本上会进行检查以确定该应用程序或端口本身是否已被授予异常(exception)。

MSDN 指出:[Application exception] 比打开端口更安全,因为防火墙仅在程序等待接收连接时打开。”

更详细的MSDN摘要和技术文章:http://technet.microsoft.com/en-us/network/bb545423.aspx

最终,部署软件的系统管理员应该知道和/或成为对防火墙进行更改的人。我们计划做的是在安装程序中有一个步骤,客户可以在其中选择退出防火墙异常(exception),但解释说如果没有它,远程客户端将无法进行通信。当然,如果其他软件或硬件防火墙已到位且需要手动配置,手动文档还将概述场景所需的端口。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!