热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

在IIS6中安装WebKnight的方法(iis防火墙)

由于WebKnight的配置很多,这里我只写一下推荐配置,个人观点,仅供参考,如果更好的建议,期待您的分享
如何在IIS6中安装WebKnight?

我们的 WebServer 是 IIS6,所以这里只介绍IIS6的安装,我见有些帖子介绍WebKnight的安装时,说只有把IIS调整成IIS5.0隔离模式(IIS5.0 isolation mode)才可以,但实际上WebKnight的官方网站有介绍不需要此操作即可安装的办法,但这需要放弃WebKnight的全局配置特性,相比放弃IIS6.0,我更愿意放弃WebKnight的这个特性:

首先下载一份WebKnight,下载地址:http://aqtronix.com/?PageID=99#Download(注,这不是直接下载地址,点开后需要再点击WebKnight 2.2 (Release date: 2008.09.02),以防更新后各位朋友还下载旧的版本)
解压后有2个目录Setup、Source,其中Source是源码,我们这里只需要安装,进入Setup
进入Setup后还有2个目录:w32代表32位;x64代表64位;按照您服务器的操作系统来选择即可,我这里选x64(由于WebKnight的32位、64位文件结构完全相同,所以下面的内容完全适用与32位操作系统)
确保自己的每一个网站都运行在独立的应用程序池中;
在WebKnight的配置程序中

取消选择“Global Filter Capabilities”下的“Is Installed As Global Filter”
选择“Logging”下的“Per Process Logging”,这样每一个应用程序池的实例都会加载一个单独的WebKnight实例

确保Windows用户NETWORK SERVICE(或您设定的应用程序池的其他用户)有WebKnight文件夹的修改权限
拷贝第3步中x64文件夹中的所有文件到服务器上(如:F:\WebKnight\WebSite1\),注意:每一个网站均需要一个独立完整的WebKnight,不可共用
打开IIS Manager
在需要安装WebKnight的网站上点击右键 > 属性 > ISAPI filters
点击添加 > Filter Name随意,如(WebKnight),Excutable选择WebKnight目录下的WebKnight.dll(注意:要选网站所属的WebKnight目录,不要选错)
点击确定,完成安装
点击WebKnight目录中的Config.exe,具体配置方法见下一节,配置完成后再进行下一步,切记
在以上操作后,重新启动IIS(重启IIS其实可以避免,只需将配置WebKnight的网站的应用程序池停止再启动即可)

如何配置WebKnight

声明:由于WebKnight的配置很多,这里我只写一下推荐配置,个人观点,仅供参考,如果更好的建议,期待您的分享

在WebKnight目录中(如:F:\WebKnight\WebSite1\),双击Config.exe开始配置,在弹出的Open Configuration对话框中,选择WebKnight.xml
Scanning Engine 扫描引擎

无需更改默认配置

Incident Response Handling 已发生攻击的处理

