添加防火墙例外的最佳做法:程序或端口例外?

时间:2009-10-30 15:12:36

标签: wcf-security windows-firewall

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

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

我的问题是,为程序或端口或两者添加例外是否更好。是否有任何安全考虑因素使一种方法比另一种更理想?实际上,WCF的所有示例都显示了端口异常。

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

1 个答案:

答案 0 :(得分:3)

以下是我认为它们如何运作的总结:

应用程序例外 - > 授予指定的应用程序以打开任何端口

端口例外 - > 授予任何打开指定端口的应用程序

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

MSDN声明:“[应用程序例外]比打开端口更安全,因为防火墙仅在程序等待接收连接时打开。”

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

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