Server2003 防木马权限配置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、创建一个陷阱用户 www_bitscn_com 

什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把他的权限配置成最低,什么事也干不了的那种,并且加上一个超过10位的终极复杂密码。这样能够让那些 Hacker们忙上一段时间,借此发现他们的入侵企图。 

5、把共享文档的权限从Everyone组改成授权用户 

任何时候都不要把共享文档的用户配置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。 

6、开启用户策略 

使用用户策略,分别配置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 (该项为可选) 

7、不让系统显示上次登录的用户名 

默认情况下,登录对话框中会显示上次登录的用户名。这使得别人能够很容易地得到系统的一些用户名,进而做密码猜测。修改注册表能够不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLMSoftwareMicrosoftWindows TCurrentVersionWinlogonDont-DisplayLastUserName”,把REG_SZ的键值改成1。 

密码安全配置 

1、使用安全密码 

一些公司的管理员创建账号的时候往往用公司名、电脑名做用户名,然后又把这些用户的密码配置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。 

2、配置屏幕保护密码 

这是个很简单也很有必要的操作。配置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。 

3、开启密码策略 

注意应用密码策略,如启用密码复杂性需要,配置密码长度最小值为6位 ,配置强制密码历史为5次,时间为42天。 

4、考虑使用智能卡来代替密码 

对于密码,总是使安全管理员进退两难,密码配置简单容易受到黑客的攻击,密码配置复杂又容易忘记。假如条件允许,用智能卡来代替复杂的密码是个很好的解决方法。 

三、系统权限的配置

1、磁盘权限 

  系统盘及任何磁盘只给 Administrators 组和 SYSTEM 的完全控制权限 

  系统盘Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限 

  系统盘Documents and SettingsAll Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限 

  系统盘WindowsSystem32cacls.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>System32cmd.exe、format.com、ftp.exe转移到其他目录或更名 BBS.biDocuments 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_MACHINESOFTWAREMicrosoftWindows Current-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0 

(2)、防止SYN洪水攻击 

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 

新建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_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface 

新建DWORD值,名为PerformRouterDiscovery 值为0 

(4) 、防止ICMP重定向报文的攻击 

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 

将EnableICMPRedirects 值设为0 

(5)、不支持IGMP协议 

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 

新建DWORD值,名为IGMPLevel 值为0 

(6)、禁止IPC空连接: 

cracker能够利用net use命令建立空连接,进而入侵,更有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。 

Local_MachineSystemCurrentControlSetControlLSA-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_MACHINESYSTEMCurrentControlSetServicesTcpipParameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵您也不一定哦 

(8)、 删除默认共享 

有人问过我一开机就共享任何盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而配置的默认共享,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters:AutoShareServer类型是REG_DWORD把值改为0即可 

(9)、 禁止建立空连接 

默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们能够通过修改注册表来禁止建立空连接: 

Local_MachineSystemCurrentControlSetControlLSA-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:WINDOWSSystem32wshom.ocx 

del C:WINDOWSSystem32wshom.ocx 

regsvr32/u C:WINDOWSsystem32shell32.dll 

del C:WINNTWINDOWSshell32.dll 

然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文档,不用管他,重启一下服务器,您会发现这三个都提示“×安全”了。