如果您希望有人攻击时看到的页面是WebKnight目录中的denied.htm,选择Response Directly即可;
如果您希望有人攻击时看到的页面是您网站下的某个文件(如:http://www.xxx.com/Error/Denied.htm),选择Response Redirect,并在下面的Response Redirect URL中填写您网站下文件的路径(如:/Error/Denied.htm)
如果您只希望记录攻击,但不希望中断用户的访问,您可以选择Response Log Only

Logging 日志

如果日志量特别大,请取消选择Enabled,否则很有可能磁盘可用空间不知不觉就没有了,还有可能有比较严重的磁盘I/O性能问题
日志默认是存储在WebKnight目录下的LogFiles文件夹中,如果您想改变该路径,可以修改Log Directory的值
WebKnight每天的日志是由不同文件存储的,默认保存28天的数据,您可以在Log Retention中修改该值

Connection 连接

无需更改默认配置

Authentication 安全认证

无需更改默认配置

Request Limits 请求限制

取消选择Limit Content Length(Content-Length是header中的一个值,代表所请求元素的尺寸),我个人觉得这项没有必要选择,因为元素尺寸有可能很大
取消选择Limit URL(即限制URL的长度),原因同上,URL也可能很长
取消选择Limit Query String(即查询字符串的长度),原因同上,查询字符串也可能很长
取消选择Limit HTTP Version(即HTTP版本),我感觉没有必要限制HTTP版本,有可能会造成使用过旧版本浏览器的用户无法访问自己的网站
取消选择Use Max Headers(即限制Headers中各项的最大长度)。我一开始是选择了该项的,但在我的实践中,由于我们用了网站流量统计、广告合作代码等,导致Headers中的一些项超长,阻止了相当多的正常请求,所以我想干脆一劳永逸,取消选择了该项

URL Scanning 网址扫描

取消选择RFC Compliant URL、RFC Compliant HTTP Url、Deny Url HighBitShellCode,勾选了这三项,很多不太标准的URL格式就会无法访问,比如包含中文的URL
取消选择Deny URL Backslash,因为我们网站中,“\”在URL里面也会用到
在URL Denied Sequences中,描述了拒绝请求的一些URL字符串,如果其中有您网站中正在使用的,可以删除,方法是选中要删除的项目,右键,点击Remove Selected

Mapped Path 映射目录

Use Allowed Paths,这项保持勾选,因为这项可以限制Web程序可以访问的服务器上的物理路径,我们需要做的只是在下面的Allowed Paths中添加上我们自己的网站物理路径,比如F:\WebSite1,添加方法是在任意项上点击右键 > Insert Item > 输入物理路径后,回车即可

Requested File 被请求的文件

在Denied Files(拒绝请求的文件)中,去掉网站允许请求的文件,如:log.htm、logfiles
在Denied Extensions(拒绝请求的后缀名)中,去掉网站循序请求的后缀名,如:shtm

Robots 蜘蛛程序

无需更改默认配置

Headers 头信息

Server Header中,可以修改Header中的Server字段的值,我觉得这个也可以改改,挺好玩的
为了防止组织合法的请求,取消勾选RFC Compliant Host Header、Use Denied Headers

ContentType 内容类型

取消选择Use Allowed Content Types,若选中,则无法上传文件

COOKIE 这个就不需要翻译成中文了吧:)

无需更改默认配置

User Agent 用户代理/客户端

取消勾选Deny User Agent Empty、Deny User Agent Non RFC,否则有部分合法访问会被拒绝

Referrer 访问来路

取消选择Use Referrer Scanning,因为我觉得一个访问的来路可能不会有太严重的安全问题,还是为了尽量让合法的请求通过,我选择取消勾选该项

Methods HTTP请求方法

无需更改默认配置

Querystring 查询字符串

无需更改默认配置

Global Filter Capabilities 全局过滤功能

取消勾选Is Installed As Global Filter,切记,该项一定要取消选择,否则WebKnight不能正产工作

SQL Injection SQL 注入

无需更改默认配置

Web Applications Web应用程序

勾选Allow File Uploads,否则上传文件的功能会失效
勾选Allow Unicode
勾选Allow ASP NET
如果您的网站需要支持ASP,勾选Allow ASP
同理,您的网站需要支持什么,请您自己选择需要勾选的项

修改后,记得通过菜单栏File > Save 来保存配置(或通过快捷键Ctrl+S),保存配置后,就可以重启IIS或应用程序池来启用WebKnight了
提示:您可以通过查看WebKnight的日志,来查看哪些合法请求被阻止了,然后修改相应的配置

注意,安装时必须启用IIS5.0隔离模式。否则加载dll失败。。
开启IIS5.0隔离模式具体位置:IIS管理器->网站->右键属性->服务->以 IIS5.0 隔离模式运行 WWW服务 (打上钩)->应用
重启IIS。。然后安装webknight...
32位系统 WebKnightSetupw32 目录下 WebKnight.msi
64位系统 WebKnightSetupx64 目录下 WebKnight.msi
安装可以默认,也可以你自己自定义路径...设置时,到已安装好目录下运行:Config.exe
然后选择 WebKnight.xml 具体安全设置,以后再一一介绍。真希望有能能翻译个过来。。
再说一次,必须要开启IIS5.0隔离模式,才能成功加载防火墙。。

如果附件里的这个DLL加载不成功可以安装官方的,官方下载地址http://aqtronix.com/?PageID=99#Download
推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
author-avatar
651404449_724afc
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有