WebKnight使用手册shangyan@live.com1目录1.WebKnight简介.......................................................22.WebKnight特性.......................................................23.WebKnight的安装和卸载.......................................33.1安装WebKnight...................................................33.2卸载WebKnight...................................................74.WebKnigth设置.......................................................85.FAQ.........................................................................116.引用说明................................................................14WebKnight使用手册shangyan@live.com21111.WebKnightWebKnightWebKnightWebKnight简介WebKnight是由AQTRONIX()开发的一款基于IIS服务器的免费的Web应用程序防火墙。它是一款开源的软件,基于GNU协议开放源代码。它作为ISAPI过滤器运行。WebKnight被安装在IIS服务器的前端,根据由Web管理员设置的过滤规则,过滤IIS接收到的所有Web请求。它通过阻止不安全的Web请求(如SQL注入攻击等),来保护Web服务器的安全。WebKnight并不是根据攻击行为模式的数据库进行识别,那样的话数据库要定期更新;相反的,WebKnight使用每种攻击行为的关键字作为过滤规则进行攻击行为的过滤判断。这种方法保证了Web服务器对已知或未知的攻击行为都具有安全性。2222.WebKnightWebKnightWebKnightWebKnight特性�低负载。和其他的防火墙相比,因为WebKnight和Web服务器的关系更紧密(因为它是一个ISAPI过滤器),所以不会服务器造成太大的负载。�开源。WebKnight是一款基于GNU协议的开源软件。�日志功能。被阻止的请求将会记录到日志中,同样,所有允许的请求也将记录下来。WebKnight也可以以LogOnly的模式运行,此时将只记录日志而对请求不做任何阻止。�自由定制。WebKnight可以根据不同需要灵活定制。�与基于Web的程序兼容。WebKnight与基于Web的程序相兼容,如FrontpageExtensions,WebDAV,Flash,ColdFusion,OutlookWebAccess,OutlookMobileAccess,SharePoint等。�SSL保护。与传统防火墙不同的是,WebKnight可以保护使用HTTPS加密WebKnight使用手册shangyan@live.com3的会话。�HTTP错误记录。WebKinght可以被配置用来记录来自Web服务器的HTTP错误,如‘404NotFound’的常见错误。这么做是为了检测脚本或攻击中的错误。也可以用来发现网站中失效的链接或配置的错误。�实时更新。对WebKnight配置的改变不需要重新启动Web服务器,所以可以做到不妨碍用户的使用。3333.WebKnightWebKnightWebKnightWebKnight的安装和卸载3.13.13.13.1安装WebKnightWebKnightWebKnightWebKnightWebKnight的安装有三种方法,WindowsInstaller,install.vbs脚本,和手工安装。如果Web服务器上运行有多个网站,WebKnight可被作为全局过滤器(globalfilter)安装;也可以为每个网站安装一个独立的过滤器(sitefilter)。当使用WindowsInstaller和”install.vbs”脚本安装时,默认是作为全局过滤器(globalfilter)安装的。下面详细介绍安装步骤。(1)下载WebKnight。(2)解压缩下载到的压缩包,可以得到如图所示的目录结构。(3)Setup文件夹下为安装所需的文件,Source为WebKnight的源代码。双击Setup文件夹,根据自己的需要选择32位版本或64位版本。两个版本安装时区别不大,这里以32位版本为例,里面的文件如下图WebKnight使用手册shangyan@live.com4所示。(4)双击”WebKnight.msi”进行安装,或双击”install.vbs”运行该脚本进行安装(卸载时运行”uninstall.vbs”脚本)。下图是使用WebKnight.msi进行安装的界面。(5)在点击了同意许可后,可以选择安装的类型。通常,选择”Typical”即可。WebKnight使用手册shangyan@live.com5(6)接下来,WebKnight将会自动安装。安装完成后,将会出现一对话框提示安装成功。(7)WebKnight默认被安装到C:\ProgramFiles\AQTRONIXWebKnight下。请牢记这个目录位置,因为包含了dll文件(WebKnight.dll)、配置程序(Config.exe)、日志分析工具(LogAnalysis.exe)和日志文件。(8)重新启动IIS服务器。WebKnight使用手册shangyan@live.com6(9)如果WebKnight被成功的安装并重新启动了IIS服务器,在网站属性的ISAPIFilter标签页中可以看到WebKnight被成功加载(绿色向上箭头)。WebKnight可以按照上述的步骤被轻松的安装到IIS服务器中。如果想为不同的网站安装独立的过滤器,或自动安装无法使用,则需要按照下述步骤安装。�手工安装全局过滤器①在服务器上建立一个本地路径,例如:C:\ProgramFiles\AQTRONIX,复制Setup文件夹下所有文件至这个新建的文件夹下。②打开IIS服务器。③右键单击服务器名(不是网站名),选择属性。④选择ISAPIFilter选项卡,单击添加按钮。⑤在弹出的对话框中填写过滤器的名字和dll文件的路径。⑥单击OK关闭对话框。WebKnight使用手册shangyan@live.com7⑦重新启动IIS服务器。�手工安装独立过滤器①在服务器上建立一个本地路径,例如:C:\ProgramFiles\AQTRONIX\W3SVC1,复制Setup文件夹下所有文件到这个新建的文件夹下(每个网站一个独立的文件夹,例如W3SVC1)。②打开IIS服务器。③右键单击网站名(不是服务器名),选择属性。④选择ISAPI选项卡,单击添加按钮。⑤在弹出的对话框中填写过滤器的名字和dll文件的路径。⑥单击OK关闭对话框。⑦运行Config.exe,将”IsInstalledAsGlobalFilter”按钮取消选中。⑧重新启动IIS服务器。3.23.23.23.2卸载WebKnightWebKnightWebKnightWebKnight欲卸载WebKnight,选择下列三种方法之一,然后重新启动IIS。(1)使用WindowsInstaller自动卸载(运行WebKnight.msi)。如果WebKnight安装在默认路径,运行WebKnight.msi后出现Modify、Repair、Remove选项,选择Remove即可卸载WebKnight。WebKnight使用手册shangyan@live.com8(2)使用脚本自动卸载(运行uninstall.vbs)。如果WebKnight安装在默认路径,运行C:\ProgramFiles\AQTRONIXWebKnight\uninstall.vbs脚本将自动卸载WebKnight。(3)手动卸载。如同手动安装的过程一样,打开IIS服务器,选择服务器名或网站名,右键单击选择属性,在ISAPIFilter选项卡中,选择WebKnight,然后单击删除按钮。当按上述步骤卸载WebKnight后,应重新IIS服务器。4444.WebKnigthWebKnigthWebKnigthWebKnigth设置WebKinght提供了对Web攻击和尝试访问未授权文件的拦截功能。这些功能是安装时默认提供的,但有时候会阻止正常的Web访问。因此,WebKnight在安装后需要对其进行自定义的设置,以使它更适合用户的使用环境。实际上,相较WebKnight使用手册shangyan@live.com9安装而言,更多的时间和精力应花在配置上。配置的过程也提供了一次学习不同Web攻击模式的机会。首先,在安装WebKnight后,应访问相应的网站,以检查Web请求是否正常执行和响应。如果没有发现任何阻止,应检查WebKnight日志文件中的相关规则。如果需要的话修改规则。如果WebKnight被安装在默认目录,那么日志文件和配置程序位于:�日志文件C:\ProgramFiles\AQTRONIXWebKnight\LogFiles�配置程序C:\ProgramFiles\AQTRONIXWebKnight\Config.exe在安装WebKnight后,访问该网站,可能会出现如下的警告页面:如果WebKnight根据过滤规则阻止了请求,这个默认的警告页面将发送到网站的浏览者。如果正常的访问请求也出现了警告界面,那么请打开日志文件,找到“BLOCKED”信息和相应的规则。然后,在配置文件中关闭该项规则。如果是安装在默认文件夹下,“C:\ProgramFiles\AQTRONIXWebKnight\LogFiles”文件夹将在IIS重新启动后建立,日志文件也将在这个文件夹下按照日期命名建立。WebKnight使用手册shangyan@live.com10默认的日志文件的头域如下所示:假设我们的正常Web访问被阻止,在日志文件找到如下的日志项:05:57:42;W3SVC31;OnPreprocHeaders;xxx.xxx.207.85;;GET;/admin/img/deffortune.jpg;BLOCKED:'/admin'notallowedinURL;HTTP/1.1;ASPSESSIONIDAQDBDDAD=NACAJJBAPJACHHPHNIPGDKCH上述的日志项告诉我们WebKnight的规则中禁止访问/admin文件夹,于是访问/admin/img/deffortune.jpg的请求根据该规则也被阻止。Web访问请求被阻止是因为原始页面被设计为从/admin目录下读取图片文件。因此,应将原来用户访问的页面修改为不访问/admin目录。或者,我们可以修改WebKnight的设置,使访问/admin的请求不被阻止。基于日志项的定制可以帮助改进现有Web服务WebKnight使用手册shangyan@live.com11的设计。下面的网址提供了关于WebKnight的安装、配置、常见问题的解答。在下一节中也提出了一些容易出现的问题和解决方法。=114在解读日志项时,应考虑到默认的时区是GMT/UTC。如果想使用本地时间,请将“USEGMT”选项取消选中。WebKnight提供了一个图像化界面Config.exe,可以方便用户自定义配置。各