![客户端和服务器程序运行在同一台 Windows 7 计算机上。我可以通过端口管理限制对服务器的访问吗?](https://linux22.com/image/1403625/%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E5%9C%A8%E5%90%8C%E4%B8%80%E5%8F%B0%20Windows%207%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8A%E3%80%82%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E7%AB%AF%E5%8F%A3%E7%AE%A1%E7%90%86%E9%99%90%E5%88%B6%E5%AF%B9%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%AE%BF%E9%97%AE%E5%90%97%EF%BC%9F.png)
我在跑步Windows 7的- 64 位。
我有一个程序可以在客户端服务器模式,这是:事实上,两个程序在同一台 Windows 计算机上运行的客户端和服务器。
客户端建立沟通通过 7070 TCP 端口与服务器连接。
但有一个问题:服务器程序运行在提升模式,客户端程序向其发送命令以执行。因此,任何能够执行客户端程序的人都可以执行管理程序(在某些情况下是一个很大的安全漏洞)将它们发送到服务器。
服务器程序监听,如上所述,端口 7070 TCP:
C:\>netstat -ano | find "7070" /i
TCP 127.0.0.1:7070 0.0.0.0:0 LISTENING 9804
它只监听来自本地机器,因此上面一行的内容改为127.0.0.1:7070
而不是0.0.0.0:7070
。
有什么办法只允许某些用户或群组可以连接到它吗?我不知道这是否是防火墙的问题,因为严格来说,我的 LAN 中没有网络流量。
注意:对于有兴趣的人,这是确切的程序。我正在开发几种针对此安全漏洞的解决方法(完成后我可能会在 StackOverFlow 论坛上发布),但它们都无法解决网络端口问题。
答案1
简短回答:不。
较长的回答:您似乎在询问限制谁可以连接到 TCP 端口本身,而这远远低于您甚至拥有“用户”、“身份验证”和“授权”等概念的级别——所有这些都是您需要获得所要求的东西。在这个级别上,您只有计算机和网络。
如果您的应用程序具有任何类型的身份验证机制,那么这就是此类事情发生的地方。
你能在此级别上要做的是限制可以通过防火墙连接到该端口的 IP 地址或 IP 范围。这可能实现相同的最终目标,但它不是基于“用户”或“组”,而是基于他们连接的“位置”。
或者,您可以配置一个仅允许授权用户连接的 VPN,然后仅允许该 VPN 上的用户连接到您的程序。如果您要采用这种方式,则需要通过 Google 搜索一些设置指南,因为“如何配置 VPN”超出了此类简单问答网站的范围。