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

来源:互联网 发布:vscode react 编辑:程序博客网 时间:2024/06/11 15:13
// 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
原创粉丝点击