【问题标题】:Winsock client socket - Blocking dynamic ports in the firewallWinsock 客户端套接字 - 阻止防火墙中的动态端口
【发布时间】:2015-02-03 12:21:13
【问题描述】:
  • 考虑一个服务器套接字和一个客户端套接字。
  • 服务器套接字端点由对(IP/Ws.Xs.Ys.Zs,TCP 端口/Ps)标识。
  • 当客户端套接字发起与服务器套接字的连接时,客户端端点与该对(IP/Wc.Xc.Yc.Zc,TCP 端口/Pc)相关联。
  • 客户端套接字是“Winsock”。
  • 在客户端计算机上,端口 Ps 的出站流量未被阻止。
  • 在连接时,Pc 会自动在客户端计算机的临时/动态端口池中选择。
  • 客户端套接字向服务器套接字发送消息Mc
  • 服务器套接字响应并将消息Ms 发送回客户端套接字。
  • 此消息将发送到由(IP/Wc.Xc.Yc.Zc,TCP 端口/Pc)标识的端点。

有没有办法通过在客户端计算机上防火墙的“入站”部分设置防火墙规则来阻止此消息Ms

我试过设置这样的规则,但似乎没有阻止任何东西:

In the Windows firewall, in the "Inbound" rules section:
- "New Rule..." -> "Port"
- TCP
- Specific local ports: 49152-65535
  (This is the dynamic ports range on the client machine (given by the command "netsh int ipv4 show dynamicport tcp")).
- Block the connection
- When does this rule apply? I checked: "Domain", "Private" and "Public".

为什么它不起作用?为什么Ms 没有被防火墙拒绝? 是因为套接字实现吗?类似于:如果客户端套接字实际上可以将其消息发送到服务器套接字,则必须在 (IP/Wc.Xc.Yc.Zc, TCP 端口/Pc) 上接受来自服务器的响应,即使在防火墙? 或者,我在上面设置的规则实际上并没有阻止我认为它正在阻止的内容......

感谢您的帮助。 最好的问候。

【问题讨论】:

  • 为什么?如果要阻止连接,请阻止连接。允许连接然后尝试通过该连接阻止消息是没有意义的。

标签: sockets tcp winsock windows-firewall


【解决方案1】:

防火墙会阻止连接尝试,而不是单个数据包。出站过滤器阻止与远程服务器的出站连接,入站过滤器阻止与本地服务器的入站连接。

除此之外,“消息”可能需要传输多个数据包,或者可能与其他“消息”组合在一个数据包中。

所以不,一旦成功建立连接,防火墙就无法阻止通过该连接传输的特定“消息”。连接已被信任,防火墙不会分析和过滤连接的内容。

【讨论】:

  • 好的。谢谢你的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2012-03-18
  • 1970-01-01
相关资源
最近更新 更多