//
by
redice
// 2009.9.17
//转自 http://www.redicecn.cn
// 辛勤劳动成果,转载请保留上述信息
一句废话:服务器安全问题是一个令人头痛的问题,也是一个无法回避的问题...
经过实验总计如下:
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组“读取和运行,列出文件夹目录,读取”权限,继承权限到子目录;
“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程序。
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。
修改默认管理端口和密码。
PS: php安装目录也要给user组“读取”权限
//
//转自 http://www.redicecn.cn
//
一句废话:服务器安全问题是一个令人头痛的问题,也是一个无法回避的问题...
经过实验总计如下:
NTFS权限设置要先设置父目录,再设置子目录,因为设置继承权限时,父目录的权限会覆盖掉子目录权限,“先父后子”。
1
1)
2)
3)
“windows”目录添加Users组,IIS_WPG组“读取和运行,列出文件夹目录,读取”权限,继承权限到子目录;
“Program
“windowstemp”目录添加IIS_WPG组,ASP.NET账户,所有IIS匿名账户“修改,读取和运行,列出文件夹目录,读取,写入”权限,继承权限
到子目录。
ASP.Net所需的其它权限,我们通过“aspnet_regiis"
C:WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis
(4)“windows\system32\config
5)
6)
7)
8)
9)
控制访问权,删除所有其他文件权限。
10)
.NET
2
1)
2)
删除脚步:
use
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
exec
drop
exec
exec
exec
exec
恢复脚本:
use
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
EXEC
3
去掉以下位置所有IIS匿名账户的读写权限:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService
4
radmin2.0
HKEY_LOCAL_MACHINE\SYSTEM\RAdmin
radmin1.0
HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin
5
修改默认管理端口和密码。
PS: php安装目录也要给user组“读取”权限