Windows 下,访问 127.0.0.1 到底过不过 Windows 防火墙?

2019-07-31 23:49:42 +08:00
 BinRelay

事情是这样的,某网络安全主管部门下发了一个统计软件,表面上是个单机软件,
实际上是一个一键部署基于 tomcat 的 web 应用。然后登陆 127.0.0.1/awesome.html 进行统计。

问题在于,有一个说明文档,要求用户将 windows 防火墙例外 java.exe 。
但是根据我的使用情况,我发现仅仅是访问 127.0.0.1 并不需要例外,似乎数据根本不过防火墙。
我甚至在 windows 防火墙出入方向都 deny 了相应端口,仍然可以访问。
我不禁疑问,到底是我错了?还是某网络安全主管部门的外包公司弄错了?

4010 次点击
所在节点    程序员
14 条回复
ipwx
2019-07-31 23:51:10 +08:00
一般而言,本机地址和其他地址用的不同的防火墙规则集
BinRelay
2019-07-31 23:55:14 +08:00
@ipwx win 里也就公用网络、专用网络、域三种防火墙配置文件吧
那么访问 127.0.0.1 会匹配哪一个?还是都不匹配呢?
gam2046
2019-08-01 05:08:11 +08:00
https://stackoverflow.com/questions/21230691/why-are-localhost-connections-blocked-by-the-firewall

这里有一个模棱两可的回答,似乎是 Bind 在 localhost 上以后,并不会触发 Windows 的防火墙。

也就是说虽然你的软件是通过 localhost 访问的,但是是否触发防火墙取决于软件 bind socket 所使用的地址,如果是 bind 0.0.0.0 那么必然会有防火墙规则
ShangAliyun
2019-08-01 08:49:50 +08:00
可能仅仅是习惯性的对局域网开放
danmu17
2019-08-01 09:28:00 +08:00
哈哈,好奇能炸出来多少不懂装懂的。
LokiSharp
2019-08-01 09:30:27 +08:00
只是默认规则没有针对环回地址而已啊,你不能保证用户不自定义防火墙规则
BinRelay
2019-08-01 09:31:02 +08:00
@gam2046
bind 127.0.0.1 和 0.0.0.0 决定了首次运行程序时是否弹出 windows 防火墙窗口。
不过即使 bind 了 0.0.0.0,会弹出窗口,由于我访问的 127.0.0.1,那么无论我在弹出的窗口
放行还是阻断,都没有任何区别。
这个 stackoverflow 的题主也一样这样描述“ If I click 'Deny' when that dialogue appears, my program still accepts local incoming connections, so that popup is completely useless for preventing any of the risks you just mentioned. ”

那么我初步得出结论:
1、bind 的地址决定是否首次运行程序时是否弹出防火墙窗口。
2、无论防火墙怎么配置,本机访问 localhost 均不会匹配 windows 防火墙策略。
3、外包公司因为程序默认 bind 了 0.0.0.0,弹出了防火墙窗口,未进行验证或者为了局域网访问就要求用户放行软件。
BinRelay
2019-08-01 09:32:08 +08:00
@LokiSharp
我就是额外定义了 deny 规则,环回仍然畅通无阻。
LokiSharp
2019-08-01 09:49:04 +08:00
@BinRelay #8 你把所有规则都删掉然后 deny 所有出入站再看看?
zarte
2019-08-01 09:52:51 +08:00
windows 绑定 127.0.0.1 外网无法访问,需要绑定 0.0.0.0 外网才能访问。所以觉得应该看绑定的地址。
webjin2
2019-08-01 09:55:16 +08:00
@BinRelay 公用网络、专用网络、域 。配置网卡的时候有这个选项,你是专业网络还是公用网络。至于域估计是计算加入了域之后,网卡配置选项才有这一个把。具体我也不知道。
jeblur
2019-08-01 09:59:36 +08:00
一般来说环回口只有本地有效吧,你的意思是你本地访问环回口就算在防火墙上被 block 也照样访问?如果是这样的话那没问题啊,因为你数据包根本不过防火墙当然也就跟防火墙没关系了呀
rootww21
2019-08-01 10:04:41 +08:00
你当然没弄错,外包公司是确保万无一失
jeblur
2019-08-01 10:06:10 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/588024

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX