windows2003服务器iis网站安全设置图解

作者:简简单单 2013-12-06

网站安全基本配置

先设置一下站点所在分区的安全,让只允许administrators和system这两组用户可以安全访问,如下图:
iis网站安全设置jquery110205402204316312018="1" data-original="/wp-content/uploads/2009/12/iis_d.png" />

设站点信息全部放在d:里的wwwroot文件夹里,这里注意不能直接把站点信息放在根目录里,需要建立一个文件夹(为了站点的安全,后面需要用到这个文件夹的权限)

下面以创建asdf.cn站点为例
1.先创建一个站点文件夹,文件名为asdfcn,里面分别创建web,logs,data和error文件夹,主要用来存放站点的不同数据信息,如error可以用来存放此站点用到的错误页面如404,500等页面.
log 用来存放此站点的访问日志,iis里默认存放在c盘了,这点需要注意一下.
data 用来存放用户的一些数据备份信息
web 主要用来存放网站程序文件,如php,asp,asp.net,html,jsp之类的文件

2.设置文件夹的权限
在D:分区创建一个wwwroot目录,目录自动继承了此分区的访问权限(最上方已经设置好了),在下面的应用中再根据不同的站点来不同的用户访问权限.

假设我们已经添加了一个用户为siteuser的用户,用户组设定为guest,永不过期,且不允许修改密码,我们在下面创建的站点设置此用户可以访问执行.
3.通过右键属性设置d:/wwwroot/asdfcn文件夹的权限,添加"siteuser"用户,权限通过"高级"设置,在弹出的高级安全设置对话框里选中"siteuser"用户,点击"编辑"进行权限设置,
在最上面的"应用到"里选择"只有该文件夹",在下面的允许里只选中以下几个:
1.列出文件夹/读取数据
2.读取属性
3.读取扩展属性
4.读取权限
这四个选项,其它的不要选,注意拒绝一列一个也不能选的.这时就可实现把这个站点的用户的访问权限限制到这个文件夹里,这样就算这个站点被上传了木马,其它站点也不会受到影响的.如图所示:
iis网站安全设置设置完成后的权限如下图所示:
iis网站安全设置

4.下面设置web文件夹的权限
通过上面类似的办法,打开"siteuser"用户的高级安全设置对话框,在上面的"用户到"里选中"该文件夹,子文件夹及文件"一项
在"允许"一列选中除了以下两项其它所有项,拒绝列一个也不要选择:
1.完全控制
2,遍历文件夹/运行文件
如下图所示:
iis网站安全设置完成后如图所示:
iis网站安全设置

对于其它几个目录里的权限也按web目录里的权限一样进行设置即可.
经过以上设置的设置,站点基本就已经安全了

针对服务器进行安全配置

系统用户情况为:
administrators 超级管理员(组)
system 系统用户(内置安全主体)
guests 来宾帐号(组)
iusr_服务器名 匿名访问web用户
iwam_服务器名 启动iis进程用户
www_cnnsc_org 自己添加的用户、添加后删除Users(组)、删除后添加到guests来宾帐号(组)
为加强系统安全、(guest)用户及(iusr_服务器名)用户均被禁用
将访问web目录的全部账户设为guests组、去除其他的组
■盘符 安全访问权限
△C:/盘 administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
△D:/盘 (如果用户网站内容放置在这个分区中)、administrators(组) 完全控制权限
△E:/盘 administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
△f:/盘 administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
△如有其他盘符类推下去.

■目录安全访问权限
▲c:/windows/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲c:/windows/system32/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限、iwam_服务器名(用户) 读取+运行权限
▲c:/windows/temp/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限、guests(组) 完全控制权限
▲C:/WINDOWS/system32/config/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲c:/Program Files/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲C:/Program Files/Common Files/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限、guests(组) 读取+运行权限
▲c:/Documents and Settings/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲C:/Documents and Settings/All Users/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲C:/Documents and Settings/All Users/Application Data/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲C:/Documents and Settings/All Users/Application Data/Microsoft/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限
▲C:/Documents and Settings/All Users/Application Data/Microsoft/HTML Help/
△administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限

■禁止系统盘下的EXE文件:
net.exe、cmd.exe、tftp.exe、netstat.exe、regedit.exe、regedt32.exe、at.exe、attrib.exe、cacls.exe
△些文件都设置成 administrators 完全控制权限

