当前位置: 主页 > 日志 > 网络安全 >

Windows服务器安全设置攻略

// by redice 
// 2009.9.17
// http://www.redicecn.cn
// 9.17号就开始写这个文档了,经过一个月的反复测试,今天才终于敢把它放出来......
// 辛勤劳动成果,转载请保留上述信息

一句废话:服务器安全问题是一个令人头痛的问题,也是一个无法回避的问题...

经过实验总计如下:

NTFS权限设置要先设置父目录,再设置子目录,因为设置继承权限时,父目录的权限会覆盖掉子目录权限,“先父后子”。

1 对于IIS。

1) 为每个Web站点新建一个IIS匿名账户,隶属于Guests组,删除其隶属的Users组,并将新建的IIS匿名账户分配给各个站点。

2) 去掉所有盘的Users组、everyone、network services的NTFS权限,继承权限到子目录,只保留Administrators,CREATEOR OWNER,SYSTEM。

3) 为了支持ASP及.Net,要做如下设置:

“windows”目录添加Users组,IIS_WPG组“读取和运行,列出文件夹目录,读取”权限,继承权限到子目录;

“Program Files”目录添加Users组“读取和运行,列出文件夹目录,读取”权限,继承权限到子目录;
   
“windows temp”目录添加IIS_WPG组,ASP.NET账户,所有IIS匿名账户“修改,读取和运行,列出文件夹目录,读取,写入”权限,继承权限

到子目录。
   
ASP.Net所需的其它权限,我们通过“aspnet_regiis" ”命令来设置,具体命令格式如下:

C:WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -ga "NT AUTHORITYNETWORK SERVICE"

(4)“windows\system32\config “ ,禁止guests组所有权限;

    “Documents and Settings\All Users\「开始」菜单\程序”, 禁止guests组所有权限;

    “windows\system32\inetsrv\data “,禁止guests组所有权限;

     “windows\system32” at.exe、attrib.exe、cacls.exe、net.exe、net1.exe、netstat.exe、regedit.exe 文件,只给 

     Administrators 组和 SYSTEM 的完全控制权限;

    “windows\system32” cmd.exe、format.com文件, 只给 Administrators 组完全控制权限。
       
5) 在各个站点目录下设置IIS匿名账户“读取,拒绝写入”权限,继承权限到子目录。
   如果是.Net网站,还要设置IIS_WPG组,ASP.NET账户“读取,拒绝写入”权限,继承权限到子目录。
   
6) 在各个站点下的可写目录设置IIS匿名账户“读取和运行,列出文件夹目录,读取,修改,写入”权限,继承权限到子目录。
  如果是.Net网站,还要设置IIS_WPG组,ASP.NET账户“读取和运行,列出文件夹目录,读取,修改,写入”权限,继承权限到子目录。

7) 设置各个站点下的可写目录的脚本执行权限为“无”。

8) 去掉各站点目录的IIS写权限,目录浏览权限。

9) 配置 IIS 元数据库权限:“windows\system32\Inetsrv\MetaBase.xml “,确认只有 Administrators 组和 SYSTEM拥有对元数据库的完全

控制访问权,删除所有其他文件权限。

10) 关闭WScript.Shell, Shell.application, WScript.Network这三个危险而又不常用的系统组件:

    regsvr32 /u c:\windows\system32\wshom.ocx
    regsvr32 /u c:\windows\system32\shell32.dll


.NET 网站权限设置非常麻烦,建议尽量不要使用.NET Web程序。

2 对于MSSQL。

1) 给SA用户设置高强度密码。

2) 删除以下危险的扩展存储过程。

删除脚步:

use master

exec sp_dropextendedproc xp_cmdshell

exec sp_dropextendedproc xp_enumgroups

exec sp_dropextendedproc xp_loginconfig

exec sp_dropextendedproc xp_enumerrorlogs

exec sp_dropextendedproc xp_getfiledetails

exec sp_dropextendedproc Sp_OACreate

exec sp_dropextendedproc Sp_OADestroy

exec sp_dropextendedproc Sp_OAGetErrorInfo

exec sp_dropextendedproc Sp_OAGetProperty

exec sp_dropextendedproc Sp_OAMethod

exec sp_dropextendedproc Sp_OASetProperty

exec sp_dropextendedproc Sp_OAStop

exec sp_dropextendedproc xp_regaddmultistring

exec sp_dropextendedproc xp_regdeletekey

exec sp_dropextendedproc xp_regdeletevalue

exec sp_dropextendedproc xp_regenumvalues

exec sp_dropextendedproc xp_regremovemultistring

exec sp_dropextendedproc xp_regwrite

drop procedure sp_makewebtask

exec sp_dropextendedproc xp_cmdshell -- 删除此项扩展后,将无法远程连接数据库

exec sp_dropextendedproc xp_dirtree  -- 删除此项扩展后,将无法新建或附加数据库

exec sp_dropextendedproc Xp_regread  -- 删除此项扩展后, 还原数据库辅助

exec sp_dropextendedproc xp_fixeddrives -- 删除此项扩展后,将无法还原数据库

恢复脚本:

use master

EXEC sp_addextendedproc xp_cmdshell ,@dllname =xplog70.dll

EXEC sp_addextendedproc xp_enumgroups ,@dllname =xplog70.dll

EXEC sp_addextendedproc xp_loginconfig ,@dllname =xplog70.dll

EXEC sp_addextendedproc xp_enumerrorlogs ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_getfiledetails ,@dllname =xpstar.dll

EXEC sp_addextendedproc Sp_OACreate ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OADestroy ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OAGetErrorInfo ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OAGetProperty ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OAMethod ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OASetProperty ,@dllname =odsole70.dll

EXEC sp_addextendedproc Sp_OAStop ,@dllname =odsole70.dll

EXEC sp_addextendedproc xp_regaddmultistring ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regdeletekey ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regdeletevalue ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regenumvalues ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regremovemultistring ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regwrite ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_dirtree ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_regread ,@dllname =xpstar.dll

EXEC sp_addextendedproc xp_fixeddrives ,@dllname =xpstar.dll


3 对于Windows远程终端(3389)。

去掉以下位置所有IIS匿名账户的读写权限:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService

4 对于radmin。

radmin2.0 去掉以下位置所有IIS匿名账户的读写权限:
HKEY_LOCAL_MACHINE\SYSTEM\RAdmin

radmin1.0 和radmin3.0 去掉以下位置所有IIS匿名账户的读写权限:
HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin

5 对于Serv-U。

修改默认管理端口和密码。

[日志信息]

该日志于 2009-10-16 21:55 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “Windows服务器安全设置攻略” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部