国外VPS之Web服务器权限与安全设置
VPS服务器其实相当于一台独立服务器,它会受到各种各样的攻击。WEB服务是VPS的一项重要功能,对它的权限设置非常重要,否则网站就会出现漏洞并且很可能会出现被不怀好意的人黑掉的情况。或者权限不足导致网站程序无法运行。
下边经大家介绍Windows系统的VPS的IIS Web服务器设置的一些经验。
主要权限分为两块,一个是IIS Web站点本身权限,还有是Windows系统NTFS权限。
我们先来看VPS中的IIS中的设置.
一、IIS 下网站->站点->属性->主目录面板上有6 个选项
1,读取 :必须要选取,否则无法访问网站
2,写入 :可禁用。IIS 面板中的"写入"权限实际上是对 HTTP PUT 指令的处理,对于普通网站,一般情况下这个权限是不打开的。
3,浏览 :是指目录,可禁用
4,记录访问 :禁用,如有需要可开启一段时间查看内容
5,索引资源 :随意
6,脚本资源访问 :可禁用。IIS 面板中的"脚本资源访问"不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开"写入"权限的话,那么就非常危险了。
二、在执行权限下拉列表中有3 个选项
无 :纯静态可选这个
纯脚本 :有ASP PHP等
纯脚本和可执行程序 :禁用,执行权限中"纯脚本和可执行程序"权限可以执行任意程序,包括 exe 可执行程序,如果目录同时有"写入"权限的话,那么就很容易被人上传并执行木马程序了。
IIS选项的介绍
而网站目录如果在 NTFS 分区(推荐用这种)的话,还需要对 NTFS 分区上的这个目录设置相应权限,许多地方都介绍设置 everyone 的权限,实际上这是不好的,其实只要设置好 Internet 来宾帐号(IUSR_xxxxxxx)或 IIS_WPG 组的帐号权限就可以了。如果是设置 ASP、PHP 程序的目录权限,那么设置 Internet 来宾帐号的权限,而对于 ASP.NET 程序,则需要设置 IIS_WPG 组的帐号权限。在后面提到 NTFS 权限设置时会明确指出,没有明确指出的都是指设置 IIS 属性面板上的权限。
首先, ASP、PHP、ASP.NET 程序所在目录的权限设置:
如果这些程序是要执行的,那么需要设置"读取"权限,并且设置执行权限为"纯脚本"。不要设置"写入"和"脚本资源访问",更不要设置执行权限为"纯脚本和可执行程序"。NTFS 权限中不要给 IIS_WPG 用户组和 Internet 来宾帐号设置写和修改权限。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序),则需要给这些特定的文件配置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序是 IIS_WPG 组)的写权限,而不要配置 IIS 属性面板中的"写入"权限。
对于 ASP.NET 程序的目录,许多人喜欢在文件系统中设置成 Web 共享,实际上这是没有必要的。只需要在 IIS 中保证该目录为一个应用程序即可。如果所在目录在VPS 的 IIS 中不是一个应用程序目录,只需要在其属性->目录面板中应用程序设置部分点创建就可以了。Web 共享会给其更多权限,可能会造成不安全因素。
另外一个是 上传目录的权限设置:
用户的网站上可能会设置一个或几个目录允许上传文件,上传的方式一般是通过 ASP、PHP、ASP.NET 等程序来完成。这时需要注意,一定要将上传目录的执行权限设为"无",这样即使上传了 ASP、PHP 等脚本程序或者 exe 程序,也不会在用户浏览器里就触发执行。
同样,如果不需要用户用 PUT 指令上传,那么不要打开该上传目录的"写入"权限。而应该设置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序的上传目录是 IIS_WPG 组)的写权限。
如果下载时,是通过程序读取文件内容然后再转发给用户的话,那么连"读取"权限也不要设置。这样可以保证用户上传的文件只能被程序中已授权的用户所下载。而不是知道文件存放目录的用户所下载。"浏览"权限也不要打开,除非你就是希望用户可以浏览你的上传目录,并可以选择自己想要下载的东西。
总结: 一般的一些asp.php等程序都有一个上传目录.比如论坛.他们继承了上面的属性可以运行脚本的.我们应该将这些目录从新设置一下属性.将(纯脚本)改成(无).
还有是 Access 数据库所在目录的VPS权限设置:
许多 IIS 用户常常采用将 Access 数据库改名(改为 asp 或者 aspx 后缀等)或者放在发布目录之外的方法来避免浏览者下载它们的 Access 数据库。而实际上,这是不必要的。其实只需要将 Access 所在目录(或者该文件)的"读取"、”写入" 限都去掉就可以防止被人下载或篡改了。你不必担心这样你的程序会无法读取和写入你的 Access 数据库。你的程序需要的是 NTFS 上 Internet 来宾帐号或 IIS_WPG 组帐号的权限,你只要将这些用户的权限设置为可读可写就完全可以保证你的程序能够正确运行了。
Internet 来宾帐号或 IIS_WPG 组帐号的权限可读可写.那么Access所在目录(或者该文件)的"读取"、"写入"权限都去掉就可以防止被人下载或篡改了
VPS其它目录的权限设置:
你的网站下可能还有纯图片目录、纯 html 模版目录、纯客户端 js 文件目录或者样式表目录等,这些目录只需要设置"读取"权限即可,执行权限设成"无"即可。其它权限一概不需要设置。
上面的几个例子已经包含了大部分情况下的权限设置,只要掌握了设置的基本原理,也就很容易地完成能其它情况下的权限设置。