Windows作为Web服务器的安全设置攻略

//  by  redice 
//  2009.9.17
//转自 http://www.redicecn.cn
//  辛勤劳动成果,转载请保留上述信息
一句废话:服务器安全问题是一个令人头痛的问题,也是一个无法回避的问题...

经过实验总计如下:

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

对于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组“读取和运行,列出文件夹目录,读取”权限,继承权限到子目录;
     
“windowstemp”目录添加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程序。

对于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


对于Windows远程终端(3389)。

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

对于radmin。

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

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

对于Serv-U。

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

PS: php安装目录也要给user组“读取”权限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值