kangle访问控制

来自kangle
跳转至: 导航搜索

目录

kangle访问控制介绍

相信很多人都熟悉iptables。kangle的访问控制理念来自linux的iptables防火墙,kangle拥有功能最小化的匹配模块和标记模块,通过组合,反转等可以实现用户最复杂的需求;最小化的匹配模块和标记模块犹如最小块的积木,独具匠心的玩家,总是能用小积木搭建出千变万化的造形。以下是kangle的访问控制概念。

  • Kangle的访问控制分为请求控制(request标签)和回应控制(response标签)。
  • 请求控制(request)在最前面,用户发送请求过来时即进行请求控制,回应控制(response)发生在数据发送给用户之前,即进行回应控制。
  • Kangle详细数据流向图请查看:http://www.kangleweb.com/thread-7224-1-1.html
  • 每个控制由一张或多张表(table)加一个默认目标(action)组成,其中BEGIN表和回应控制的POSTMAP表是系统内建表,所有控制从BEGIN开始,回应控制的POSTMAP表例外,在完成由url到物理文件映射进入POSTMAP表。
  • 每张表(table)可以定义若干条"链(chain)",在一张表中控制按顺序从上到下对规则链进行处理。
  • 规则链(chain)由一个目标(action)和任意个匹配模块(acl)和任意个标记模块(mark)组成,其中所有匹配模块和标记模块之间是AND(逻辑与)的关系,只有全部匹配,整个规则链才是匹配的。
  • 访问控制分全局的访问控制(定义在config标签下),和虚拟主机的访问控制控制(定义在vh标签下,或者单独定义一个访问控制文件,由vh里面的access指定文件名),一个请求首先要进行全局性的访问控制检查,如果目标是虚拟主机,再由相应的虚拟主机的访问控制检查。
  • 如果请求匹配了一个规则链中的所有匹配模块(除非指定OR的关系,从kangle3.1.7开始,支持逻辑或的关系),则进入标记模块对请求做简单的处理,除非该标记模块返回失败,之后就按该条规则链指定的目标处理。如果目标是继续,则还要进行下一条规则链处理。
  • 某些标记模块会对规则链的目标做出修改,如重定向,防攻击。这种情况下,规则链设置的目标无效。

request(请求控制)和response(回应控制)

定义请求控制和回应控制规则,全局控制可以在config标签下,虚拟主机自定义控制在vh标签下。

request语法:

<request action='默认目标' >
  表定义...
</request>

response语法:

<response action='默认目标' >
  表定义...
</response>

table(表)

定义一个表,可以在request标签和response标签下。 语法:

定义链

chain(规则链)

定义一个规则链,在table标签下,语法:

<chain action='目标' name='链名字'>
 定义匹配模块和标记模块
</chain>
  • 所有匹配模块和标记模块之间是AND(逻辑与)的关系,只有全部匹配,整个规则链才是匹配的。
请求控制和回应控制[匹配模块和标记模块介绍]
Kangle匹配模块和标记模块介绍请查看