Windows NT Server 4.0 基准安全清单

本清单概述了一系列您应当遵循的步骤,来确保那些独立运行或作为 Windows NT 域的一部分运行 Windows NT 的服务器的安全。这些步骤适用于 Windows NT Server 4.0 标准版和企业版。

要点 本清单旨在提供指导,以便在运行 Windows NT 4.0 的服务器上配置最基本的安全性。其他高级设置见于 Microsoft TechNet 安全网站中的完整的 Windows NT Server 4.0 配置清单中。

本清单包含有关编辑注册表的信息。在编辑注册表之前,请确认您知道在出现问题时如何恢复注册表。有关如何操作的信息,请参阅 Regedit.exe 中的“恢复注册表”帮助主题或 Regedt32.exe 中的“恢复注册表项”帮助主题。

Windows NT Server 4.0 配置


步骤
Box

验证所有的磁盘分区都以 NTFS 格式进行了格式化

Box

验证管理员帐户拥有一个可靠的密码

Box

禁用不必要的服务

Box

禁用或删除不必要的帐户

Box

确保禁用来宾帐户

Box

保护文件和目录

Box

保护注册表防止匿名访问

Box

应用适当的注册表 ACL

Box

限制对公用的本地安全权限 (LSA) 信息的访问

Box

启用 SYSKEY 保护

Box

设置更加可靠的密码策略

Box

设置帐户锁定策略

Box

配置管理员帐户

Box

取消所有不必要的文件共享

Box

给所有必要的文件共享设置适当的 ACL

Box

安装防病毒软件及其更新

Box

安装最新的 Service Pack

Box

在安装 Service Pack 之后安装适当的安全修补程序

Windows NT Server 4.0 配置清单详细资料

验证所有的磁盘分区都以 NTFS 格式进行了格式化
 

NTFS 分区能够提供 FAT、FAT32 或 FAT32x 文件系统所不能提供的访问控制与保护。确保服务器中的所有分区使用 NTFS 格式进行了格式化。如果必要,请使用转换实用程序将 FAT 分区非破坏性地转换为 NTFS 格式。

警告 如果使用转换实用程序,转换后驱动器的 ACL 会设置为“Everyone:完全控制”。请使用 Windows NT Server Resource Kit 中的 Fixacls.exe 实用程序将其重新设置为更为合理的值。

验证管理员帐户拥有一个可靠的密码
 

Windows NT 允许不超过 14 个字符的密码。一般来说,长密码比短密码更为可靠,而拥有多种字符类型(字母、数字、标点符号和使用 ALT 键以及数字键盘上的三个数位的密钥代码而产生的非打印 ASCII 字符)的密码比单纯的字母型或字母兼数字型的密码更为可靠。为获得最大程度的保护,请确保管理员帐户的密码至少包含九个字符,并且在前七个字符中至少包含一个标点符号或非打印 ASCII 字符。

禁用不必要的服务

安装了 Windows NT Server 后,应当禁用所有在服务器角色中不必要的网络服务。尤其需要考虑的是,您的服务器是否需要 IIS 组件以及是否应当运行用于文件与打印共享的服务器服务。

此外,还应当避免在服务器上安装应用程序,除非它们对于服务器的功能来说是绝对必要的。例如,不应当安装电子邮件客户端、办公效率工具或对服务器来说并非完全必要的实用程序。

禁用或删除不必要的帐户

应当在用户管理器中查看系统中的活动帐户(对用户和应用程序而言)列表,禁用所有的非活动帐户,并删除不再需要的帐户。

确保禁用来宾帐户

默认状态下,在运行 Windows NT Server 的系统中,来宾帐户是禁用的。如果启用了来宾帐户,请将其禁用。

保护文件和目录

为了给服务器提供足够的安全性,需要更改多个文件系统权限。这些权限要求您系统中的卷使用 NTFS 格式,但其实无论如何都需要这样做。关于这些更改最权威性的参考,请参阅白皮书 NSA Windows NT System Security Guidelines,该白皮书由 Trusted System Services 发布。推荐设置如下所示的文件和目录 ACL。表中的“Installers”指的是任何有权安装应用程序或系统软件的帐户。

目录或文件
建议的最大权限
C:\

Installers:更改
Everyone:读取
Server Operators:更改

文件

Installers:更改
Everyone:读取
Server Operators:更改

IO.SYS、MSDOS.SYS

Installers:更改
Everyone:读取
Server Operators:更改

BOOT.INI、
NTDETECT.COM、
NTLDR

(无)

AUTOEXEC.BAT、
CONFIG.SYS

Installers:更改
Everyone:读取
Server Operators:更改

C:\TEMP

Everyone:(RWXD)*(NotSpec)

C:\WINNT\

Installers:更改
Everyone:读取
Server Operators:更改

文件

Everyone:读取
Server Operators:更改

win.ini

Installers:更改
公用:读取
Server Operators:更改

Control.ini

Installers:更改
Everyone:读取
Server Operators:更改

Netlogon.chg

(无)

\WINNT\config\

Installers:更改
Everyone:读取
Server Operators:更改

\WINNT\cursors\
\WINNT\fonts

Installers:更改
Everyone:添加和读取
Server Operators:更改
PwrUsers: 更改

\WINNT\help\

Installers:更改
Everyone:添加和读取
Server Operators:更改
PwrUsers: 更改

*.GID、*.FTG、*.FTS

Everyone:更改

\WINNT\inf\

Installers:更改
Everyone:读取

*.ADM 文件

Everyone:读取

*.PNF

Installers:更改
Everyone:读取
Server Operators:更改

\WINNT\media\

Installers:更改
Everyone:读取
Server Operators:更改
PwrUsers: 更改

*.RMI

Everyone:更改

\WINNT\profiles\

Installers:添加和读取
Everyone: (RWX)*(NotSpec)

..\All users

Installers:更改
Everyone:读取

..\Default

Everyone:读取

\WINNT\repair\

(无)

\WINNT\system\

Installers:更改
Everyone:读取
Server Operators:更改

\WINNT\System32\

Installers:更改
Everyone:读取
Server Operators:更改
Backup Operators:更改

文件

Everyone:读取
Server Operators:更改

$winnt$.inf

Installers:更改
Everyone:读取
Server Operators:更改

AUTOEXEC.NT、
CONFIG.NT

Installers:更改
Everyone:读取
Server Operators:更改

cmos.ram、
midimap.cfg

Everyone:更改

localmon.dll、
decpsmon.*、
hpmon.*

Installers:更改
Everyone:读取
Server Operators:更改
Print Operators:更改

\WINNT\System32\config\

Everyone:列表

\WINNT\System32\DHCP\

Everyone:读取
Server Operators:更改

\WINNT\System32\drivers\
(包括 \etc)

Everyone:读取

\WINNT\System32\LLS

Installers:更改
Everyone:读取
Server Operators:更改

\WINNT\System32\OS2
(包括 \DLL 子目录)

Everyone:读取
Server Operators:更改

\WINNT\System32\RAS

Everyone:读取
Server Operators:更改

\WINNT\System32\Repl

Everyone:读取
Server Operators:更改

\WINNT\System32\Repl\、
import、export、scripts
subdirs

Everyone:读取
Server Operators:更改
Replicator:更改

\WINNT\System32\spool

Installers:更改
Everyone:读取
Server Operators:完全
Print Operators:更改

\drivers\
\drivers\w32x86\2\
\prtprocs\
\prtprocs\w32x86\
\drivers\w32x86\

Installers:更改
Everyone:读取
Server Operators:完全
Print Operators:更改

\printers\、\tmp\

Installers:更改
Everyone:(RWX)(NotSpec)
Server Operators:完全

\WINNT\System32\viewers

Everyone:读取
Server Operators:更改

\WINNT\System32\wins

Everyone:读取
Server Operators:更改

C:\...\*.EXE、*.BAT、*.COM、*.CMD、*.DLL

Everyone:X

保护注册表防止匿名访问

默认权限并不限制对注册表的远程访问。应该只有管理员才能远程访问注册表,因为默认状态下 Windows NT 注册表编辑工具支持远程访问。要限制对注册表的远程访问:

  1. 将下列项添加到注册表中:

    配置单元

    HKEY_LOCAL_MACHINE \SYSTEM

    \CurrentControlSet\Control\SecurePipeServers

    值名

    \winreg

  2. 选择 winreg,单击“安全”菜单,然后单击“权限”。
  3. 将管理员权限设置为“完全控制”,确保表中没有列出其他用户或组,然后单击“确定”。

