安全维护?IIS?asp?站点的高级技巧
一:前言 人说,一朝被蛇咬,十年怕.....。就是这样。2000年初,当我终于摆脱winnt 4.0 server那可怕的补丁之旅,迈向win2000 server时。我终于可以比较放心我的服务器了。但随着sp1的补丁出现。我知道,与微软的补丁因缘又开始轮回了。但还好。win2000自动化的管理还是让我放心好多,而以前管理winnt后的失眠症状也逐渐消失了。偶尔还能见到我的“梦”老弟。但这一切都伴随者同bigeagle的一次知心交谈中付之东流了。一次。bigeagle发来qq。给我看了一段代码。我一看就知道这不是bigeagle写的代码,那么烂,不过有点熟悉。再一看。啊?!这不是我的数据库连接字符串吗!!GOD。顿时觉得有一种不祥的预兆。不过还好,这个只是个access的,我还用了一些手段防止他被下载。但这足以让我长时间的失眠又来了。(再次说明,bigeagle不是蛇,他是鹰) 二:安装过程中的IIS 与 asp安全防护。(这里只考虑是web服务器,而不是本地机子上的web开发平台。) 接下来的几天有是几个难熬的日子。我开始重新部署win2000 web服务器的安全策略。找到asp代码被泄漏的原因,原来。我的补丁每次打得都比较及时的。但一次因为卸载FTP时,重装了IIS,而这之后,我并没有再打补丁而导致最新的漏洞web解析出错。(就是那个较新的漏洞 Translate :f 用这个加上一些工具就可以看到asp的代码了。) 三:有目的进行安全配置。 一:开发前的工作。 首先,启动IIS后,看有没有iissamples,IIShelp,msadc,这些目录,如果有,他们大多是用来作为例子,帮助安装的,删掉他们,再把脚本库也删掉,直到web目录只留下干静的新建的虚拟目录即可,如果有管理的web站点,也删掉他。没有他,我们一样可以工作的更好。 还有看看有没有printer的文件夹,他们大多数都是些通过web来访问打印机的。MS就是怪。为了表示我的功力强大,允许通过web来远程打印。相信没有哪个网络公司是通过web网来打印的把。也不可能让网友来使用你的计算机吧。那好,去掉他。 然后。开始详细配置各个web虚拟目录的安全。大概的策略是这样的。 分类每个文件夹管理,如,可以吧扩展名是相同的分配到同一目录,如*.asp的,和*.inc就尽量分开。如果是*.asp的,则开放虚拟目录权限,但将实际目录权限授予administrator,system(完全控制)everyone (rc)即可。这样可以通过web允许读取。但实际上你可以加大安全力度,如果你认位他是比较保密的。如果是*.inc的,则开放目录权限,但不允许通过直接访问。这里又一个技巧了。比如。你可以允许实际目录被everyone访问,但在IIS中,你把改目录浏览项去掉,则改包含文件只能被源文件读取,但不允许被直接读许。这样,他就不可能下在倒一些你的单机数据库了。而且你的*.inc文件也不会被浏览器直接阅读。 刚才我的老弟“梦”还在问我,有没有办法可以让别人看不到你的连接字符串,你可以试试下面的方法! 4 最后在iis里把include 文件夹用拒绝读的方法保护起来。你会发现,你的连接可以照常打开,但是如果对方看到你的源代码,他也看不到连接字符串,即使他看到了包含文件路径及名称。他也无法下载,或是用ie 打开。所以,可以保护你的连接字符串了。
当然,还有一些比较好的文件策略你可以参考一下: 二:启用日志监测。 这是亡羊补牢的好工具,至少你可以用它来监测谁通过webl干了什么,当然,你还要保护该日志的权限只能是被系统管理员。和超级管理所控制。这样避免某些人的干了某些事而不留痕迹。为了留好现场而又不影响IIS的响应速度。还是建议选则w3c扩展日志格式比较好。(以前别人介绍我用ODBC,看来比较方便,但实际上不是这样。他受到数据库的影响很大。而且速度较慢了)。 如果在一台计算机上有多个 Web 服务器,则后两种属性非常有用。Win32 状态属性对于调试非常有用。检查日志时,密切注意错误 5,这意味着访问被拒绝。在命令行上输入 net helpmsg err,可找出其它 Win32 错误的含义,其中 err 是要查找的错误号。
相信我,大部分的asp源代码泄漏都是通过不安全,或是有错误的脚本映射导致的。而他们中的大多数可能你用不到。如下面我说的。 1 *.htr这是一个比较厉害的文件,他是web应用程序的一种。同hta一样。这是些比较厉害的功能,但介绍很少。hta就是一种html 格式的 application,功能比较强大。切安全性比htm要低。所以可能会导致功能强大的操作。比如htr就可以通过web来重社密码。相信我们大多数的asp程序员和NT网管不需要这个把。那好,把他的对应选项删掉好了。否则,任何人都可以通过你的web来进行非法操作,甚至格式化掉你的硬盘。 2 *.hta 这个我已经说过了,他是把双刃剑,用的好,你可以通过他来访问nt的很多操作,在asp上开nt用户也是可能的。但大多数的工作可以不通过web来事最好的。而*.hta在web很少用到,虽然他在iis4.0就推出了。比如,你把一个文件保存成*.hta,你就可以用ie打开。看看,很奇怪的界面吧。听ms的工程师说.net中吧*.hta换了个说法,功能加大了。看来网管的工作又该加大了。如果你想安全一些。删掉吧。 3 *.idc 这个东东是个比较老的数据库连接方法了,现在大多数都直接用asp文件。不用idc了,所以删掉他。 4 *.printer这个是打印机文件。去掉他好了 5 *.htw,*.ida *.idq这些都是索引文件,也可以去掉了。 四:好的安全习惯。 账号策略,密码策略
这里只能说是防止,我只有从已经发现的看asp方法的漏洞入手,现在对于iis4.0则几乎有20种以上的办法,但安装了sp6a后有两种,可以到微软的网站安全公告下载2000-8月后的补丁可以解决。但如果你用了本文上面的方法。可以装到sp6就可以了。 如果是win2000 server,则有两种方法。安了sp1后,还有一种,所以你必须倒微软安全公告栏去下载相应的hotfix。可以解决。 六:防止恶意的破坏。 这个功能能对付一些被你监测到的不良分子,你可以在日志中、或第三方工具看到到底是谁在不停的探测、破坏你的IIS,那么把他列为不收欢迎的黑名单,这样,你再配置站点时可以对其IP,或域进行拒绝访问,不过这一过程是要付出代价的,你的IIS要担任反向查找的功能。可能会比较耗时。 六: 安全的话题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |