加固NT和IIS的安全
文章类别:
asp | 发表日期:2008-10-5 20:17:42
原文作者:Gavin Reid gavin@shebeen.com
本文仅试用于运行IIS 4.0的NTS 4.0系统,如果服务器上还有其他的应用(比如Cold Fusion),那么必须同时保证这些应用本身的安全。下面所述的方法应该在安装新系统时进行,以避免不可预知的结果出现。另外需要注意的是,这种方法不应该在内部网络上(比如文件服务器)使用,因为它删除了一些NT常用的默认服务。
一、安装
1.所有分区为NTFS
服务器选择独立的服务器,不选择PDC
选择工作组成员,不选择域
2.安装IE 4.0 SP2,不安装active desktop
3.安装最新的服务包:SP6a
安装最新的热补丁:
q241041 Enabling NetBT to Open IP Ports Exclusively
q243404 WINOBJ.EXE May Let You View Securable Objects Created/Opened by JET500.DLL
q243405 Device Drivers Create their Corresponding DeviceObject with FILE_DEVICE_SECURE_OPEN Device
Characteristics
q244599 Fixes Required in TCSEC C2 Security Evaluation Configuration for Windows NT 4.0 Service Pack
6a. Windows NT Appears to Hang When You Log Off After Installing Service Pack 6.
q188806 NTFS Alternate Data Stream Name of a File May Return Source
q252463 Security Update, April 13, 2000
q267559 Security Update, July 17, 2000
q269862 Security Update, August 15, 2000
q271652 Security Update, September 8, 2000
4.安装option pack:
选择自定义安装:
只安装如下组件:
[_] Internet Information Server
[_] Internet Service Manager
[_] World Wide Web Server
[_] Microsoft Data Access Components 1.5
[_] Data Sources
[_] MDAC: ADO, OBDC, and OLE DB
[_] Remote Data Service 1.5
[_] RDS Core Files
[_] Microsoft Management Console
[_] NT Option Pack Common Files
[_] Transaction Server
[_] Transaction Server Core Components
将www安装在和操作系统不同的分区上
安装transaction server时选择default/local administration
5.安装最新的MDAC (2.6 RTM as of 10/30/00)
二、配置NT
1.设置权限:
使用用户管理器在所有分区上的根目录上设置如下:
* Administrators::FULL CONTROL
* System::FULL CONTROL
2.设置屏幕保护
在控制面板中选择显示
选择屏幕保护程序
选中密码保护,点击确定
3.设置服务:
禁止如下的服务:
Alerter (disable)
ClipBook Server (disable)
Computer Browser (disable)
DHCP Client (disable)
Directory Replicator (disable)
FTP publishing service (disable)
License Logging Service (disable)
Messenger (disable)
Netlogon (disable)
Network DDE (disable)
Network DDE DSDM (disable)
Network Monitor (disable)
Plug and Play (disable after all hardware configuration)
Remote Access Server (disable)
Remote Procedure Call (RPC) locater (disable)
Schedule (disable)
Server (disable)
Simple Services (disable)
Spooler (disable)
TCP/IP Netbios Helper (disable)
Telephone Service (disable)
在必要时禁止如下服务:
SNMP service (optional)
SNMP trap (optional)
UPS (optional
设置如下服务为自动启动:
Eventlog ( required )
NT LM Security Provider (required)
RPC service (required)
WWW (required)
Workstation (leave service on: will be disabled later in the document)
MSDTC (required)
Protected Storage (required)
4.如果安装了SNMP,改变community的值
5.删除IIS例子程序的所在目录:
IIS d:\inetpub\iissamples
Admin Scripts d:\inetpub\scripts
Admin Samples %systemroot%\system32\inetsrv\adminsamples
IISADMPWD %systemroot%\system32\inetsrv\iisadmpwd
IISADMIN %systemroot%\system32\inetsrv\iisadmin
Data access c:\Program Files\Common Files\System\msadc\Samples
6.从ISM(Internet Service Manager)中删除如下目录:
IISSamples
Scripts
IISAdmin
IISHelp
IISADMPWD
7.删除不必要的IIS扩展名映射:
从ISM中:
选择计算机名,点鼠标右键,选择属性:
然后选择编辑
然后选择主目录, 点击配置
选择扩展名 ".HTA", ".HTR" 和 ".IDC" ,点击删除
如果不使用server side include,则删除".shtm" ".stm" 和 ".shtml"
8.禁止缺省的www站点
9.禁止管理员从网络登陆
使用NT resouce kit中的工具passprop,执行如下命令:
passprop /adminlockout /complex
10.仅开放使用的端口:
在控制面板中选择网络,点击属性择TCP/IP协议并点击属性
点击高级选项
选择"启用安全机制"并点击"配置"
将允许所有改为仅允许如下的端口:
TCP Ports UDP Ports IP Protocols
80 HTTP 161 SNMP 6
443 SSL 162 SNMP 8
22 SSH
11.仅安装TCP/IP协议
在控制面板中选择网络,点击协议,删除所有非TCP/IP的协议
12.禁止NetBIOS:
在控制面板中选择网络,点击绑定, 选择NetBios接口,然后点击禁用
13.移动部分重要文件并加访问控制:
创建一个只有系统管理员能够访问的目录,比如:
d:\admin
将system32目录下的如下文件移动到上面创建的目录:
xcopy.exe, wscript.exe, cscript.exe, net.exe, ftp.exe, telnet.exe,arp.exe, edlin.exe, ping.exe,
route.exe,at.exe,finger.exe,posix.exe,rsh.exe,atsvc.exe,qbasic.exe,runonce.exe,syskey.exe,cacls.exe,
ipconfig.exe, rcp.exe, secfixup.exe, nbtstat.exe, rdisk.exe, debug.exe, regedt32.exe, regedit.exe,
edit.com, netstat.exe, tracert.exe, nslookup.exe, rexec.exe, cmd.exe,nslookup.exe
三、运行bastion.inf加固脚本
下载最新的bastioninf.zip,解压后运行如下命令:
secedit /configure /cfg bastion.inf /db %temp%\secedit.sdb /verbose /log %temp%\seclog.txt
这个安全策略脚本在系统中做了如下改动:
1.设定如下的密码策略:
密码唯一性:记录上次的 6 个密码
最短密码期限:2
密码最长期限:42
最短密码长度:10
密码复杂化(passfilt.dll):启用
用户必须登录方能更改密码:启用
帐号失败登录锁定的门限:5
锁定后重新启用的时间间隔:720分钟
2.审计策略:
审核如下的事件:
用户和组管理 成功:失败
登录和注销 成功:失败
文件及对象访问 失败
更改安全规则 成功: 失败
用户权限的使用 失败
系统事件 成功: 失败
3.用户权限分配:
从网络中访问这台计算机:No one
将工作站添加到域:No one
备份文件和目录:Administrators
更改系统时间:Administrators
强制从远程系统关机:No one
加载和下载设备驱动程序:Administrators
本地登录:Administrators
管理审核和安全日志:Administrators
恢复文件和目录:Administrators
关闭系统:Administrators
获得文件或对象的所属权:Administrators
忽略遍历检查(高级权力):Everyone
作为服务登录(高级权力):No one
内存中锁定页:No one
替换进程级记号:No one
产生安全审核:No one
创建页面文件:Administrators
配置系统性能:No one
创建记号对象:No one
调试程序:No one
增加进度优先级:Administrators
添加配额:Administrators
配置单一进程:Administrators
修改固件环境值:Administrators
生成系统策略: Administrators
以批处理作业登录:No one
4.事件查看器设置:
应用程序、系统和安全的日志空间都设为100MB
事件日志覆盖方式为:覆盖30天以前的日志
禁止匿名用户查看日志
5.注册表的值
KEY Type Value
MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\
HandlerRequired REG_DWORD 1
MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\
NtfsDisable8dot3NameCreation REG_DWORD 1
MACHINE\Software\Microsoft\WindowsNT\Version\Winlogon\AllocateCDRoms REG_SZ 1
MACHINE\System\CurrentControlSet\Control\Lsa\AuditBaseObjects
REG_DWORD 1
MACHINE\System\CurrentControlSet\Control\Lsa\Su
MACHINE\System\CurrentControlSet\Control\Print\Providers\LanMan
PrintServices\AddPrintDrivers REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Rdr\
Parameters\EnablePlainTextPassword REG_DWORD 0
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\AutoDisconnect REG_DWORD 15
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\AutoShareWks REG_DWORD 0
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\AutoShareServer REG_DWORD 0
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\EnableForcedLogOff REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\RequireSecuritySignature REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\LanManServer\
Parameters\EnableSecuritySignature REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Rdr\Parameters\
RequireSecuritySignature REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Rdr\Parameters\
EnableSecuritySignature REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Netlogon\
Parameters\RequireSignOrSeal REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\
SealSecureChannel REG_DWORD 1
MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\
SignSecureChannel REG_DWORD 1
MACHINE\System\CurrentControlSet\Control\Lsa\ RestrictAnonymous
REG_DWORD 1
MACHINE\System\CurrentControlSet\Control\Session Manager\
ProtectionMode REG_DWORD 1
MACHINE\System\CurrentControlSet\Control\Lsa\ LmCompatibilityLevel
REG_DWORD 2
MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\LegalNoticeText REG_SZ This is a
private system. Unauthorized use is prohibited.
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\
Winlogon\LegalNoticeCaption REG_SZ CISD
MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\DontDisplayLastUserName REG_SZ 1
MACHINE\System\CurrentControlSet\Control\Lsa\CrashOnAuditFail
REG_DWORD 1
MACHINE\System\CurrentControlSet\Control\Session Manager\Memory
Management\ClearPageFileAtShutdown REG_DWORD 1
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\
Winlogon\CachedLogonsCount REG_SZ 0
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\
Winlogon\AllocateFloppies REG_SZ 1
MACHINE\Software\Microsoft\Windows NT\Current bmitControl
REG_DWORD 0
MACHINE\System\CurrentControlSet\Control\Lsa\
FullPrivilegeAuditing REG_BINARY 1
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\
Winlogon\ShutdownWithoutLogon REG_SZ 1
6.文件系统和注册表存取控制:
详见bastion.inf
7.管理员帐号:
bastion.inf将Administrator改名为root,
可以按照自己的需要更改这个名字,并使用强壮的密码
四、可选的注册表设置
1.删除 OS/2 和 POSIX 子系统:
删除如下目录的任何键:
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\OS/2 Subsystem for NT
删除如下的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Os2LibPath
删除如下的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\SubSystems\Optional
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\SubSystems\Posix
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\SubSystems\Os2
删除如下目录:
c:\winnt\system32\os2
2.除去RDS漏洞:
删除如下的注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\
Parameters\ADCLaunch\RDSServer.DataFactory
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\
Parameters\ADCLaunch\AdvancedDataFactory
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\
Parameters\ADCLaunch\VbBusObj.VbBusObjCls
3.从网络服务中删除不必要的服务:
删除:Netbios接口,计算机浏览器,服务器,工作站
保留:RPC配置
五、保护许可
1. 保护Internet Guest 用户帐号:
在用户管理器中,将Internet Guest 帐号改为晦涩的名字,并使用强壮的密码
禁止guest帐号。
将改名后的Internet Guest 帐号从组“guests”中删除。
设置改名后的Internet Guest 帐号对所有卷的访问为“No Access”,为了保证IIS的正常运行,必须赋予改名后的
Internet Guest 帐号对以下目录的读取权限:
默认路径 环境变量
c:\ %SystemDrive%
c:\winnt %SystemRoot%
d:\InetPub\wwwroot 你的IIS根目录
注意:在设置以上目录的权限时,不要选择替换子目录的权限!!
2. 锁住组“Users”:
设置NT内建组“Users”对所有卷的访问权为“No Access”,因为新用户会自动加入组“Users”中,所以新用户缺省将不能访问任何卷。