该项中设置的安全权限 (ACL) 定义了哪些用户和组可以连接到系统,进行远程注册表访问。此外,尽管存在 winreg 项中设置的 ACL,但在 AllowedPaths 子项中还包含一个列表,其中的项可供 Everyone 组的成员进行访问。这会允许诸如检查打印机状态等特定的系统功能正常工作,而不管访问是如何通过 winreg 注册表项被限制的。AllowedPaths 注册表项的默认安全级别只授予管理员管理这些路径的权限。有关 AllowedPaths 项及其适当使用方法的内容见于 Microsoft 知识库文章 Q155363

应用适当的注册表 ACL
 

许多注册表项需要更改为默认的 ACL 以获得最高安全级别。关于这些更改的确切参考,请参阅白皮书 NSA Windows NT System Security Guidelines,该白皮书由 Trusted System Services 发布。它们推荐要求删除下面表格中(它所在的位置)列出的所有用户的 ACE,然后更改表中显示的 ACL。表中的“Installers”指的是任何有权安装应用程序或系统软件的帐户。

警告 除非表中说明“整个树”,否则只更改指定项的权限,而不包括子项。

项路径
权限
说明

\Software

Installers:更改
Everyone:读取

只有能够安装软件的帐户才能拥有该树的更改权。

\Software\Classes

Installers:添加
Everyone:读取

树需要特别对待,因为限制“Everyone”的访问权限为读取可能破坏某些应用程序。

\Software\Microsoft\Windows\CurrentVersion\App Paths

Installers:更改
Everyone:读取

应用到整个树。安装时,该树为空,设置 ACL 以避免误用。

\Software\Microsoft\Windows\Current Version\Explorer

Everyone:读取

应用到整个树

\Software\Microsoft\Windows\Current Version\Embedding

Installers:更改
Everyone:读取

应用到整个树

\Software\Microsoft\Windows\Current Version\Run, RunOnce, Uninstall, and AEDebug

Everyone:读取


 

\Software\Microsoft\Windows NT\CurrentVersion\Font*, GRE_Initialize

Installers:更改
Everyone:添加

只更改以“Font”开头的树,FontDrivers 除外,此外还有 Gre-Initialize。

\Software\Microsoft\Windows NT\CurrentVersion\Type 1 Installer\Type 1 Fonts

Installers:更改
Everyone:添加


 

\Software\Microsoft\Windows NT\CurrentVersion\Drivers, Drivers.desc

Everyone:读取

应用到整个树。

\Software\Microsoft\Windows NT\CurrentVersion\MCI, MCI Extensions

Installers:更改

应用到整个树。

\Software\Microsoft\Windows NT\CurrentVersion\Ports

INTERACTIVE:读取
Everyone:读取

应用到整个树。

\Software\Microsoft\Windows NT\CurrentVersion\WOW

Everyone:读取

应用到整个树。

\Software\Windows 3.1 Migration Status

Everyone:读取

应用到整个树。

\System\CurrentControlSet\Services\LanmanServer\Shares

Everyone:读取

应用到整个树。防止用户添加新共享。

\System\CurrentControlSet\Services

Everyone:读取

应用到整个树。防止非管理员更改服务设置。

限制对公用的本地安全权限 (LSA) 信息的访问

您应当能够识别系统中的所有用户,所以应当对匿名用户进行限制,减少他们获取的关于 Windows NT 安全子系统的 LSA 组件的信息。LSA 处理本地计算机的各方面安全管理,其中包括访问与权限。要实现该限制,请创建并设置下列注册表项:

配置单元

HKEY_LOCAL_MACHINE \SYSTEM


CurrentControlSet\Control\LSA

值名

RestrictAnonymous

类型

REG_DWORD


1

启用 SYSKEY 保护

SAM 数据库存储域和本地计算机帐户的密码散列。获取了 SAM 数据库文件访问权(从服务器本身、利用服务器的紧急修复盘或备份磁带)的攻击者可以使用密码破解工具攻击这些散列。SYSKEY 工具允许您为 SAM 数据库加密,使未经授权的攻击者利用密码破解工具攻击您存储的密码散列变得更加困难。Microsoft 知识库文章 Q143475 详细描述了如何安装和使用 SYSKEY。

