
很多管理员在部署RDP多用户环境后,发现仅仅依靠系统默认的权限隔离还不够。用户虽然进不去别人的家目录,但依然能看到其他盘符、能运行敏感工具,甚至能修改全局配置。本文将深入文件系统ACL与注册表权限,教你如何构建一套真正安全的多用户隔离策略。
一、文件系统隔离:从“防进入”到“防窥探”
系统默认只保护了C:\Users,但D盘、E盘以及C盘根目录下的Program Files、Windows目录,用户往往拥有“读取和执行”的权限。我们需要收紧这些权限。
1. 隐藏非授权盘符(GPO)
最直观的方法是直接让特定用户看不到盘符。通过组策略(GPO)配置:用户配置 → 管理模板 → Windows组件 → 文件资源管理器,启用“隐藏‘我的电脑’中的这些指定的驱动器”。这比单纯改NTFS权限更隐蔽,用户体验更好。
2. 收紧数据盘权限
假设有一块D盘用于存储各用户的私有数据。默认情况下,Users组对该盘有读取权限。我们需要移除继承并重设权限:
打开D盘属性 → 安全 → 高级 → 禁用继承 → 删除Users组的权限。
随后,为每个用户单独添加权限条目:例如,仅给RDP0账号授予D:\RDP0_Data文件夹的“完全控制”权限,其他用户无权访问。
3. 限制Program Files的执行权
为了防止用户运行未经授权的exe程序,可以对C:\Program Files下的特定子目录设置“拒绝执行”权限(针对Users组)。但注意,不要动全局权限,以免导致依赖系统组件的应用崩溃。建议新建一个D:\AllowedApps目录,只给读取和运行权限,让用户只能运行白名单内的软件。
二、注册表隔离:防止“跨会话攻击”
除了文件,注册表是另一个重灾区。多用户共享HKLM(本地机器)的配置,如果权限控制不当,低权限用户可能篡改高权限服务所需的键值。
1. 锁定敏感注册表项
对于存放软件配置的注册表路径(如HKLM\Software\YourApp),默认Users组可能拥有“读取”权限,有时甚至包含“写入”。
打开regedit → 选中目标项 → 右键权限 → 高级。
将所有权改为Administrators,然后移除Users组的“完全控制”和“修改”权限,仅保留“读取”。这能防止用户通过修改注册表来改变软件行为或窃取全局配置。
2. 利用HKCU重定向
很多软件错误地往HKLM写配置。作为管理员,可以通过脚本或组策略,将软件对HKLM的特定读写请求,重定向到用户自己的HKCU下。这样,每个用户的配置互不影响,既解决了冲突,又避免了权限提升的风险。
三、RDS环境专用:User Profile Disk (UPD)
如果你使用的是Windows Server的RDS(远程桌面服务),上述手动改权限的方式过于繁琐。推荐使用User Profile Disk (UPD)。
1. 什么是UPD
UPD是微软官方提供的解决方案。它在后端存储中创建一个VHDX虚拟磁盘文件,专门对应用户的配置文件(C:\Users\用户名)。
当用户登录时,这个VHDX会被动态挂载;注销时,自动卸载。
2. UPD的优势
物理隔离:每个用户的文件都在独立的VHDX文件里,即便NTFS权限配置失误,用户也突破不了虚拟磁盘的边界。
漫游性:用户无论登录场内的哪台RDS服务器,都能加载到一模一样的桌面和文件。
易维护:要销毁用户数据?直接删VHDX文件即可,无需清理复杂的ACL。
四、实战避坑指南
在进行权限收紧时,务必注意以下几点,否则会导致大面积故障:
不要动C:\Windows的权限:除非你非常清楚后果,否则不要修改Windows目录的ACL,这会导致系统无法启动或更新失败。
测试Users组的影响:很多系统服务是以NETWORK SERVICE或LOCAL SERVICE运行的,它们也属于Users组。收紧权限可能导致服务启动失败。
善用“拒绝”与“允许”:在ACL中,“拒绝”优先级高于“允许”。如果某个用户需要特殊权限,最好单独为其建立用户组,赋予“允许”权限,而不是直接在该对象上修改,以免被上层目录的“拒绝”规则覆盖。
五、总结
RDP多用户的权限管理,是一个从“粗粒度”到“细粒度”的过程。默认配置只提供了基本的隐私隔离,而真正的安全需要管理员介入:
文件系统:通过NTFS ACL控制盘符可见性和目录读写权。
注册表:锁定HKLM,保护全局配置不被篡改。
高级方案:利用UPD实现物理级别的隔离。
做好这三层防护,你的RDP服务器才能真正做到“多人共用,互不干扰,安全可靠”。
📌 觉得这套方案实用?点个「在看」,让你的同行也少踩几个坑。