IIS 和 WEB 站点文件夹权限配置

IIS 是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的 IIS 默认安装又实在不敢恭维。
首先在 D:根目录新建一个 wwwroot 文件夹,用来做为 WEB 服务器站点的根目录,里面存放不同网站的文件夹。例如新建第一个网站存放文件的目录 WebSite1,为了杜绝跨站攻击等各种相关安全问题,实现各个虚拟主机目录有独立权限的访问机制,我们要给每个目录分配一个匿名访问的用户帐号。

依次右击桌面我的电脑----->管理------>本地用户与组,然后新建一个用户 IISUSER_01,选中用户不能更改密码和密码永不过期,去掉其余两项复选。(当然,如果您的 WEB SERVER 上有 50 个虚拟主机的话,可以再以同样的方法新增一些用户)。可以给每个新增用户设定个密码,当然,其实为空也无大碍,因为这是用来为 IIS 匿名访问用户而设的,对系统安全基本不会有影响。

新增用户后因为默认新增用户自动加入 Users 组内,要分别去除掉它们 User 组的权限,并重新分别把它们只归属于 Guests 组,这一步一定要记住了,安全问题很关键。设置完成后,为了方便统一划分 WEB 站点匿名访问用户的权限,再新建一个用户组,例如为 IISUSER_GROUP,把 IISUSER_01 用户添加到 IISUSER_GROUP 组内。

用户和组设置好后,我们再次打开 d 盘的 wwwroot,右击 website1 文件夹在属性配置的安全选项里,添加 IISUSER_01 用户权限(如果是单纯的 HTML 站点可以只给读取权限即可,如果是 ASP+ACESS 数据库或需要进行 FSO 操作的站点,同时还需要加上"写入"权限或一般我们将“完全控制”权给 IISUSER_01 用户)。
 
如果想进行更严密的安全配置,可以设置IISUSER_01 用户在website1目录的权限为读取,在需要更新或写入操作的图片上传目录或数据库目录上才赋予写入权限,这样更为安全。做完这一步,网站的目录安全性就够了吗?不,利用一些 FSO 等木马一样还可以进行跨站进行读取,虽然跨站后没有权限修改,但比如用海洋顶端的文件夹打包功能,仍能进行跨站浏览系统磁盘及包操作并下载!解决的方法是,右击 C 和 D 盘符选择属性中的安全选项,添加刚才我们建立的用户组(包含有 IISUSER_01 或新增的其它 WEB 网站目录用户),禁止该组的所有操作权限。
(注意子目录继承权限的设置,WebSite1 目录不要继承父目录的该权限。)
 
这样一来,每个站点的浏览者(匿名访问用户)也只能对该站目录内文件进行一定的权限操作,即使 ASP 木马上传到其中一个网站目录,不会对别的站点造成任何影响,更不会对服务器的安全有任何危险。

文件夹安全配置完后,我们下一步将进行 IIS 的配置。

首先打开 IIS 管理器—》主目录,为了方便统一管理,将默认站点重命名为 WebSite1 并将主目录指向 D:\wwwroot\WebSite1 目录。 

然后点击本窗口的配置按钮进入应用程序配置,在应用程序扩展栏中删除必须之外的任何无用映射, 只保留你确实需要用到的文件类型,比如 ASP,ASPX,shtml 等,一般的 WEB 服务器应用有了其中两个映射就够了,其它的映射在以往的自由微软漏洞中都发生过太多的安全漏洞事件,不信你可以去查查以前的漏洞列表。开始把不用的扩展一个个删除掉吧。

配置完这一项,再点击本窗口上方的选项栏,一般在大部分的 ASP 程序中,我们都会在代码中调用父路径,我们在这一页中勾选中[启用父路径]的复选框,当然如果你确定你的程序不会有调用父路径的代码,最好不要选择此项,安全性会更强一些。最后,再点击本窗口上方的调试栏,在脚本错误的错误消息选项中,选中[向客户端发送下列文本错误消息]项否则 ASP 脚本出错时,出错信息很可能会向客户端显示你的数据库路径(即黑客常说的暴库),程序代码,结构,参数等重要信息。

