拒绝访问 Windows 中的网络适配器

拒绝访问 Windows 中的网络适配器

我已经通过 OpenVPN 设置了维护网络。但是,当我登录计算机(例如通过远程桌面)并且其他人同时使用该计算机时,我要么接受她在我建立连接后能够访问 VPN,要么强制她注销。

两者都不是最理想的。

是否可以将 ACL 设置为 NIC?或者以其他方式禁用特定用户对网络的访问?我需要在 XP 和 7 上使用此功能,但只对其中一个有效的解决方案已经是一个很大的改进。

答案1

简短的回答是“不”。Windows 中没有内置任何功能可以实现这一点。

可以写一些东西来做这件事吗?当然可以。您可以通过编写一个设备驱动程序来做到这一点,该驱动程序挂接 winsock 调用,通过进程所有者确定它们来自何处,然后确定它们是否允许调用继续。

当然,我怀疑你是否想这么做。只是为了让你感觉好一点,Linux 或 OS X 上也没有类似的东西。问题是网络代码通常是通过系统调用进行的,而在内核级别,操作系统不知道“用户”。如果你的 ring 0 代码,你可以做任何事情。

答案2

遗憾的是,ACL 无法应用于设备或网络堆栈的部分,例如 TCP/UDP/原始流。这是 Windows 中的一个已知问题,希望在未来版本中得到解决。

与此同时,您能做的最好的事情就是在使用 VPN 时完全控制该盒子,或者选择在其他人登录该机器时不使用 VPN。

答案3

虽然这可能不是您想要的,因为它的磁盘空间开销很高,但一种解决方法是在以本地用户身份运行的虚拟机中运行需要 VPN 的 VPN 软件和程序,这样只有您才能访问 VPN 连接。

答案4

OpenVPN 具有以下功能:

  • 使用客户端证书,这样你就知道谁在连接到 OpenVPN 服务器端
  • 为给定的客户端证书分配一个固定的 IP 地址。
  • 以及其他基于客户端证书的事情。

鉴于此,您可以向用户提供客户端证书,然后在服务器端实施防火墙策略,阻止用户访问他们不需要访问的资源。

相关内容