打造安全WINDOWS2003服务器的终极手段

时间: 2007-11-14 栏目: 服务器安全及应用

这是因为ADMIN5被黑.而引发出来的一篇针对服务器安全的文章.由静花木木原创.希望对大家有帮助.[eek]
.废话也不说了.直接开始今天的正题.完全打造安全WINDOWS服务器的终极法宝.
  我的目标:,加固WEB服务器系统,使之提高并完善其稳定性及安全性。[muteness]
  系统环境:Windows Server 2003 Enterprise Edition With Service Pack 1(以下简称W2k3SP1),WEB平台为IIS6,FTP平台为Serv-U FTP Server6.4
系统的安装
这个不需要讲把.[lol]
1、IIS6.0的安装
  开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
  应用程序 ———ASP.NET(可选)
       |——启用网络 COM+ 访问(必选)
       |——Internet 信息服务(IIS)———Internet 信息服务管理器(必选) 
                      |——公用文件(必选)
                      |——万维网服务———Active Server pages(必选)
                              |——Internet 数据连接器(可选)
                              |——WebDAV 发布(可选)
                              |——万维网服务(必选)
                              |——在服务器端的包含文件(可选)
  然后点击确定—>下一步安装。
打开自动更新.安装常用软件.WINRAR.GHOST.我们进入下一步[redface]
2.很多服务器被黑.很大一部分是被因为权限分配问题导致的,下面写出推荐的权限分配:
  系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
  系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
注意:另外别忘记还有一个隐藏目录也需要同样操作[eek]
  系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
  系统盘\Inetpub 目录及下面所有目录、文件只给 Administrators 组和 SYSTEM 的完全控制权限(建议删除netpub目录)
  系统盘\Windows\System32\cmd.exe、ftp.exe、scrrun.dll、shell.dll.net.exe net1.exe,netstat.exe ,tftp.exe ,regedit.exe ,at.exe ,attrib.exe,cacls.exe ,format.com 文件只给 Administrators 组和 SYSTEM 的完全控制权限(这些都是杀手锏,千万注意)[cool]
注意:如果服务器安装了ASPUPLOAD组件,会默认在系统盘建立 UPLOAD 一定要删除.
3.打开服务器本地计算机策略(gpedit.msc)
  开始菜单—>管理工具—>本地安全策略
  A、本地策略——>审核策略
  审核策略更改   成功 失败  
  审核登录事件   成功 失败
  审核对象访问      失败
  审核过程跟踪   无审核
  审核目录服务访问    失败
  审核特权使用      失败
  审核系统事件   成功 失败
  审核账户登录事件 成功 失败
  审核账户管理   成功 失败
  B、本地策略——>用户权限分配
  关闭系统:只有Administrators组、其它全部删除。
  通过终端服务拒绝登陆:加入Guests、User组
  通过终端服务允许登陆:只加入Administrators组,其他全部删除
  C、本地策略——>安全选项
  交互式登陆:不显示上次的用户名       启用
  网络访问:不允许SAM帐户和共享的匿名枚举   启用
  网络访问:不允许为网络身份验证储存凭证   启用
  网络访问:可匿名访问的共享         全部删除
  网络访问:可匿名访问的命          全部删除
  网络访问:可远程访问的注册表路径      全部删除
  网络访问:可远程访问的注册表路径和子路径  全部删除
  帐户:重命名来宾帐户            重命名一个帐户
  帐户:重命名系统管理员帐户         重命名一个帐户
修改Administrator和Guest这两个账号 一定要改的够复杂./最好@#$@!这样类似的组合.
4.禁用不必要的服务
禁用不必要的服务不但可以降低服务器的资源占用减轻负担,而且可以增强安全性.列出:
  开始菜单—>管理工具—>服务
  Application Experience Lookup Service
  BITS
  Computer Browser
  DHCP Client
  Error Reporting Service
  Help and Support
  Network Location Awareness
  Print Spooler
  Remote Registry
  Secondary Logon  
  Smartcard
  TCP/IP NetBIOS Helper
  Workstation  这个就是"啊江"经常说到的,利用getobject("WINNT")获得了系统用户和系统进程的列表.
  Windows Audio
  Windows Time
  Wireless Configuration
  TCP/IP NetBIOS Helper
  Server  这个就是默认共享了,如果连这个都不禁用的话,危险很大哦[sad]
5.更改远程桌面端口和禁用IPC连接
1. 打开注册表并转到此项:
  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  2. 找到“PortNumber”子项,看到值 00000D3D,它是 3389 的十六进制表示形式。使用十六进制数值修改此端口号,并保存新值。
2.禁用IPC连接:打开注册表编辑器,依次展开[HKEY_  LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa ]分支,在右侧窗口中找到“restrictanonymous”子键,将其值改为“1”即可
6.关于ASP木马.这里借鉴图王和啊江的解决方法
    在IIS系统上,大部分木马都是ASP写的,因此,ASP组件的安全是非常重要的。
  ASP木马实际上大部分通过调用Shell.Application、WScript.Shell、WScript.Network、FSO、Adodb.Stream组件来实现其功能,除了FSO之外,其他的大多可以直接禁用。
  WScript.Shell组件使用这个命令删除:regsvr32 WSHom.ocx /u
  WScript.Network组件使用这个命令删除:regsvr32 wshom.ocx /u
  Shell.Application可以使用禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests
  禁止guests用户执行cmd.exe的命令是: cacls C:\WINNT\system32\Cmd.exe /e /d guests
  FSO组件的禁用比较麻烦,如果网站本身不需要用这个组件,那么就通过RegSrv32 scrrun.dll /u命令来禁用吧。
7.WINDOWS的默认防火墙和TCP_IP筛选
1.TCP_IP筛选,打开网络连接.属性——>高级——>选项——>属性
开放的端口是:TCP80、TCP25、TCP20、TCP21、TCP3389、TCP4000~4005。开放4000~4005是为了支持Serv- U的PASV模式(要在Serv-U中设置这段被动端口范围)
这是最简单的做法,但是不是最有效的下面介绍我最常用的,
2.WINDOWS的默认防火墙:
桌面—>网上邻居—>(右键)属性—>本地连接—>(右键)属性—>高级—>(选中)Internet 连接防火墙—>设置
  把服务器上面要用到的服务端口选中
一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389)
在“FTP 服务器”、“WEB服务器(HTTP)”、“远程桌面”前面打上对号
  如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,具体参数可以参照系统里面原有的参数。
  然后点击确定。
注意:千万要选远程桌面管理,否则改完了,上不去服务器别哭[sad]
不要问我为什么推荐使用自带的防火墙.呵呵
关于IIS的配置和网站权限的设置,我没有进一步讲解/.主要原因是,我一直利用虚拟主机管理软件自动开设.笔者接触的大都是IDC商服务器.虚拟主机管理软件,我还是推荐使用易方.需要的也可以找我,是破解版本.当然是免费的.