为了避免 cgi 漏洞扫描器扫描到 IIS 漏洞的安全隐患,在 IIS 管理面板中将 HTTP404 Object Not Found 出 错 页 面 通 过 URL 重 定 向 到 一 个 定 制 HTM 文 件 , 我 们 可 以 更 改C:/WINDOWS/Help/iisHelp/common/404b.htm 内容改为:,或者可在 IIS 管理面板中的自定义错误栏修改 404 错误页的 HTML 文件路径并做相应修改最后,我们还要把之前在为该站点建立的匿名用户帐号绑定到此站点的目录安全性中的访问权限来。打开站点的属性页中的"目录安全性"选项卡,点身份验证和访问控制的"编辑" 勾选启用匿名访问,并点击该栏的浏览按钮,选择我们之前为此站点(WebSite1)分配的匿名用户帐号 IISUSER_01, 输入该用户的口令,提示再次输入确认密码。如无则留空即可。

经过设置匿名访问帐号后,"WebSite1"网站的用户,使用 ASP 的 FileSystemObject  组件 或 其 它 木 马 程 序 入 侵 攻 击 服 务 器 时 , 也 只 能 访 问 “ WebSite1 ” 的 网 站 目 录 :d:\wwwroot\WebSite1  下的内容,当试图访问其他内容时,会出现诸如"没有权限"、"硬盘未准备好"、"500 服务器内部错误"等出错提示了(曾试过用 asp 海洋顶端 2006 木马进行全面测试,对服务器安全不构成任何影响)。

如果你的 WEB 服务器需要放置多个 WEB 站点,那么最简单的方法就是配置主机头的方法。

在这里以建立两 个网 站分别为 www.alixixi.com 和 www.ejchina.com 为例。首先将www.alixixi.com 和 www.ejchina.com 两个域名的 DNS 解析到服务器的 IP 地址。比如www.alixixi.com 就存放在上面我们配置的 d:wwwroot\WebSite1 目录中,这样我们打开 IIS管理器,右击 WebSite1 站点属性。 

点击 IP 地址的高级按钮,修改 IP 地址的主机头为 www.gzidc.me。 

这样,第一个站点就设置成功了,接着我们可以继续添加第二个站点了,以同样的方法,在添加时不用更改 TCP/IP 的端口,直接设定另一站点的主机头为 www.ejchina.com 就可以完成第二个站点的建立了。利用主机头方式建立多站点,必须使用友好网址才能访问,同样也可通过 IP端口和多 IP 地址实现多站点,但这里不再详细介绍。如果需要做泛域名解析,则将该站点设定为空主机头,并在域名 DNS 建立一个*.域名.com 解析到服务器 IP 就可以实现泛域名解析。

最后,别忘了备份 IIS 的配置,在灾难性系统崩溃或 IIS 出现重大错误需要重新安装等紧急事故,可以快速的恢复 IIS 的安全配置,恢复站点的正常运行,备份功能很简单,IIS 管理面板的操作工具栏—》所有任务—》进行备份。

如想了解更多的备份及相关技术信息,请点击 IIS 帮助,在 IIS6 管理员指南中查阅。

以下是摘自管理员指南中的一段相关备份的资料:
实际上,配置数据库是指 MetaBase.xml 与 MBSchema.xml  文件的组合以及驻留内存的 配 置 数据库 。IIS  配 置信息存储在 MetaBase.xml  文 件 中 ,而配置数 据 库 架构存储在MBSchema.xml  文件中。当启动 IIS 时,这些文件会由存储层读取,然后通过管理基本对象(ABO) 写入到内存中的配置数据库中…

说到 MetaBase.xml,随便提到一点 IIS6 常遇到的问题,就是无法上传大文件的问题,IIS 6出于安全考虑, 默认最大请求 200K(也即最大提交数据限额为 200KByte, 204800Byte)。通常200K 的大小是不能满足我们站点的需求的,解决的方法如下:
1. 关闭 IIS Admin Service 服务
2. 打开 \Windows\system32\inesrv\metabase.xml
3. 修改 ASPMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800,即限制上传文件最大 200KB。
4. 启动 IIS Admin Service

其实如果你对编程有些了解,仔细查看 metabase.xml 文件中的内容,你会发现,很多 IIS配置同样可以在里面修改,当然,除非你很熟悉,否则不建议直接修改。

配置到这一步,我们已经成功的配置了一台安全性较高的 WEB 服务器,但要实现功能强大的应用于 internet 的服务器,单单仅 WEB 功能还是不够的,为了日常的文件上传下载及维护管理,我们还要架设功能强大的 FTP 服务器!


转自:http://blog.sohu.com/people/!aWRjbWlubWluQDE2My5jb20=/226632512.html

你可能感兴趣的:(WindowsServer)