■新建WWW(网站)根目录【administrators(组) 完全控制权限、system(内置安全主体) 完全控制权限】
▲根目录里新建wwwroot目录
▲网站根目录、网页请上传到这个目录
△administrators(组) 完全控制权限
△www_cnnsc_org(用户)完全控制权限
▲根目录里新建logfiles目录
▲网站访问日志文件、本目录不占用您的空间
△administrators(组) 完全控制权限
▲根目录里新建database目录
数据库目录、用来存放ACCESS数据库
△administrators(组) 完全控制权限
▲根目录里新建others目录
▲用于存放您的其它文件、该类文件不会出现在网站上
△administrators(组) 完全控制权限
△www_cnnsc_org(用户)完全控制权限
▲在FTP(登陆消息文件里填)IIS日志说明:
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
欢迎您使用本虚拟主机.
请使用CUTEFTP或者LEAFTP等软件上传您的网页.
注意、如果上传不了、请把FTP软件的PASV模式关掉再试.
您登陆进去的根目录为FTP根目录
/--wwwroot网站根目录、网页请上传到这个目录.
/--logfiles 网站访问日志文件、本目录不占用您的空间.
/--database 数据库目录、用来存放ACCESS数据库.
/--others 用于存放您的其它文件,该类文件不会出现在网站上.
为了保证服务器高速稳定运行、请勿上传江湖游戏、广告交换、
博彩类网站、大型论坛、软件下载等耗费系统资源的程序.
IIS日志说明
/--Date 动作发生时的日期
/--Time 动作发生时的时间
/--s-sitename 客户所访问的Internet服务于以及实例号
/--s-computername 产生日志条目的服务器的名字
/--s-ip 产生日志条目的服务器的IP地址
/--cs-method客户端企图执行的动作(例如GET方法)
/--cs-uri-stem被访问的资源、例如Default.asp
/--cs-uri-query 客户所执行的查询
/--s-port 客户端连接的端口号
/--cs-username通过身份验证访问服务器的用户名、不包括匿名用户
/--c-ip 访问服务器的客户端IP地址
/--cs(User-Agent) 客户所用的浏览器
/--sc-status用HTTP或者FTP术语所描述的动作状态
/--sc-win32-status用Microsoft Windows的术语所描述的动作状态
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

■禁止下载Access数据库
△Internet 信息服务(IIS)管理器→网站→属性→主目录→配置→添加
△可执行文件:C:/WINDOWS/twain_32.dll
△扩展名:.mdb
▲如果你还想禁止下载其它的东东
△Internet 信息服务(IIS)管理器→网站→属性→主目录→配置→添加
△可执行文件:C:/WINDOWS/twain_32.dll
△扩展名:.(改成你要禁止的文件名)
▲然后删除扩展名:shtml stm shtm cdx idc cer

■防止列出用户组和系统进程:
△开始→程序→管理工具→服务
△找到 Workstation 停止它、禁用它

■卸载最不安全的组件:
△开始→运行→cmd→回车键
▲cmd里输入:
△regsvr32/u C:/WINDOWS/system32/wshom.ocx
△del C:/WINDOWS/system32/wshom.ocx
△regsvr32/u C:/WINDOWS/system32/shell32.dll
△del C:/WINDOWS/system32/shell32.dll
△也可以设置为禁止guests用户组访问

■解除FSO上传程序小于200k限制:
△在服务里关闭IIS admin service服务
△打开 C:/WINDOWS/system32/inetsrv/MetaBase.xml
△找到ASPMaxRequestEntityAllowed
△将其修改为需要的值、默认为204800、即200K、把它修改为51200000(50M)、然后重启
IIS admin service服务

■禁用IPC连接
△开始→运行→regedit
△找到如下组建(HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa)中的
(restrictanonymous)子键
△将其值改为1即

■清空远程可访问的注册表路径:
△开始→运行→gpedit.msc
△依次展开“计算机配置→Windows 设置→安全设置→本地策略→安全选项”
△在右侧窗口中找到“网络访问:可远程访问的注册表路径”
△然后在打开的窗口中、将可远程访问的注册表路径和子路径内容全部设置为空即

■关闭不必要的服务
△开始→程序→管理工具→服务
△Telnet、TCP/IP NetBIOS Helper

■解决终端服务许可证过期的办法
△如果你服务器上已经开着终端服务、那就在添加删除程序里删除终端服务和终端授权
服务
△我的电脑--右键属性--远程---远程桌面、打勾、应用
△重启服务器、OK了、再也不会提示过期了

■取消关机原因提示
△开始→运行→gpedit.msc
△打开组策略编辑器、依次展开
△计算机配置→管理模板→系统
△双击右侧窗口出现的(显示“关闭事件跟踪程序”)
△将(未配置)改为(已禁用)即可

针对网站目录安全配置(文件上传目录权限设置)

下面是我在配置过程中总结的一些经验,希望对大家有所帮助。IIS Web 服务器的权限设置有两个地方,一个是 NTFS 文件系统本身的权限设置,另一个是 IIS 下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上。这两个地方是密切相关的。下面我会以实例的方式来讲解如何设置权限。

IIS 下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上有:

  • 脚本资源访问
  • 读取
  • 写入
  • 浏览
  • 记录访问
  • 索引资源

6 个选项。这 6 个选项中,“记录访问”和“索引资源”跟安全性关系不大,一般都设置。但是如果前面四个权限都没有设置的话,这两个权限也没有必要设置。在设置权限时,记住这个规则即可,后面的例子中不再特别说明这两个权限的设置。

另外在这 6 个选项下面的执行权限下拉列表中还有:

  • 纯脚本
  • 纯脚本和可执行程序

3 个选项。而网站目录如果在 NTFS 分区(推荐用这种)的话,还需要对 NTFS 分区上的这个目录设置相应权限,许多地方都介绍设置 everyone 的权限,实际上这是不好的,其实只要设置好 Internet 来宾帐号(IUSR_xxxxxxx)或 IIS_WPG 组的帐号权限就可以了。如果是设置 ASP、PHP 程序的目录权限,那么设置 Internet 来宾帐号的权限,而对于 ASP.NET 程序,则需要设置 IIS_WPG 组的帐号权限。在后面提到 NTFS 权限设置时会明确指出,没有明确指出的都是指设置 IIS 属性面板上的权限。

例1 —— ASP、PHP、ASP.NET 程序所在目录的权限设置:
如果这些程序是要执行的,那么需要设置“读取”权限,并且设置执行权限为“纯脚本”。不要设置“写入”和“脚本资源访问”,更不要设置执行权限为“纯脚本和可执行程序”。NTFS 权限中不要给 IIS_WPG 用户组和 Internet 来宾帐号设置写和修改权限。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序),则需要给这些特定的文件配置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序是 IIS_WPG 组)的写权限,而不要配置 IIS 属性面板中的“写入”权限。

IIS 面板中的“写入”权限实际上是对 HTTP PUT 指令的处理,对于普通网站,一般情况下这个权限是不打开的。

IIS 面板中的“脚本资源访问”不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开“写入”权限的话,那么就非常危险了。

执行权限中“纯脚本和可执行程序”权限可以执行任意程序,包括 exe 可执行程序,如果目录同时有“写入”权限的话,那么就很容易被人上传并执行木马程序了。

对于 ASP.NET 程序的目录,许多人喜欢在文件系统中设置成 Web 共享,实际上这是没有必要的。只需要在 IIS 中保证该目录为一个应用程序即可。如果所在目录在 IIS 中不是一个应用程序目录,只需要在其属性->目录面板中应用程序设置部分点创建就可以了。Web 共享会给其更多权限,可能会造成不安全因素。

也就是说一般不要打开-主目录-(写入),(脚本资源访问) 这两项以及不要选上(纯脚本和可执行程序),选(纯脚本)就可以了.需要asp.net的应用程序的如果应用程序目录不止应用程序一个程序的可以在应用程序文件夹上(属性)-目录-点创建就可以了.不要在文件夹上选web共享.

例2 —— 上传目录的权限设置:
用户的网站上可能会设置一个或几个目录允许上传文件,上传的方式一般是通过 ASP、PHP、ASP.NET 等程序来完成。这时需要注意,一定要将上传目录的执行权限设为“无”,这样即使上传了 ASP、PHP 等脚本程序或者 exe 程序,也不会在用户浏览器里就触发执行。

同样,如果不需要用户用 PUT 指令上传,那么不要打开该上传目录的“写入”权限。而应该设置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序的上传目录是 IIS_WPG 组)的写权限。

如果下载时,是通过程序读取文件内容然后再转发给用户的话,那么连“读取”权限也不要设置。这样可以保证用户上传的文件只能被程序中已授权的用户所下载。而不是知道文件存放目录的用户所下载。“浏览”权限也不要打开,除非你就是希望用户可以浏览你的上传目录,并可以选择自己想要下载的东西。 

一般的一些asp.php等程序都有一个上传目录.比如论坛.他们继承了上面的属性可以运行脚本的.我们应该将这些目录从新设置一下属性.将(纯脚本)改成(无).

例3 —— Access 数据库所在目录的权限设置:
许多 IIS 用户常常采用将 Access 数据库改名(改为 asp 或者 aspx 后缀等)或者放在发布目录之外的方法来避免浏览者下载它们的 Access 数据库。而实际上,这是不必要的。其实只需要将 Access 所在目录(或者该文件)的“读取”、“写入”权限都去掉就可以防止被人下载或篡改了。你不必担心这样你的程序会无法读取和写入你的 Access 数据库。你的程序需要的是 NTFS 上 Internet 来宾帐号或 IIS_WPG 组帐号的权限,你只要将这些用户的权限设置为可读可写就完全可以保证你的程序能够正确运行了。

Internet 来宾帐号或 IIS_WPG 组帐号的权限可读可写.那么Access所在目录(或者该文件)的“读取”、“写入”权限都去掉就可以防止被人下载或篡改了

例4 —— 其它目录的权限设置:
你的网站下可能还有纯图片目录、纯 html 模版目录、纯客户端 js 文件目录或者样式表目录等,这些目录只需要设置“读取”权限即可,执行权限设成“无”即可。其它权限一概不需要设置。

好了,我想上面的几个例子已经包含了大部分情况下的权限设置,其它情况根据这些例子,我想你一定可以想到该如何设置了吧。

 

 

相关文章

精彩推荐