警告 在安装 SYSKEY 之前,请更新服务器的紧急修复盘 (ERD)。安装了 SYSKEY 之后,使用一个新的、单独的软盘制作另一份 ERD。不要试图使用安装 SYSKEY 之前的 ERD 来恢复安装 SYSKEY 之后的系统。

设置更加可靠的密码策略
 

使用用户管理器或域的用户管理器应用程序中的“帐户策略”对话框(选择“策略”|“帐户”命令),来加强密码许可的系统策略。Microsoft 建议您进行下列更改:

Windows NT SP 3 及其更新版本包含一个密码过滤工具 passfilt.dll,它使您能够实现更为可靠的密码更改规则。该工具只许可符合下列所有标准的密码:

警告 必须对域中所有的域控制器执行此更改。如果未能对 BDC 进行更改,那么当 BDC 被提升为 PDC 角色时,将禁用可靠的密码检查。还应当对成员服务器进行此项更改,以便充分保护本地计算机帐户

要安装 passfilt.dll,请进行如下的注册表更改(关于编写自己的筛选器,请参阅 Microsoft 知识库文章 Q151082)。

配置单元

HKEY_LOCAL_MACHINE \SYSTEM


CurrentControlSet\Control\LSA

值名

NotificationPackages

类型

REG_MULTI_SZ

更改

将字符串 passfilt.dll 添加到列表中

设置帐户锁定策略

Windows NT 包含一个帐户锁定功能,能够在登录失败次数超过管理员指定值时禁用帐户。要开启此项功能,请使用域的用户管理器中的“帐户策略”对话框,然后选择“帐户锁定”选项。为获得最大安全性,请在 3 至 5 次失败尝试后启用锁定,在不少于 30 分钟后将计数重置,并将锁定期限设置为“永远锁定(直到管理员解开锁定)”。

Windows NT Server Resource Kit 包含一个工具,该工具使您能够调整某些通过普通管理工具无法访问的帐户属性。该工具 (passprop.exe) 可以使您锁定管理员帐户:

/adminlockout 开关允许将管理员帐户锁定

配置管理员帐户

由于管理员帐户内建于所有的 Windows NT 中,它对攻击者来说是个已知的目标。要使管理员帐户更难攻击,请在每台服务器上的域管理员帐户和本地管理员帐户设置中遵循下面两点:

取消所有不必要的文件共享
 

系统中所有不必要的文件共享都应当被取消,以防止可能的信息泄漏,并避免怀有恶意的用户利用共享作为本地系统的入口。

给所有必要的文件共享设置 ACL

默认状态下,所有用户对于新创建的文件共享都拥有完全控制权限。系统中所有必要的共享都应当设置 ACL,以便使用户拥有适当的共享级别访问权(例如,Everyone = 读取)。

注意 必须使用 NTFS 文件系统来对个别文件设置 ACL 以及共享级别权限。

安装防病毒软件及其更新

必须在所有的 Internet 和 Intranet 系统中安装防病毒软件,并及时更新为最新的病毒签名。

关于防病毒安全方面的详细信息可以在 Microsoft TechNet 安全网站中获得。

安装最新的 Service Pack

Windows NT 的所有 Service Pack 都包括先前的 service pack 中的安全修补程序。Microsoft 推荐您及时更新 Service Pack 版本,并且一旦操作环境允许,应当为您的服务器安装正确的 Service Pack。当前的 Service Pack 6a,可以从 Microsoft 下载中心获取:

Service Pack 也可以通过如下途径获取:Microsoft 产品支持

安装适当的 Service Pack 后的安全修补程序

Microsoft 通过其安全通知服务发布安全电子公告。当电子公告建议安装安全修补程序时,您应当立即下载并将其安装到成员服务器中。如果您要安装 SP6a,应当首先安装 Service Pack 6a 后的“C2 更新”修补程序,该程序进行了多项修改以保证完全的 C2 兼容性。C2 更新可以从 Microsoft 下载中心获得:

该更新也可以通过多种媒介从 Microsoft 产品支持定购。

©2001 Microsoft Corporation. 保留所有权利。