当前位置: 操作系统/服务器>linux
本页文章导读:
▪Web服务器安全完全指南
在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。本文仅.........
▪安全维护 IIS下 ASP 站点的高级技巧
一. 前言 (仅以此文感谢好友bigeagle。不是他,我可能不用这么担心win2000安全问题的。呵呵!) 人说,一朝被蛇咬,十年怕.....,就是这样。2000年初,当我终于摆脱winnt 4.0 server.........
▪保护(IIS)web服务器安全的15个技巧
通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问。在过去的几年中,越来越多的黑客、病毒和蠕虫带来的安全问题严重影响了网站的可访问性,尽.........
[1]Web服务器安全完全指南
来源: 互联网 发布时间: 2013-12-24
在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。本文仅仅讨论在构造Web服务器时可能出现的一些情况,希望能引起重视。
一. 安全漏洞
Web服务器上的漏洞可以从以下几方面考虑:
1.在Web服务器上你不让人访问的秘密文件、目录或重要数据。
2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截。
3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪。
4.CGI安全方面的漏洞有:
(1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件。
(2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(Form),并进行检索(Search index),或form-mail之类在主机上直接操作命令时,或许会给Web主机系统造成危险。
5.还有一些简单的从网上下载的Web服务器,没有过多考虑到一些安全因素,不能用作商业应用。
因此,不管是配置服务器,还是在编写CGI程序时都要注意系统的安全性。尽量堵住任何存在的漏洞,创造安全的环境。
二. 提高系统安全性和稳定性
Web服务器安全预防措施:
1.限制在Web服务器开账户,定期删除一些断进程的用户。
2.对在Web服务器上开的账户,在口令长度及定期更改方面作出要求,防止被盗用。
3.尽量使FTP、MAIL等服务器与之分开,去掉ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些无关的应用。
4.在Web服务器上去掉一些绝对不用的如SHELL之类的解释器,即当在你的CGI的程序中没用到PERL时,就尽量把PERL在系统解释器中删除掉。
5.定期查看服务器中的日志logs文件,分析一切可疑事件。在errorlog中出现rm, login, /bin/perl, /bin/sh等之类记录时,你的服务器可能已经受到了一些非法用户的入侵。
6.设置好Web服务器上系统文件的权限和属性,对可让人访问的文档分配一个公用的组,如WWW,并只分配它只读的权利。把所有的HTML文件归属WWW组,由Web管理员管理WWW组。对于Web的配置文件仅对Web管理员有写的权利。
7.有些Web服务器把Web的文档目录与FTP目录指在同一目录时,应该注意不要把FTP的目录与CGI-BIN指定在一个目录之下。这样是为了防止一些用户通过FTP上载一些如PERL或SH之类程序,并用Web的CGI-BIN去执行,造成不良后果。
8.通过限制许可访问用户IP或DNS,如在NCSA中的access.conf中加上:
《Directory /full/path/to/directory》
《Limit GET POST》
order mutual-failure
deny from all
allow from 168.160.142. abc.net.cn
《/Limit》
《/Directory》
这样只能是以域名为abc.net.cn或IP属于168.160.142的客户访问该Web服务器。
对于CERN或W3C服务器可以这样在httpd.conf中加上:
Protection LOCAL-USERS {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
Protect /relative/path/to/directory/* LOCAL-USERS
9.WINDOWS下HTTPD
(1)Netscape Communications Server for NT
PERL解释器的漏洞:
Netscape Communications Server中无法识别CGI-BIN下的扩展名及其应用关系,如.pl文件是PERL的代码程序自动调用的解释文件,即使现在也只能把perl.exe文件存放在CGI-BIN目录之下。执行如:/cgi-bin/perl.exe?&my_script.pl。但是这就
给任何人都有执行PERL的可能,当有些人在其浏览器的URL中加上如:/cgi-bin/perl.exe?&-e+unlink+%3C*%3E时,有可能造成删除服务器当前目录下文件的危险。但是,其他如:O′Reilly WebSite或Purveyor都不存在这种漏洞。
CGI执行批处理文件的漏洞:
文件test.bat的内容如下:
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果客户浏览器的URL为:/cgi-bin/test.bat?&dir,则执行调用命令解释器完成DIR列表。这就让访问者有执行其他命令可能性。
(2)O′Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用批处理文件存在着与Netscape同样的漏洞,但是,新版关闭了.bat在CGI中的作用。支持PERL,新版将VB和C作为CGI开发工具。
(3)Microsoft′s IIS Web Server
1996年3月5日前的IIS在NT下的BUG严重,可以任意使用command命令。但之后已修补了该漏洞,你可检查你的可执行文件的建立日期。IIS3.0还存在一些安全BUG,主要是CGI-BIN下的覆给权利。另外,许多Web服务器本身都存在一些安全上的漏洞,都是在版本升级过程中被不断更新了,在此就不一一列举了。
三. 从CGI编程角度考虑安全。
1.采用编译语言比解释语言会更安全些,并且CGI程序应放在独立于HTML存放目录之外的CGI-BIN下,这是为了防止一些非法访问者从浏览器端取得解释性语言的原代码后从中寻找漏洞。
2.在用C来编写CGI程序时应尽量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之类命令。
在由用户填写的form还回CGI时,不要直接调用system()之类函数。
另外,对于数据的加密与传输,目前有SSL、SHTTP、SHEN等协议供大家研究。
四. 防火墙(Firewall)
1.防火墙的概念
防火墙(Firewall)是指一个由软件或由软件和硬件设备组合而成,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络的访问及管理内部用户访问外界网络的权限。
2.防火墙的措施
(1)代理(Proxy)主机"内部网络--代理网关(Proxy Gateway)--Internet"
这种方式是内部网络与Internet不直接通讯。就是内部网络计算机用户与代理网关采用一种通讯方式,即提供内部网络协议(Netbios、TCP/IP等),而网关与Internet之间采取的是标准TCP/IP网络通讯协议。这样使得网络数据包不能直接在内外网络之间进行。内部计算机必须通过代理网关访问Internet,这样容易在代理服务器上对内部网络计算机访问外界计算机进行限制。另外,由于代理服务器两端采用不同协议标准也可以直接阻止外界非法入侵。还有,代理服务器的网关可对数据封包进行验证和对密码进行确认等安全管制。这样,能较好地控制管理两端的用户,起到防火墙作用。
因为这种防火墙措施是采用透过代理服务器进行,在联机用户多时,效率必然受到影响,代理服务器负担很重,所以许多访问Internet的客户软件在内部网络计算机中可能无法正常访问Internet。
(2)路由器加过滤器完成
"内部网络--过滤器(Filter)--路由器(Router)--Internet"
这种结构由路由器和过滤器共同完成从IP地址或域名上对外界计算机访问内部网络的限制,也可以指定或限制内部网络访问Internet。路由器仅对主机上特定的PORT上的数据通讯加以路由,而过滤器则执行筛选、过滤、验证及其安全监控,这样可以很大程度上隔断内外网络间的不正常的访问登录。
一. 安全漏洞
Web服务器上的漏洞可以从以下几方面考虑:
1.在Web服务器上你不让人访问的秘密文件、目录或重要数据。
2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截。
3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪。
4.CGI安全方面的漏洞有:
(1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件。
(2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(Form),并进行检索(Search index),或form-mail之类在主机上直接操作命令时,或许会给Web主机系统造成危险。
5.还有一些简单的从网上下载的Web服务器,没有过多考虑到一些安全因素,不能用作商业应用。
因此,不管是配置服务器,还是在编写CGI程序时都要注意系统的安全性。尽量堵住任何存在的漏洞,创造安全的环境。
二. 提高系统安全性和稳定性
Web服务器安全预防措施:
1.限制在Web服务器开账户,定期删除一些断进程的用户。
2.对在Web服务器上开的账户,在口令长度及定期更改方面作出要求,防止被盗用。
3.尽量使FTP、MAIL等服务器与之分开,去掉ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些无关的应用。
4.在Web服务器上去掉一些绝对不用的如SHELL之类的解释器,即当在你的CGI的程序中没用到PERL时,就尽量把PERL在系统解释器中删除掉。
5.定期查看服务器中的日志logs文件,分析一切可疑事件。在errorlog中出现rm, login, /bin/perl, /bin/sh等之类记录时,你的服务器可能已经受到了一些非法用户的入侵。
6.设置好Web服务器上系统文件的权限和属性,对可让人访问的文档分配一个公用的组,如WWW,并只分配它只读的权利。把所有的HTML文件归属WWW组,由Web管理员管理WWW组。对于Web的配置文件仅对Web管理员有写的权利。
7.有些Web服务器把Web的文档目录与FTP目录指在同一目录时,应该注意不要把FTP的目录与CGI-BIN指定在一个目录之下。这样是为了防止一些用户通过FTP上载一些如PERL或SH之类程序,并用Web的CGI-BIN去执行,造成不良后果。
8.通过限制许可访问用户IP或DNS,如在NCSA中的access.conf中加上:
《Directory /full/path/to/directory》
《Limit GET POST》
order mutual-failure
deny from all
allow from 168.160.142. abc.net.cn
《/Limit》
《/Directory》
这样只能是以域名为abc.net.cn或IP属于168.160.142的客户访问该Web服务器。
对于CERN或W3C服务器可以这样在httpd.conf中加上:
Protection LOCAL-USERS {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
Protect /relative/path/to/directory/* LOCAL-USERS
9.WINDOWS下HTTPD
(1)Netscape Communications Server for NT
PERL解释器的漏洞:
Netscape Communications Server中无法识别CGI-BIN下的扩展名及其应用关系,如.pl文件是PERL的代码程序自动调用的解释文件,即使现在也只能把perl.exe文件存放在CGI-BIN目录之下。执行如:/cgi-bin/perl.exe?&my_script.pl。但是这就
给任何人都有执行PERL的可能,当有些人在其浏览器的URL中加上如:/cgi-bin/perl.exe?&-e+unlink+%3C*%3E时,有可能造成删除服务器当前目录下文件的危险。但是,其他如:O′Reilly WebSite或Purveyor都不存在这种漏洞。
CGI执行批处理文件的漏洞:
文件test.bat的内容如下:
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果客户浏览器的URL为:/cgi-bin/test.bat?&dir,则执行调用命令解释器完成DIR列表。这就让访问者有执行其他命令可能性。
(2)O′Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用批处理文件存在着与Netscape同样的漏洞,但是,新版关闭了.bat在CGI中的作用。支持PERL,新版将VB和C作为CGI开发工具。
(3)Microsoft′s IIS Web Server
1996年3月5日前的IIS在NT下的BUG严重,可以任意使用command命令。但之后已修补了该漏洞,你可检查你的可执行文件的建立日期。IIS3.0还存在一些安全BUG,主要是CGI-BIN下的覆给权利。另外,许多Web服务器本身都存在一些安全上的漏洞,都是在版本升级过程中被不断更新了,在此就不一一列举了。
三. 从CGI编程角度考虑安全。
1.采用编译语言比解释语言会更安全些,并且CGI程序应放在独立于HTML存放目录之外的CGI-BIN下,这是为了防止一些非法访问者从浏览器端取得解释性语言的原代码后从中寻找漏洞。
2.在用C来编写CGI程序时应尽量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之类命令。
在由用户填写的form还回CGI时,不要直接调用system()之类函数。
另外,对于数据的加密与传输,目前有SSL、SHTTP、SHEN等协议供大家研究。
四. 防火墙(Firewall)
1.防火墙的概念
防火墙(Firewall)是指一个由软件或由软件和硬件设备组合而成,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络的访问及管理内部用户访问外界网络的权限。
2.防火墙的措施
(1)代理(Proxy)主机"内部网络--代理网关(Proxy Gateway)--Internet"
这种方式是内部网络与Internet不直接通讯。就是内部网络计算机用户与代理网关采用一种通讯方式,即提供内部网络协议(Netbios、TCP/IP等),而网关与Internet之间采取的是标准TCP/IP网络通讯协议。这样使得网络数据包不能直接在内外网络之间进行。内部计算机必须通过代理网关访问Internet,这样容易在代理服务器上对内部网络计算机访问外界计算机进行限制。另外,由于代理服务器两端采用不同协议标准也可以直接阻止外界非法入侵。还有,代理服务器的网关可对数据封包进行验证和对密码进行确认等安全管制。这样,能较好地控制管理两端的用户,起到防火墙作用。
因为这种防火墙措施是采用透过代理服务器进行,在联机用户多时,效率必然受到影响,代理服务器负担很重,所以许多访问Internet的客户软件在内部网络计算机中可能无法正常访问Internet。
(2)路由器加过滤器完成
"内部网络--过滤器(Filter)--路由器(Router)--Internet"
这种结构由路由器和过滤器共同完成从IP地址或域名上对外界计算机访问内部网络的限制,也可以指定或限制内部网络访问Internet。路由器仅对主机上特定的PORT上的数据通讯加以路由,而过滤器则执行筛选、过滤、验证及其安全监控,这样可以很大程度上隔断内外网络间的不正常的访问登录。
[2]安全维护 IIS下 ASP 站点的高级技巧
来源: 互联网 发布时间: 2013-12-24
一. 前言
(仅以此文感谢好友bigeagle。不是他,我可能不用这么担心win2000安全问题的。呵呵!)
人说,一朝被蛇咬,十年怕.....,就是这样。2000年初,当我终于摆脱winnt 4.0 server那可怕的补丁之旅,迈向win2000 server时。我终于可以比较放心我的服务器了。但随着SQL SERVER的补丁出现。我知道,与微软的补丁因缘又开始轮回了。但还好。win2000自动化的管理还是让我放心好多,而以前管理winnt后的失眠症状也逐渐消失了。偶尔还能见到我的"梦"老弟。但这一切都伴随者同bigeagle的一次知心交谈中付之东流了。一次,bigeagle发来qq,给我看了一段代码。我一看就知道这不是bigeagle写的代码,那么烂,不过有点熟悉。再一看,啊?!这不是我的数据库连接字符串吗!!GOD。顿时觉得有一种不祥的预兆。不过还好,这个只是个access的,我还用了一些手段防止他被下载。但这足以让我长时间的失眠又来了。(再次说明,bigeagle不是蛇,他是鹰)
二. 安装过程中的IIS 与 ASP安全防护
(这里只考虑是Web服务器,而不是本地机子上的web开发平台。)
接下来的几天有是几个难熬的日子。我开始重新部署win2000 web服务器的安全策略。找到ASP代码被泄漏的原因。原来,我的补丁每次打得都比较及时的。但一次因为卸载FTP时,重装了IIS,而这之后,我并没有再打补丁而导致最新的漏洞web解析出错。(就是那个较新的漏洞 Translate :f, 用这个加上一些工具就可以看到ASP的代码了。)
首先,开始重装IIS。
这次安装的策略就是安全,够用。去掉一些多余的东西。
1. FTP不要安装了,功能不好,还容易出错,并且漏洞很大。Ftp缺省传输密码的过程可是明文传送,很容易被人截获。(可以考虑用第三方工具。)
2. 一切实例、文档也不要安装了。这是在web服务器上,最好不要这些例子,事实证明可以从这些例子站点突破IIS的防线的。
3. 安装时选择站点目录,建议不要用缺省目录c:\inetpub,最好安装道不是系统盘的盘上。如:
d:\IISWEB,可以考虑自建目录。这样即使IIS被突破,也能尽可能的保护好系统文件了。
4. 不要安装html的远程管理。html的远程管理在winnt 4.0还能用的上,但漏洞比较大,而且比较危险,端口号虽然是随机的,但很容易被人扫描道,从而留下隐患。事实上,我们可以通过另一台服务器上的IIS来管理他。这样比较安全。
5. 多余的服务也不要安了,如NNtp,如果不做新闻组。就不要安了。smtp,如果有更好的邮件服务,也不要装它了。
6. 索引服务器。这个索引真的是很有用,但我没有用过他。否则,你可以用他建立个整个站点的文件搜索的,但现在好像大多数的ASP网页都是一个网页,动态从数据库里查询。所以根本用不上索引服务器了,(不是索引不好,而是本身上面的那种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文件也不会被浏览器直接阅读。
刚才我的老弟"梦"还在问我,有没有办法可以让别人看不到你的连接字符串,你可以试试下面的方法!
1 首先建立连接字符串,并建立一个单独的文件*.inc(要是*.inc的,不要*.ASP的)你把你的连接字符串用变量复制进来。
如:connstr=""Provider=SQLOLEDB.1;Password=passw;...................."
2 然后建立一个文件夹include,放在根目录里。
3 然后每一个文件用下面的办法打开连接。
如:
set conn=server.createobject("adodb.connection")
conn.open connstr
4 最后在iis里把include 文件夹用拒绝读的方法保护起来。你会发现,你的连接可以照常打开,但是如果对方看到你的源代码,他也看不到连接字符串,即使他看到了包含文件路径及名称。他也无法下载,或是用ie 打开。所以,可以保护你的连接字符串了。
这里用的方法是NT权限与 IIS权限的共同审核。我们知道,为了让用户从web上访问道服务器的文件,每个安装了IIS后的服务器都会有两个内置账号。I_USExxxxxx,I_WAMxxxxxx(x为你的机器名),这样你就可以有的放矢地预防某些从你的web网络查看你的必要信息的用户了。
当然,还有一些比较好的文件策略你可以参考一下:
如:CGI (.exe, .dll, .cmd, .pl)Everyone (X)不允许读,只能运行。Administrators(完全控制)System(完全控制)。
所以,你在编写ASP应用程序时,尽量归类好你的目录。方便用IIS和NT进行管理。
如,采用下列结构比较好
d:\web\ASPtest\static (放置*.htm)
d:\web\ASPtest\script (放置*.ASP)
d:\web\ASPtest\include(放置*.inc)
d:\web\ASPtest\images (放置*.gif,*.jpg)
这样你就可以用上面的方法来达到安全目的了。
②、启用日志监测
这是亡羊补牢的好工具,至少你可以用它来监测谁通过web干了什么。当然,你还要保护该日志的权限只能是被系统管理员和超级管理所控制。这样避免某些人的干了某些事而不留痕迹。为了留好现场而又不影响IIS的响应速度,还是建议选则w3c扩展日志格式比较好。(以前别人介绍我用ODBC,看来比较方便,但实际上不是这样。它受到数据库的影响很大,而且速度较慢了)。
可以考虑纪录下一下现场数据:
客户 IP 地址
用户名
方法
URI 资源
HTTP 状态
Win32 状态
用户代理
服务器 IP 地址
服务器端口
如果在一台计算机上有多个 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这些都是索引文件,也可以去掉了。
④、好的安全习惯
要注意多上ms的站点,看看安全公告。(MS的访问量就是这样长期排行世界前三的!)还要准备好一些第三方的工具。如扫描工具,模拟攻击工具。多上安全站点看看。
如果你可以交道一些比较好的黑道朋友(我另一个师兄家家的方法),也是比较好的。(黑道是黑客走的路!)
⑤、防止ASP代码被泄漏
这里只能说是防止,我只有从已经发现的看ASP方法的漏洞入手,现在对于iis4.0则几乎有20种以上的办法,但安装了sp6a后有两种,可以到微软的网站安全公告下载2000-8月后的补丁可以解决。但如果你用了本文上面的方法。可以装到sp6就可以了。
如果是win2000 server,则有两种方法。安了sp1后,还有一种,所以你必须倒微软安全公告栏去下载相应的hotfix。可以解决。
⑥、防止恶意的破坏
这个功能能对付一些被你监测到的不良分子,你可以在日志中或第三方工具看到到底是谁在不停的探测、破坏你的IIS。那么把他列为不收欢迎的黑名单,这样,你再配置站点时可以对其IP或域进行拒绝访问,不过这一过程是要付出代价的,你的IIS要担任反向查找的功能。可能会比较耗时。
⑦、安全的话题
以上还只是IIS与ASP的。如果你要用到数据库,用到远程管理,用到远程连接数据库,那还要分别注意。正如我说的,没有绝对的安全,而这也才是安全的需要。关于安全的话题,没有结束,只有待续。
(仅以此文感谢好友bigeagle。不是他,我可能不用这么担心win2000安全问题的。呵呵!)
人说,一朝被蛇咬,十年怕.....,就是这样。2000年初,当我终于摆脱winnt 4.0 server那可怕的补丁之旅,迈向win2000 server时。我终于可以比较放心我的服务器了。但随着SQL SERVER的补丁出现。我知道,与微软的补丁因缘又开始轮回了。但还好。win2000自动化的管理还是让我放心好多,而以前管理winnt后的失眠症状也逐渐消失了。偶尔还能见到我的"梦"老弟。但这一切都伴随者同bigeagle的一次知心交谈中付之东流了。一次,bigeagle发来qq,给我看了一段代码。我一看就知道这不是bigeagle写的代码,那么烂,不过有点熟悉。再一看,啊?!这不是我的数据库连接字符串吗!!GOD。顿时觉得有一种不祥的预兆。不过还好,这个只是个access的,我还用了一些手段防止他被下载。但这足以让我长时间的失眠又来了。(再次说明,bigeagle不是蛇,他是鹰)
二. 安装过程中的IIS 与 ASP安全防护
(这里只考虑是Web服务器,而不是本地机子上的web开发平台。)
接下来的几天有是几个难熬的日子。我开始重新部署win2000 web服务器的安全策略。找到ASP代码被泄漏的原因。原来,我的补丁每次打得都比较及时的。但一次因为卸载FTP时,重装了IIS,而这之后,我并没有再打补丁而导致最新的漏洞web解析出错。(就是那个较新的漏洞 Translate :f, 用这个加上一些工具就可以看到ASP的代码了。)
首先,开始重装IIS。
这次安装的策略就是安全,够用。去掉一些多余的东西。
1. FTP不要安装了,功能不好,还容易出错,并且漏洞很大。Ftp缺省传输密码的过程可是明文传送,很容易被人截获。(可以考虑用第三方工具。)
2. 一切实例、文档也不要安装了。这是在web服务器上,最好不要这些例子,事实证明可以从这些例子站点突破IIS的防线的。
3. 安装时选择站点目录,建议不要用缺省目录c:\inetpub,最好安装道不是系统盘的盘上。如:
d:\IISWEB,可以考虑自建目录。这样即使IIS被突破,也能尽可能的保护好系统文件了。
4. 不要安装html的远程管理。html的远程管理在winnt 4.0还能用的上,但漏洞比较大,而且比较危险,端口号虽然是随机的,但很容易被人扫描道,从而留下隐患。事实上,我们可以通过另一台服务器上的IIS来管理他。这样比较安全。
5. 多余的服务也不要安了,如NNtp,如果不做新闻组。就不要安了。smtp,如果有更好的邮件服务,也不要装它了。
6. 索引服务器。这个索引真的是很有用,但我没有用过他。否则,你可以用他建立个整个站点的文件搜索的,但现在好像大多数的ASP网页都是一个网页,动态从数据库里查询。所以根本用不上索引服务器了,(不是索引不好,而是本身上面的那种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文件也不会被浏览器直接阅读。
刚才我的老弟"梦"还在问我,有没有办法可以让别人看不到你的连接字符串,你可以试试下面的方法!
1 首先建立连接字符串,并建立一个单独的文件*.inc(要是*.inc的,不要*.ASP的)你把你的连接字符串用变量复制进来。
如:connstr=""Provider=SQLOLEDB.1;Password=passw;...................."
2 然后建立一个文件夹include,放在根目录里。
3 然后每一个文件用下面的办法打开连接。
如:
set conn=server.createobject("adodb.connection")
conn.open connstr
4 最后在iis里把include 文件夹用拒绝读的方法保护起来。你会发现,你的连接可以照常打开,但是如果对方看到你的源代码,他也看不到连接字符串,即使他看到了包含文件路径及名称。他也无法下载,或是用ie 打开。所以,可以保护你的连接字符串了。
这里用的方法是NT权限与 IIS权限的共同审核。我们知道,为了让用户从web上访问道服务器的文件,每个安装了IIS后的服务器都会有两个内置账号。I_USExxxxxx,I_WAMxxxxxx(x为你的机器名),这样你就可以有的放矢地预防某些从你的web网络查看你的必要信息的用户了。
当然,还有一些比较好的文件策略你可以参考一下:
如:CGI (.exe, .dll, .cmd, .pl)Everyone (X)不允许读,只能运行。Administrators(完全控制)System(完全控制)。
所以,你在编写ASP应用程序时,尽量归类好你的目录。方便用IIS和NT进行管理。
如,采用下列结构比较好
d:\web\ASPtest\static (放置*.htm)
d:\web\ASPtest\script (放置*.ASP)
d:\web\ASPtest\include(放置*.inc)
d:\web\ASPtest\images (放置*.gif,*.jpg)
这样你就可以用上面的方法来达到安全目的了。
②、启用日志监测
这是亡羊补牢的好工具,至少你可以用它来监测谁通过web干了什么。当然,你还要保护该日志的权限只能是被系统管理员和超级管理所控制。这样避免某些人的干了某些事而不留痕迹。为了留好现场而又不影响IIS的响应速度,还是建议选则w3c扩展日志格式比较好。(以前别人介绍我用ODBC,看来比较方便,但实际上不是这样。它受到数据库的影响很大,而且速度较慢了)。
可以考虑纪录下一下现场数据:
客户 IP 地址
用户名
方法
URI 资源
HTTP 状态
Win32 状态
用户代理
服务器 IP 地址
服务器端口
如果在一台计算机上有多个 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这些都是索引文件,也可以去掉了。
④、好的安全习惯
要注意多上ms的站点,看看安全公告。(MS的访问量就是这样长期排行世界前三的!)还要准备好一些第三方的工具。如扫描工具,模拟攻击工具。多上安全站点看看。
如果你可以交道一些比较好的黑道朋友(我另一个师兄家家的方法),也是比较好的。(黑道是黑客走的路!)
⑤、防止ASP代码被泄漏
这里只能说是防止,我只有从已经发现的看ASP方法的漏洞入手,现在对于iis4.0则几乎有20种以上的办法,但安装了sp6a后有两种,可以到微软的网站安全公告下载2000-8月后的补丁可以解决。但如果你用了本文上面的方法。可以装到sp6就可以了。
如果是win2000 server,则有两种方法。安了sp1后,还有一种,所以你必须倒微软安全公告栏去下载相应的hotfix。可以解决。
⑥、防止恶意的破坏
这个功能能对付一些被你监测到的不良分子,你可以在日志中或第三方工具看到到底是谁在不停的探测、破坏你的IIS。那么把他列为不收欢迎的黑名单,这样,你再配置站点时可以对其IP或域进行拒绝访问,不过这一过程是要付出代价的,你的IIS要担任反向查找的功能。可能会比较耗时。
⑦、安全的话题
以上还只是IIS与ASP的。如果你要用到数据库,用到远程管理,用到远程连接数据库,那还要分别注意。正如我说的,没有绝对的安全,而这也才是安全的需要。关于安全的话题,没有结束,只有待续。
[3]保护(IIS)web服务器安全的15个技巧
来源: 互联网 发布时间: 2013-12-24
通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问。在过去的几年中,越来越多的黑客、病毒和蠕虫带来的安全问题严重影响了网站的可访问性,尽管Apache服务器也常常是攻击者的目标,然而微软的Internet信息服务(IIS) Web服务器才是真正意义上的众矢之的。
高级教育机构往往无法在构建充满活力、界面友好的网站还是构建高安全性的网站之间找到平衡点。另外,它们现在必须致力于提高网站安全性以面对缩减中的技术预算 (其实许多它们的私有部门也面临着相似的局面)。
正因为如此,我在这里将为预算而头疼的大学IT经理们提供一些技巧,以帮助他们保护他们的IIS服务器。虽然主要是面对大学里的IT专业人员的,但是这些技巧也基本上适用于希望通过少量的财政预算来提高安全性的IIS管理人员。实际上,这里面的一些技巧对拥有强大预算的IIS管理人员也是非常有用的。
首先,开发一套安全策略
保护Web服务器的第一步是确保网络管理员清楚安全策略中的每一项制度。如果公司高层没有把服务器的安全看作是必须被保护的资产,那么保护工作是完全没有意义的。这项工作需要长期的努力。如果预算不支持或者它不是长期IT战略的一部分,那么花费大量时间保护服务器安全的管理员将得不到管理层方面的重要支持。
网络管理员为各方面资源建立安全性的直接结果是什么呢?一些特别喜欢冒险的用户将会被关在门外。那些用户随后会抱怨公司的管理层,管理层人员又会去质问网络管理员究竟发生了什么。那么,网络管理员没办法建立支持他们安全工作的文档,因此,冲突发生了。
通过标注Web服务器安全级别以及可用性的安全策略,网络管理员将能够从容地在不同的操作系统上部署各种软件工具。
IIS安全技巧
微软的产品一向是众矢之的,因此IIS服务器特别容易成为攻击者的靶子。搞清楚了这一点后,网络管理员必须准备执行大量的安全措施。我将要为你们提供的是一个清单,服务器操作员也许会发现这是非常有用的。
1. 保持Windows升级:
你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。
2. 使用IIS防范工具:
这个工具有许多实用的优点,然而,请慎重的使用这个工具。如果你的Web服务器和其他服务器相互作用,请首先测试一下防范工具,以确定它已经被正确的配置,保证其不会影响Web服务器与其他服务器之间的通讯。
3. 移除缺省的Web站点:
很多攻击者瞄准inetpub这个文件夹,并在里面放置一些偷袭工具,从而造成服务器的瘫痪。防止这种攻击最简单的方法就是在IIS里将缺省的站点禁用。然后,因为网虫们都是通过IP地址访问你的网站的 (他们一天可能要访问成千上万个IP地址),他们的请求可能遇到麻烦。将你真实的Web站点指向一个背部分区的文件夹,且必须包含安全的NTFS权限 (将在后面NTFS的部分详细阐述)。
4. 如果你并不需要FTP和SMTP服务,请卸载它们:
进入计算机的最简单途径就是通过FTP访问。FTP本身就是被设计满足简单读/写访问的,如果你执行身份认证,你会发现你的用户名和密码都是通过明文的形式在网络上传播的。SMTP是另一种允许到文件夹的写权限的服务。通过禁用这两项服务,你能避免更多的黑客攻击。
5. 有规则地检查你的管理员组和服务:
有一天我进入我们的教室,发现在管理员组里多了一个用户。这意味着这时某个人已经成功地进入了你的系统,他或她可能冷不丁地将炸弹扔到你的系统里,这将会突然摧毁你的整个系统,或者占用大量的带宽以便黑客使用。黑客同样趋向于留下一个帮助服务,一旦这发生了,采取任何措施可能都太晚了,你只能重新格式化你的磁盘,从备份服务器恢复你每天备份的文件。因此,检查IIS服务器上的服务列表并保持尽量少的服务必须成为你每天的任务。
你应该记住哪个服务应该存在,哪个服务不应该存在。Windows 2000 Resource Kit带给我们一个有用的程序,叫作tlist.exe,它能列出每种情况运行在svchost 之下的服务。运行这个程序可以寻找到一些你想要知道的隐藏服务。给你一个提示:任何含有daemon几个字的服务可能不是Windows本身包含的服务,都不应该存在于IIS服务器上。
6. 严格控制服务器的写访问权限:
这听起来很容易,然而,在大学校园里,一个Web服务器实际上是有很多"作者"的。教职人员都希望让他们的课堂信息能被远程学生访问。职员们则希望与其他的职员共享他们的工作信息。服务器上的文件夹可能出现极其危险的访问权限。将这些信息共享或是传播出去的一个途径是安装第2个服务器以提供专门的共享和存储目的,然后配置你的Web服务器来指向共享服务器。这个步骤能让网络管理员将Web服务器本身的写权限仅仅限制给管理员组。
7. 设置复杂的密码:
我最近进入到教室,从事件察看器里发现了很多可能的黑客。他或她进入了实验室的域结构足够深,以至于能够对任何用户运行密码破解工具。如果有用户使用弱密码 (例如"password"或是 changeme"或者任何字典单词),那么黑客能快速并简单的入侵这些用户的账号。
8. 减少/排除Web服务器上的共享:
如果网络管理员是唯一拥有Web服务器写权限的人,就没有理由让任何共享存在。共享是对黑客最大的诱惑。此外,通过运行一个简单的循环批处理文件,黑客能够察看一个IP地址列表,利用\\命令寻找Everyone/完全控制权限的共享。
9. 禁用TCP/IP协议中的NetBIOS:
这是残忍的。很多用户希望通过UNC路径名访问Web服务器。随着NETBIOS被禁用,他们便不能这么做了。另一方面,随着NETBIOS被禁用,黑客就不能看到你局域网上的资源了。这是一把双刃剑,如果网络管理员部署了这个工具,下一步便是如何教育Web用户如何在NETBIOS失效的情况下发布信息。
10. 使用TCP端口阻塞:
这是另一个残忍的工具。如果你熟悉每个通过合法原因访问你服务器的TCP端口,那么你可以进入你网络接口卡的属性选项卡,选择绑定的TCP/IP协议,阻塞所有你不需要的端口。你必须小心的使用这一工具,因为你并不希望将自己锁在Web服务器之外,特别是在当你需要远程登陆服务器的情况下。要得到TCP端口的详细细节,点击这里。
11. 仔细检查*.bat和*.exe 文件: 每周搜索一次*.bat
和*.exe文件,检查服务器上是否存在黑客最喜欢,而对你来说将是一场恶梦的可执行文件。在这些破坏性的文件中,也许有一些是*.reg文件。如果你右击并选择编辑,你可以发现黑客已经制造并能让他们能进入你系统的注册表文件。你可以删除这些没任何意义但却会给入侵者带来便利的主键。
12. 管理IIS目录安全:
IIS目录安全允许你拒绝特定的IP地址、子网甚至是域名。作为选择,我选择了一个被称作WhosOn的软件,它让我能够了解哪些IP地址正在试图访问服务器上的特定文件。WhosOn列出了一系列的异常。如果你发现一个家伙正在试图访问你的cmd.exe,你可以选择拒绝这个用户访问Web服务器。当然,在一个繁忙的Web站点,这可能需要一个全职的员工!然而,在内部网,这真的是一个非常有用的工具。你可以对所有局域网内部用户提供资源,也可以对特定的用户提供。
13. 使用NTFS安全:
缺省地,你的NTFS驱动器使用的是EVERYONE/完全控制权限,除非你手工关掉它们。关键是不要把自己锁定在外,不同的人需要不同的权限,管理员需要完全控制,后台管理账户也需要完全控制,系统和服务各自需要一种级别的访问权限,取决于不同的文件。最重要的文件夹是System32,这个文件夹的访问权限越小越好。在Web服务器上使用NTFS权限能帮助你保护重要的文件和应用程序。
14.管理用户账户:
如果你已经安装IIS,你可能产生了一个TSInternetUser账户。除非你真正需要这个账户,否则你应该禁用它。这个用户很容易被渗透,是黑客们的显著目标。为了帮助管理用户账户,确定你的本地安全策略没有问题。IUSR用户的权限也应该尽可能的小。
15. 审计你的Web服务器:
审计对你计算机的性能有着较大的影响,因此如果你不经常察看的话,还是不要做审计了。如果你真的能用到它,请审计系统事件并在你需要的时候加入审计工具。如果你正在使用前面提到的WhosOn工具,审计就不那么重要了。缺省地,IIS总是纪录访问, WhosOn 会将这些纪录放置在一个非常容易易读的数据库中,你可以通过Access或是 Excel打开它。如果你经常察看异常数据库,你能在任何时候找到服务器的脆弱点。
总结
上述所有IIS技巧和工具(除了WhosOn以外)都是Windows自带的。不要忘记在测试你网站可达性之前一个一个的使用这些技巧和工具。如果它们一起被部署,结果可能让你损失惨重,你可能需要重启,从而遗失访问。
最后的技巧: 登陆你的Web服务器并在命令行下运行netstat -an。观察有多少IP地址正尝试和你的端口建立连接,然后你将有一大堆的调查和研究要做了。
高级教育机构往往无法在构建充满活力、界面友好的网站还是构建高安全性的网站之间找到平衡点。另外,它们现在必须致力于提高网站安全性以面对缩减中的技术预算 (其实许多它们的私有部门也面临着相似的局面)。
正因为如此,我在这里将为预算而头疼的大学IT经理们提供一些技巧,以帮助他们保护他们的IIS服务器。虽然主要是面对大学里的IT专业人员的,但是这些技巧也基本上适用于希望通过少量的财政预算来提高安全性的IIS管理人员。实际上,这里面的一些技巧对拥有强大预算的IIS管理人员也是非常有用的。
首先,开发一套安全策略
保护Web服务器的第一步是确保网络管理员清楚安全策略中的每一项制度。如果公司高层没有把服务器的安全看作是必须被保护的资产,那么保护工作是完全没有意义的。这项工作需要长期的努力。如果预算不支持或者它不是长期IT战略的一部分,那么花费大量时间保护服务器安全的管理员将得不到管理层方面的重要支持。
网络管理员为各方面资源建立安全性的直接结果是什么呢?一些特别喜欢冒险的用户将会被关在门外。那些用户随后会抱怨公司的管理层,管理层人员又会去质问网络管理员究竟发生了什么。那么,网络管理员没办法建立支持他们安全工作的文档,因此,冲突发生了。
通过标注Web服务器安全级别以及可用性的安全策略,网络管理员将能够从容地在不同的操作系统上部署各种软件工具。
IIS安全技巧
微软的产品一向是众矢之的,因此IIS服务器特别容易成为攻击者的靶子。搞清楚了这一点后,网络管理员必须准备执行大量的安全措施。我将要为你们提供的是一个清单,服务器操作员也许会发现这是非常有用的。
1. 保持Windows升级:
你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。
2. 使用IIS防范工具:
这个工具有许多实用的优点,然而,请慎重的使用这个工具。如果你的Web服务器和其他服务器相互作用,请首先测试一下防范工具,以确定它已经被正确的配置,保证其不会影响Web服务器与其他服务器之间的通讯。
3. 移除缺省的Web站点:
很多攻击者瞄准inetpub这个文件夹,并在里面放置一些偷袭工具,从而造成服务器的瘫痪。防止这种攻击最简单的方法就是在IIS里将缺省的站点禁用。然后,因为网虫们都是通过IP地址访问你的网站的 (他们一天可能要访问成千上万个IP地址),他们的请求可能遇到麻烦。将你真实的Web站点指向一个背部分区的文件夹,且必须包含安全的NTFS权限 (将在后面NTFS的部分详细阐述)。
4. 如果你并不需要FTP和SMTP服务,请卸载它们:
进入计算机的最简单途径就是通过FTP访问。FTP本身就是被设计满足简单读/写访问的,如果你执行身份认证,你会发现你的用户名和密码都是通过明文的形式在网络上传播的。SMTP是另一种允许到文件夹的写权限的服务。通过禁用这两项服务,你能避免更多的黑客攻击。
5. 有规则地检查你的管理员组和服务:
有一天我进入我们的教室,发现在管理员组里多了一个用户。这意味着这时某个人已经成功地进入了你的系统,他或她可能冷不丁地将炸弹扔到你的系统里,这将会突然摧毁你的整个系统,或者占用大量的带宽以便黑客使用。黑客同样趋向于留下一个帮助服务,一旦这发生了,采取任何措施可能都太晚了,你只能重新格式化你的磁盘,从备份服务器恢复你每天备份的文件。因此,检查IIS服务器上的服务列表并保持尽量少的服务必须成为你每天的任务。
你应该记住哪个服务应该存在,哪个服务不应该存在。Windows 2000 Resource Kit带给我们一个有用的程序,叫作tlist.exe,它能列出每种情况运行在svchost 之下的服务。运行这个程序可以寻找到一些你想要知道的隐藏服务。给你一个提示:任何含有daemon几个字的服务可能不是Windows本身包含的服务,都不应该存在于IIS服务器上。
6. 严格控制服务器的写访问权限:
这听起来很容易,然而,在大学校园里,一个Web服务器实际上是有很多"作者"的。教职人员都希望让他们的课堂信息能被远程学生访问。职员们则希望与其他的职员共享他们的工作信息。服务器上的文件夹可能出现极其危险的访问权限。将这些信息共享或是传播出去的一个途径是安装第2个服务器以提供专门的共享和存储目的,然后配置你的Web服务器来指向共享服务器。这个步骤能让网络管理员将Web服务器本身的写权限仅仅限制给管理员组。
7. 设置复杂的密码:
我最近进入到教室,从事件察看器里发现了很多可能的黑客。他或她进入了实验室的域结构足够深,以至于能够对任何用户运行密码破解工具。如果有用户使用弱密码 (例如"password"或是 changeme"或者任何字典单词),那么黑客能快速并简单的入侵这些用户的账号。
8. 减少/排除Web服务器上的共享:
如果网络管理员是唯一拥有Web服务器写权限的人,就没有理由让任何共享存在。共享是对黑客最大的诱惑。此外,通过运行一个简单的循环批处理文件,黑客能够察看一个IP地址列表,利用\\命令寻找Everyone/完全控制权限的共享。
9. 禁用TCP/IP协议中的NetBIOS:
这是残忍的。很多用户希望通过UNC路径名访问Web服务器。随着NETBIOS被禁用,他们便不能这么做了。另一方面,随着NETBIOS被禁用,黑客就不能看到你局域网上的资源了。这是一把双刃剑,如果网络管理员部署了这个工具,下一步便是如何教育Web用户如何在NETBIOS失效的情况下发布信息。
10. 使用TCP端口阻塞:
这是另一个残忍的工具。如果你熟悉每个通过合法原因访问你服务器的TCP端口,那么你可以进入你网络接口卡的属性选项卡,选择绑定的TCP/IP协议,阻塞所有你不需要的端口。你必须小心的使用这一工具,因为你并不希望将自己锁在Web服务器之外,特别是在当你需要远程登陆服务器的情况下。要得到TCP端口的详细细节,点击这里。
11. 仔细检查*.bat和*.exe 文件: 每周搜索一次*.bat
和*.exe文件,检查服务器上是否存在黑客最喜欢,而对你来说将是一场恶梦的可执行文件。在这些破坏性的文件中,也许有一些是*.reg文件。如果你右击并选择编辑,你可以发现黑客已经制造并能让他们能进入你系统的注册表文件。你可以删除这些没任何意义但却会给入侵者带来便利的主键。
12. 管理IIS目录安全:
IIS目录安全允许你拒绝特定的IP地址、子网甚至是域名。作为选择,我选择了一个被称作WhosOn的软件,它让我能够了解哪些IP地址正在试图访问服务器上的特定文件。WhosOn列出了一系列的异常。如果你发现一个家伙正在试图访问你的cmd.exe,你可以选择拒绝这个用户访问Web服务器。当然,在一个繁忙的Web站点,这可能需要一个全职的员工!然而,在内部网,这真的是一个非常有用的工具。你可以对所有局域网内部用户提供资源,也可以对特定的用户提供。
13. 使用NTFS安全:
缺省地,你的NTFS驱动器使用的是EVERYONE/完全控制权限,除非你手工关掉它们。关键是不要把自己锁定在外,不同的人需要不同的权限,管理员需要完全控制,后台管理账户也需要完全控制,系统和服务各自需要一种级别的访问权限,取决于不同的文件。最重要的文件夹是System32,这个文件夹的访问权限越小越好。在Web服务器上使用NTFS权限能帮助你保护重要的文件和应用程序。
14.管理用户账户:
如果你已经安装IIS,你可能产生了一个TSInternetUser账户。除非你真正需要这个账户,否则你应该禁用它。这个用户很容易被渗透,是黑客们的显著目标。为了帮助管理用户账户,确定你的本地安全策略没有问题。IUSR用户的权限也应该尽可能的小。
15. 审计你的Web服务器:
审计对你计算机的性能有着较大的影响,因此如果你不经常察看的话,还是不要做审计了。如果你真的能用到它,请审计系统事件并在你需要的时候加入审计工具。如果你正在使用前面提到的WhosOn工具,审计就不那么重要了。缺省地,IIS总是纪录访问, WhosOn 会将这些纪录放置在一个非常容易易读的数据库中,你可以通过Access或是 Excel打开它。如果你经常察看异常数据库,你能在任何时候找到服务器的脆弱点。
总结
上述所有IIS技巧和工具(除了WhosOn以外)都是Windows自带的。不要忘记在测试你网站可达性之前一个一个的使用这些技巧和工具。如果它们一起被部署,结果可能让你损失惨重,你可能需要重启,从而遗失访问。
最后的技巧: 登陆你的Web服务器并在命令行下运行netstat -an。观察有多少IP地址正尝试和你的端口建立连接,然后你将有一大堆的调查和研究要做了。
最新技术文章: