Windows Server2003安全设置策略
Windows Server2003安全设置策略
一、Windows Server2003的安装
1、安装系统最少两需要个分区,分区格式都采用NTFS格式
2、在断开网络的情况安装好2003系统
3、安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP
服务)。默认情况下,IIS服务没有安装,在添加/删除Win组件中选择“应用程序服务器”,然后点击“详细信息”,双击Internet信息服务(iis),勾选以下选项:
Internet 信息服务管理器;
公用文件;
后台智能传输服务 (BITS) 服务器扩展;
万维网服务。
如果你使用 FrontPage 扩展的 Web 站点再勾选:FrontPage 2002 Server Extensions
4、安装MSSQL及其它所需要的软件然后进行Update。
5、使用Microsoft 提供的 MBSA(Microsoft
Baseline Security Analyzer) 工具分析计算机的安全配置,并标识缺少的修补程序和更新。下载地址:见页末的链接
二、设置和管理账户
1、系统账户最好少建,更改默认的帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。
2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码
3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。
4、在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时渖栉?0分钟”,“复位锁定计数设为30分钟”。
5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用
6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了Asp.net还要保留Aspnet账户。
7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。
三、网络服务安全管理
1、禁止C$、D$、ADMIN$一类的缺省共享
打开注册表,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters,在右边的窗口中新建Dword值,名称设为AutoShareServer值设为0
2、 解除NetBios与TCP/IP协议的绑定
右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用TCP/IP上的NETBIOS
3、关闭不需要的服务,以下为建议选项
Computer Browser:维护网络计算机更新,禁用
Distributed
File System: 局域网管理共享文件,不需要禁用
Distributed linktracking
client:用于局域网更新连接信息,不需要禁用
Error reporting service:禁止发送错误报告
Microsoft
Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft
Serch用的,不需要禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
四、打开相应的审核策略
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。
推荐的要审核的项目是:
登录事件 成功 失败
账户登录事件 成功 失败
系统事件 成功 失败
策略更改 成功 失败
对象访问 失败
目录服务访问 失败
特权使用 失败
五、其它安全相关设置
1、隐藏重要文件/目录
可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrent-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击“CheckedValue”,选择修改,把数值由1改为0
2、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。
3、防止SYN洪水攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新建DWORD值,名为SynAttackProtect,值为2
4. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface
新建DWORD值,名为PerformRouterDiscovery 值为0
5. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
将EnableICMPRedirects 值设为0
6. 不支持IGMP协议
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新建DWORD值,名为IGMPLevel 值为0
7、禁用DCOM:
运行中输入 Dcomcnfg.exe。 回车,
单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。
对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。
清除“在这台计算机上启用分布式 COM”复选框。
注:3-6项内容我采用的是Server2000设置,没有测试过对2003是否起作用。但有一点可以肯定我用了一段的时间没有发现其它副面的影响。
六、配置 IIS 服务:
1、不使用默认的Web站点,如果使用也要将 将IIS目录与系统磁盘分开。
2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。
3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
4、删除不必要的IIS扩展名映射。
右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml, .shtm, .stm
5、更改IIS日志的路径
右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性
6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。
7、使用UrlScan
UrlScan是一个ISAPI筛选器,它对传入的HTTP数据包进行分析并可以拒绝任何可疑的通信量。目前最新的版本是2.5,如果是2000Server需要先安装1.0或2.0的版本。下载地址见页未的链接
如果没有特殊的要求采用UrlScan默认配置就可以了。
但如果你在服务器运行ASP.NET程序,并要进行调试你需打开要%WINDIR%System32InetsrvURLscan
文件夹中的URLScan.ini 文件,然后在UserAllowVerbs节添加debug谓词,注意此节是区分大小写的。
如果你的网页是.asp网页你需要在DenyExtensions删除.asp相关的内容。
如果你的网页使用了非ASCII代码,你需要在Option节中将AllowHighBitCharacters的值设为1
在对URLScan.ini 文件做了更改后,你需要重启IIS服务才能生效,快速方法运行中输入iisreset
如果你在配置后出现什么问题,你可以通过添加/删除程序删除UrlScan。
8、利用WIS (Web Injection
Scanner)工具对整个网站进行SQL Injection 脆弱性扫描.
下载地址:VB.NET爱好者
七、配置Sql服务器
1、System Administrators 角色最好不要超过两个
2、如果是在本机最好将身份验证配置为Win登陆
3、不要使用Sa账户,为其配置一个超级复杂的密码
4、删除以下的扩展存储过程格式为:
use master
sp_dropextendedproc ‘扩展存储过程名‘
xp_cmdshell:是进入*作系统的最佳捷径,删除
访问注册表的存储过程,删除
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自动存储过程,不需要删除
Sp_OACreate
Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
5、隐藏 SQL Server、更改默认的1433端口
右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。
八、如果只做服务器,不进行其它*作,使用IPSec
1、管理工具—本地安全策略—右击IP安全策略—管理IP筛选器表和筛选器*作—在管理IP筛选器表选项下点击
添加—名称设为Web筛选器—点击添加—在描述中输入Web服务器—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为Tcp——IP协议端口第一项设为从任意端口,第二项到此端口80——点击完成——点击确定。
2、再在管理IP筛选器表选项下点击
添加—名称设为所有入站筛选器—点击添加—在描述中输入所有入站筛选—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为任意——点击下一步——完成——点击确定。
3、在管理筛选器*作选项下点击添加——下一步——名称中输入阻止——下一步——选择阻止——下一步——完成——关闭管理IP筛选器表和筛选器*作窗口
4、右击IP安全策略——创建IP安全策略——下一步——名称输入数据包筛选器——下一步——取消默认激活响应原则——下一步——完成
5、在打开的新IP安全策略属性窗口选择添加——下一步——不指定隧道——下一步——所有网络连接——下一步——在IP筛选器列表中选择新建的Web筛选器——下一步——在筛选器*作中选择许可——下一步——完成——在IP筛选器列表中选择新建的阻止筛选器——下一步——在筛选器*作中选择阻止——下一步——完成——确定
6、在IP安全策略的右边窗口中右击新建的数据包筛选器,点击指派,不需要重启,IPSec就可生效.
九、建议
如果你按本文去*作,建议每做一项更改就测试一下服务器,如果有问题可以马上撤消更改。而如果更改的项数多,才发现出问题,那就很难判断问题是出在哪一步上了。
十、运行服务器记录当前的程序和开放的端口
1、将当前服务器的进程抓图或记录下来,将其保存,方便以后对照查看是否有不明的程序。
2、将当前开放的端口抓图或记录下来,保存,方便以后对照查看是否开放了不明的端口。当然如果你能分辨每一个进程,和端口这一步可以省略。
Windows Server 2003
防木马、权限设置、IIS服务器安全配置整理
参考了网络上很多关于WIN2003的安全设置以及自己动手做了一些实践,综合了这些安全设置文章整理而成,希望对大家有所帮助,另外里面有不足之处还请大家多多指点,然后给补上,谢谢!
一、系统的安装
1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。
2、IIS6.0的安装
开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
应用程序
———ASP.NET(可选)
|——启用网络 COM+ 访问(必选)
|——Internet
信息服务(IIS)———Internet 信息服务管理器(必选)
|——公用文件(必选)
|——万维网服务———Active Server
pages(必选)
|——Internet 数据连接器(可选)
|——WebDAV
发布(可选)
|——万维网服务(必选)
|——在服务器端的包含文件(可选)
然后点击确定—>下一步安装。(具体见本文附件1)
3、系统补丁的更新
点击开始菜单—>所有程序—>Windows
Update
按照提示进行补丁的安装。
4、备份系统
用GHOST备份系统。
5、安装常用的软件
例如:杀毒软件、解压缩软件等;安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。
6、先关闭不需要的端口
开启防火墙
导入IPSEC策略
在”网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用"Internet连接防火墙",这是windows
2003
自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
修改3389远程连接端口
修改注册表.
开始--运行--regedit
依次展开
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL
SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口
修改完毕.重新启动服务器.设置生效.
二、用户安全设置
1、禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2、限制不必要的用户
去掉所有的Duplicate
User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。
3、把系统Administrator账号改名
大家都知道,Windows 2003
的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
4、创建一个陷阱用户
什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些
Hacker们忙上一段时间,借此发现它们的入侵企图。
5、把共享文件的权限从Everyone组改成授权用户
任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。
6、开启用户策略
使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。
(该项为可选)
7、不让系统显示上次登录的用户名
默认情况下,登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLM\Software\Microsoft\Windows
T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”,把REG_SZ的键值改成1。
密码安全设置
1、使用安全密码
一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。
2、设置屏幕保护密码
这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。
3、开启密码策略
注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为6位 ,设置强制密码历史为5次,时间为42天。
4、考虑使用智能卡来代替密码
对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。
三、系统权限的设置
1、磁盘权限
系统盘及所有磁盘只给 Administrators 组和 SYSTEM
的完全控制权限
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM
的完全控制权限
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM
的完全控制权限
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、tftp.exe、telnet.exe
、
netstat.exe、regedit.exe、at.exe、attrib.exe、format.com、del文件只给 Administrators
组和SYSTEM 的完全 控制权限
另将<systemroot>\System32\cmd.exe、format.com、ftp.exe转移到其他目录或更名
Documents and
Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看,包括下面的所有子目录。
删除c:\inetpub目录
2、本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败
审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop
Users组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举
启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
3、禁用不必要的服务
开始-运行-services.msc
TCP/IPNetBIOS
Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS
名称解析的支持而使用户能够共享
文件、打印和登录到网络
Server支持此计算机通过网络的文件、打印、和命名管道共享
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和
警报器服务消息
Distributed File System: 局域网管理共享文件,不需要可禁用
Distributed
linktracking client:用于局域网更新连接信息,不需要可禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要可禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote
Desktop Help Session Manager:禁止远程协助
Workstation 关闭的话远程NET命令列不出用户组
以上是在Windows Server 2003
系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
4、修改注册表
修改注册表,让系统更强壮
1、隐藏重要文件/目录可以修改注册表实现完全隐藏
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击
“CheckedValue”,选择修改,把数值由1改为0
2、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
新建EnablePMTUDiscovery REG_DWORD 0
新建NoNameReleaseOnDemand REG_DWORD 1
新建EnableDeadGWDetect REG_DWORD 0
新建KeepAliveTime REG_DWORD 300,000
新建PerformRouterDiscovery REG_DWORD 0
新建EnableICMPRedirects REG_DWORD 0
3. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
4. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
5. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
6、禁止IPC空连接:
cracker可以利用net
use命令建立空连接,进而入侵,还有net
view,nbtstat这些都是基于空连接的,禁止空连接就好了。
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous
把这个值改成”1”即可。
7、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL
REG_DWORD 0-0xff(0-255
十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦
8.
删除默认共享
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
9.
禁止建立空连接
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous
的值改成”1”即可。
10、建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中
net share c$ /del
net
share d$ /del
net share e$ /del
net share f$ /del
net share ipc$
/del
net share admin$
/del
5、IIS站点设置:
1、将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。
2、启用父级路径
3、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)
4、在IIS中将HTTP404 Object Not
Found出错页面通过URL重定向到一个定制HTM文件
5、Web站点权限设定(建议)
读
允许
写
不允许
脚本源访问
不允许
目录浏览
建议关闭
日志访问
建议关闭
索引资源
建议关闭
执行
推荐选择 “仅限于脚本”
6、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full
Control)。
7、程序安全:
1)
涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
2)
需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
3) 防止ASP主页.inc文件泄露问题;
4)
防止UE等编辑器生成some.asp.bak文件泄露问题。
6、IIS权限设置的思路
?要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
?在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
?设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
7、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,(
以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
regsvr32/u
C:\WINDOWS\System32\wshom.ocx
del C:\WINDOWS\System32\wshom.ocx
regsvr32/u
C:\WINDOWS\system32\shell32.dll
del
C:\WINNT\WINDOWS\shell32.dll
然后运行一下,WScript.Shell, Shell.application,
WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。