禁止普通用户访问Internet─阻断默认网关
任务描述
工作组环境里的一台Windows XP Professional的计算机,“本地连接”的IP地址是192.168.0.5,默认网关是192.168.0.1,通过局域网连接到Internet。我们的任务是仅允许管理员组的成员访问Internet,而禁止普通用户访问Internet。
解决方案
我们可以利用Netsh命令制作登录/注销脚本。在管理员登录时,系统会自动执行登录脚本里的Netsh命令,启用本地连接的默认网关配置,以使管理员可以访问Internet。而在管理员注销时,则自动执行注销脚本里的Netsh命令,清空本地连接的默认网关配置,从而使得随后登录的普通用户无法访问Internet。具体步骤如下:
1.制作批处理文件
在这个阶段,我们可以借助Netsh命令制作两个批处理文件,分别禁用或者启用本地连接的默认网关配置。
⑴ 以管理员身份登录计算机。
⑵ 用记事本新建一个空白文档,然后输入以下内容,并保存为C:\bat\DisableInet.bat文件,执行该脚本文件会清空本地连接的默认网关配置。
Netsh interface ip set address 本地连接 source=static addr=192.168.100.5 mask=255.255.255.0 gateway=none
用记事本新建一个空白文档,然后输入以下内容,并保存为C:\bat\EnableInet.bat文件,执行该脚本文件将会启用本地连接的默认网关配置(设置为192.168.0.1)。
Netsh interface ip set address 本地连接 source=static addr=192.168.100.5 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1
2.设置登录/注销脚本
制作好批处理文件,我们就可以采用以下步骤,借助组策略管理单元分别将这两个批处理文件设置为登录脚本和注销脚本。
⑴ 以管理员身份登录计算机。
⑵ 单击开始、运行,在打开的“运行”对话框里输入gpedit.msc并回车。
⑶ 在打开的“组策略”管理单元窗口左侧的控制台树里依次展开用户配置、Windows设置、脚本-(登录/注销),在右侧的详细窗格里双击登录。
⑷ 在打开“登录属性”对话框里单击添加,然后在“脚本名”文本框里输入“C:\bat\EnableInet.bat”。

图1 添加EnableInet.bat登录脚本
⑸ 依次单击两次确定,关闭“登录属性”对话框。
⑹ 用类似的方法将C:\bat\DisableInet.bat文件设置为注销脚本。
设置完成以后,每次管理员登录系统时,就会运行EnableInet.bat脚本文件,启用正确的默认网关设置,从而可以访问Internet;而当管理员注销时,就会运行DisableInet.bat脚本文件,清空默认网关设置,导致随后登录的普通用户无法访问Internet。
注意
当普通用户登录和注销的时候也要运行这两个脚本文件,但是由于Netsh命令的运行需要管理员权限,所以这两个脚本文件并不能真正在普通用户环境下执行。
3.漏洞补救
深入的实验发现,上述的解决方案还存在着以下两个“致命”漏洞:
⑴ 冷启动漏洞
假设当前的登录用户是管理员,可以访问Internet。这时候如果按机箱上的“reset”按钮重启系统,注销脚本就不会运行,所以当普通用户登录时,仍然可以访问Internet。
如果在管理员环境里按住Ctrl键,同时在任务管理器窗口上单击关机、重新启动(启用快速重启),也会发生类似问题。
⑵ 快速用户切换漏洞
假设当前的登录用户是管理员,可以访问Internet。这时候如果单击开始菜单、注销、切换用户,注销脚本就不会运行,所以当普通用户登录时,仍然可以访问Internet。
如果在管理员环境里按住WIN+L组合键锁定系统,然后以普通用户身份解锁,也会发生类似问题。
• 冷启动漏洞的补救办法
⑴ 以管理员身份登录计算机。
⑵ 单击开始、运行,在打开的“运行”对话框里输入gpedit.msc并回车。
⑶ 在打开的“组策略”管理单元窗口左侧的控制台树里依次展开计算机配置、Windows设置、脚本-(启动/关机),在右侧的详细窗格里双击启动。
⑷ 在打开“启动属性”对话框里单击添加,然后在“脚本名”文本框里输入“C:\bat\DisableInet.bat”。
因为启动脚本是在用户登录之前运行的,对于所有用户,DisableInet.bat脚本文件都会生效,所以当普通用户登录系统以后,将无法访问Internet。
而当管理员登录系统以后,就会运行EnableInet.bat脚本文件,所以可以访问Internet。
• 快速用户切换漏洞的补救办法
⑴ 以管理员身份登录计算机。
⑵ 单击开始、控制面板,在打开的控制面板窗口里单击“用户帐户”。
⑶ 单击其上的“更改用户登录或注销方式”。
⑷ 在下一页上确保清空“使用快速用户切换”复选框。

图2 禁用快速用户切换
⑸ 单击“应用选项”按钮,保存所做的设置。
这样普通用户将无法使用快速用户切换的方法来绕过“注销脚本”的运行,同样当管理员锁定计算机以后,系统会提示只能由管理员来解除锁定。

图3 只能由管理员来解锁
提示
该方法仅仅是作为一种小技巧,而不能作为严格的技术防范措施,对于企业环境来说,良好的、具有可操作性的策略和规范,才是更加重要的因素。
要了解关于Netsh命令的更详细信息,可以单击开始、运行,然后在打开的“运行”对话框里输入以下地址并回车:
ms-its:C:\WINDOWS\Help\ntcmds.chm::/Netsh_int_ip.htm