Windows2003服务器安全维护 

一.系统安装与安全设置
1. 安装系统
A.安装系统时尽量进行简洁安装,不需要的windows组件程序无需安装,例如:index索引服务,附件和工具等都可以不装。
B.系统分区,建议分3到4个区,C区安装系统,D区安装软件,E区放控制程序和服务器程序,F区放web目录。Windows最好安装英文版,减少资源耗用以及减少出现多字节漏洞问题。英文版安装后需要安装中文语言支持。安装完windows后,设置出现非法操作时小内存转储,不必完全内存存储
C.硬盘格式统一为NTFS文件格式
D. 安装系统时首先要设定好系统管理员密码,不能为空
E. 安装系统后首先要及时安装各类系统补丁,例如:SP1,HotFix等
F.系统安全补丁没有安装完成,不要连接网络
连接网络前先打上以下几个重要补丁
WindowsServer2003-KB835732-x86-ENU.EXE
http://www.microsoft.com/downloads/details.aspx?FamilyID=eab176d0-01cf-453e-ae7e-7495864e8d8c&displaylang=zh-cn[
中文连接]
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=eab176d0-01cf-453e-ae7e-7495864e8d8c[
英文连接]
WindowsServer2003-KB823980-x86-ENU.exe
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=f8e0ff3a-9f4c-4061-9009-3a212458e92e[
中文连接]
http://www.microsoft.com/downloads/details.aspx?FamilyID=f8e0ff3a-9f4c-4061-9009-3a212458e92e&displaylang=en[
英文连接]

2. 计算机账号管理
A. 按照需求更改系统管理员账户名称,不能使用默认的administrator
B.禁用guest用户,并更改账户名称,删除归属组,使其不归属任何组
C. 删除不使用的多余账户,例如:sqldebugger、TsInternetUser等
D.如果系统没有安装IIS,则需要关闭IWAM_机器名、IUSR_机器名的账号,
如果系统中安装IIS,在这两个账号需被启用,
其中“IWAM_机器名”是用来启动 IIS 进程的账户,
“IUSR_机器名”为Internet 来宾账户,也就是用户匿名访问使用的账号
3.系统安全策略
A.账户策略 密码策略:
B.密码设定最小值不能少于10位
C.密码设定需要保证复杂性
D.登陆计数器需要开启
E.本地策略 审核策略:
F.审核策略更改:成功
G.审核登陆事件:成功、失败
H.审核目录服务访问:成功
I.审核特权使用:成功
J.审核系统事件:成功、失败
K.审核账户登陆事件:成功、失败
M.审核账户管理:成功
N.本地策略 本地策略:
O.不显示上次的登陆名:启用
P.只有本地用户才能访问cd-rom:启用
Q.只有本地用户才能访问软驱:启用
4.网络设置[这里针对网卡参数进行设置]
PCI网络适配器。分别为 Public,Private 
实际使用中会改为相关IP
A.网卡顺序调整为外网卡优先,顺序为:
a) 公用网络
b) 专用网络
c) 远程访问连接
B.公网网卡设置:
General
1.配置:Link Speed/Duplex Mode:auto mode
2.TCP/IP
高级 WINS:禁用TCP/IP NetBios
高级 选项 TCP/IP筛选:启用TCP/IP筛选,只开放所需TCP端口
删除文件和打印机共享协议[File and Printer Sharing for  Microsoft Networks]
Advanced
1.启用Internet Connection Firewall---settings---Remote Desktop
2.Security Logging,ICMP协议的设置
5.本地安全性配置
本地安全设置.本地策略.安全选项
1.网络访问.不允许SAM帐户的匿名枚举 启用
2.网络访问.可匿名的共享 将后面的值删除
3.网络访问.可匿名的命名管道 将后面的值删除
4.网络访问.可远程访问的注册表路径 将后面的值删除
5.网络访问.可远程访问的注册表的子路径 将后面的值删除
6.网络访问.限制匿名访问命名管道和共享
7.帐户.重命名来宾帐户guest
8.帐户.重命名系统管理员帐户
6.Terminal Service Configration
A.RDP设置中删除系统管理员组(administrators group)的用户登陆权限,只允许系统管理员单一账户登陆[Permissions]
B.权限-高级中配置安全审核,记录登录、注销等所有事件
7.IPSEC配置
微软官方网站
A.
http://www.microsoft.com/windows.../ipsec/default.mspx

B.IPSec的使用
http://www.microsoft.com/china/technet/security/ipsecloc.asp

C.keyword"IPSEC"
http://search.microsoft.com/sear...=en-us&qu=ipsec

D.HOW TO:如何在 Windows Server 2003 中配置 IPSec 隧道
http://support.microsoft.com/default.aspx?scid=kb
;zh-cn;816514 
8.注册表相关设置
A. 通过更改注册表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous = 1来禁止139空连接
B. 修改数据包的生存时间(TTL)值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\P arameters 
DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)
备注:
TTL 字段值可以帮助我们识别操作系统类型。
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
这样,我们就可以通过这种方法来辨别
但为什么我们在PING目标机器的时候得到的不一定是上述几个呢,应该ICMP回应的数据包发到本机的时候会经过路由,每过一个 路由设备 TTL-1,所以到了本机后得到的TTL值肯定比目标的默认值小。
考一下大家,当我PING某个IP得到的TTL是128那代表什么,我们可以得到些什么推论?
主要是让大家更了解TTL的定义。
补一:TTL最大值为255,因为IPV4的IP包中TTL值设定只有8位长度。
补二:TTL的修改
WIN NT/2K/XP系统只要在注册表里加上子项就可修改TTL,重起生效。
DefaultTTL=0x30 (dword类型,0X30是你要设置TTL值的大小)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
C. 防止SYN洪水攻击 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\P arameters 
SynAttackProtect REG_DWORD 0x2(默认值为0x0)
"SynAttackProtect"=dword:0x1
"EnablePMTUDiscovery"=dword:0x1
"KeepAliveTime"=dword:300,000
"NoNameReleaseOnDemand"=dword:0x0
D. 禁止响应ICMP路由通告报文 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\P arameters
\Interfaces\interface 
PerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
E. 防止ICMP重定向报文的攻击 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\P arameters 
EnableICMPRedirects REG_DWORD 0x0(默认值为0x1)
F. 不支持IGMP协议 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\P arameters 
IGMPLevel REG_DWORD 0x0(默认值为0x2)
E. 设置arp缓存老化时间设置 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\ Parameters 
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒) 
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
G. 禁止死网关监测技术 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\ Parameters 
EnableDeadGWDetect REG_DWORD 0x0(默认值为ox1)
H. 不支持路由功能 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services:\Tcpip\ Parameters 
IPEnableRouter REG_DWORD 0x0(默认值为0x0)
[慎用以下改动]
>>>1. 禁止C$、D$一类的缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmans erver\parameters 
AutoShareServer、REG_DWORD、0x0
>>>2. 禁止ADMIN$缺省共享 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmans erver\parameters 
AutoShareWks、REG_DWORD、0x0 
>>>3. 限制IPC$缺省共享 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
restrictanonymous REG_DWORD 0x0 缺省 
0x1 匿名用户无法列举本机用户列表 
0x2 匿名用户无法连接本机IPC$共享 
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
备:上面的注册表文件已和win2003的破解补丁做在一起,可以直接运行
9.系统命令转移
将WIN2003系统盘下的C:\WINDOWS\system32下的DOS命令转移:
CMD/CMDKEY.exe、FTP/TFTP.exe、NET/NET1.exe、FORMAT.COM、AT.exe、ARP.exe、ATTRIB.exe、CACLS.exe、SYSKEY.exe、SHUTDOWN/RESTART/LOGOFF.exe等至备份文件夹内
必须使用时[such as runas .bat files]可以重新copy到原目录下,使用完毕后需删除
简单介绍cacls.exe
---------------------
DEMO 1:限制system32的写入和修改权限
cacls C:\windows\system32 /G administrator:R 禁止修改、写入C:\windows\system32目录
cacls C:\windows\system32 /G administrator:F 恢复修改、写入C:\windows\system32目录
---------------------
DEMO 2:限制C:\的写入和修改权限
cacls C: /G administrator:R 禁止修改、写入C盘
cacls C: /G administrator:F 恢复修改、写入C盘
这个方法防止病毒,
如果您觉得一些病毒防火墙消耗内存太大的话
此方法稍可解决一点希望大家喜欢这个方法^_^
---------------------
DEOMO 3:
以下命令推荐给高级管理员使用[因为win版本不同,请自行修改参数]
cacls %SystemRoot%system32cmd.exe /E /D IUSR_ComSpec 禁止网络用户、本地用户在命令行和gui下使用cmd
cacls %SystemRoot%system32cmd.exe /E /D IUSR_Lsa 恢复网络用户、本地用户在命令行和gui下使用cmd
cacls %SystemRoot%system32tftp.exe /E /D IUSR_Lsa 禁止网络用户、本地用户在命令行和gui下使用tftp.exe
cacls %SystemRoot%system32tftp.exe /E /D IUSR_Lsa 恢复网络用户、本地用户在命令行和gui下使用tftp.exe
cacls %SystemRoot%system32tftp32.exe /E /D IUSR_Lsa 禁止网络用户、本地用户在命令行和gui下使用tftp32.exe
cacls %SystemRoot%system32tftp32.exe /E /D IUSR_Lsa 恢复网络用户、本地用户在命令行和gui下使用tftp32.exe
----------------------------------------
附: 微软官方有关win2003的资料
1.Windows Server 2003技术文章索引
http://www.microsoft.com/china/w...w/articleindex.mspx

2. Microsoft TechNet 技术资源库
http://www.microsoft.com/china/technet/library.mspx

3.Windows Server 2003 Technical Articles 
http://www.microsoft.com/service...swinserver2003.mspx

4.Technical Articles
http://www.microsoft.com/service...echresarticles.mspx

5.Windows Server 2003 Security Guide
http://www.microsoft.com/downloa...&displaylang=en

附一:Win2003系统建议禁用服务列表
名 称
Automatic Updates
Background  Intelligent Transfer Service
Computer Browser 
DHCPClient 
NTLM Security Support Provider 
Network Location Awareness 
Performance Logs and Alerts 
Remote Administration Service 
RemoteRegistryService 
Server 
TCP/IP NetBIOSHelperService 
IndexingService 
NTLM 
SecuritySupportProvider 
WindowsInstaller Windows Management Instrumentation Driver Extensions 
WMIPerformanceAdapter 
ErrorReporting PrintSpooler 
附二:修改3389
  更改方法:
  一、服务器端:
  1、第一处
  运行regedit,找到[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp],右边的PortNumber在十进制状态下改成你想要的端口号吧,比如7126之类的,只要不与其它冲突即可。
  2、第二处HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,方法同上,记得改的端口号和上面改的一样就行了。
  
二、客户端:
  A.win2000
打开客户端管理连接器,单击已经建好的某个连接,单击“文件(file)”→“导出(Export)”……
  用记录本或其它文本编辑软件找开刚导出的这个.cns文件,找到“Server Port =3389”这一行
  把这个默认的3389改成与服务器一样的端口号。
B. Windows XP/2003 下的修改办法
  使用XP或2003的客户端,它可以显示多彩,还可以有声音,功能更强大。但终端客户端连接端口的修改方法与WIN2000有一定区别:
  按照原来更改2000的客户端的思路,把XP、2003的默认配置另存(在连接界面上单击“另存为”),和2000不一样的是:XP、2003的配置文件后缀是.rdp,WIN2000的是.cns
  用记事本打开这个地default.rdp文件,在里面没有发现什么3389的东东(2000的配置文件是有的),没有这句端口的配置我们就给它加上,假定现在的端口为8933,如下:
server port:8933
  保存,退出即可。