在机器上运行的防火墙是否仅阻塞来自该机器外部的东西,还是阻塞通过端口进行通信的机器上的进程之间的通信?
具体来说,我正在写一个Windows服务,将为机器上的其他进程公开一个http RESTful服务。 我是否需要担心可能在机器上运行的任何防火墙?
这将只部署到Windows机器 – 但我想这是一个普遍的问题。
注意: 在SO上交叉发布。
这取决于防火墙的configuration,以及本地机器上运行的应用程序如何相互通信。
我认为这将是可能的(但极不可能,除非你故意这样做)阻止本地主机的stream量。
更有可能的是,您需要考虑的是防火墙阻止应用程序的出站stream量,阻止他们访问其他服务器上的服务。 这是非常常见的configuration,一些防火墙将有非常安全的默认策略,closures大多数传出stream量。
你不可能遇到任何问题,因为它是一个本地应用程序。 如果您想将服务暴露给其他客户端/机器,则只需要担心防火墙。
编辑:以上是真实的Windows防火墙,其他防火墙可能会提示本地连接,如下面的评论中指出的。
本地防火墙将阻止您禁止的端口,并允许被允许的端口接收stream量。 允许操作系统在正在侦听的端口上接收stream量,并在防火墙上解除阻止。 stream量是系统内部的还是外部的,如果基于主机的防火墙允许stream量通过,并且系统正在侦听该端口,则无关紧要。
国际海事组织更好的设置closures了大多数听众,所以主机防火墙只捕捉不正确的请求。
在Windows XP下,Windows防火墙确实具有一些传出stream量保护function。
Windows Vista和7有着截然不同的防火墙,可能看起来更高级(在某些方面),但是它们有一个致命的缺陷:如果应用程序需要它,就无法要求互联网访问。 它要么阻止一切(有例外的静态规则),要么允许一切(默认设置)。
除此之外,两种防火墙都可以很好地完成传入保护。 对于Windows XP和2003,我强烈推荐Sygate个人防火墙( http://filehippo.com/download_sygate_personal_firewall/ )。 现在,赛门铁克已经买下了它,它是唯一的,最好的防火墙,它是免费的,可以提供任何你可能想要的configuration,并且会要求任何可以访问的进程的权限。 平安? 请求访问。 Windows共享? 请求。 Windows服务? 请求。 Chrome更新后? 通知可执行文件已更改,请求访问。 你会爱上它的。
对于Windows 7,我无法推荐Comodo。 它似乎是唯一能够完全取代内置Windows的防火墙,并且填补了Sygate留下的空白。