zoukankan      html  css  js  c++  java
  • 几个7层过滤的东西

    转自: http://blog.chinaunix.net/u/311/showart_463796.html

    HiPPIE 最后一次更新是2008年。可以用来做socks4/5协议的检测。

     IPP2P

    l7filter

    目前 Linux 有两种内容匹配模块,ipp2p 和 l7-filter,两者功能类似,具体工作原理却大不相同

    ipp2p:
    ipp2p 的匹配方式是 per packet match 的原则,会匹配 iptables 规则引导过来的每一个数据包。
    ipp2p 的匹配精度很高,每一种应用的匹配都是用具体代码来实现的。

    l7-filter:
    l7-filter 的匹配原则是只匹配每一个 connection 的前 10 个包或者前 2048 个字节(可以通过 procfs 修改)。
    匹配精度比较低,匹配方式使用的是正则表达式的形式,基于内核级的正则匹配库是 l7-filter 的创始人 Matthew Strait 通过一个开源的 regexec 库修改而来的,但比较遗憾的是,有些具体特征用正则表达式是无法写出来的
    比如 QQLive 的规则:
      0xfe 0×02 0×05 0×05 0×02
      0xfe 0×06 0×00 0×00 0×06
      0xfe 0×00 0×80 0×80 0×00
    可以看出这样一个规律:
      data[0] = 0xfe
      data[1] = data[4]
      data[2] = data[3]
    由于这种规律无法用正则表达出来(其中还包括 l7-filter 不能识别的 0×00),因此 l7-filter 做不到对这种东西的匹配,但 l7-filter 却有一个优势,就是只匹配每个 connection 的前一段数据,匹配到了就不再匹配,这样就不用对每个数据包都过一遍了。

    下面对 ipp2p 和 l7-filter 做一下匹配精度、匹配速度、协议添加等方面的具体对比

        名称                ipp2p                 l7-filter

      匹配精度               非常高                   很低

      匹配速度         处理每个包的速度很快       处理每个包都非常慢
                      即使这个连接匹配到了       一旦匹配到就不再匹配
                      下一个也要继续匹配         这个连接的其他包

    添加协议方便度     每次修改都需要重编模块      只需修改正则表达式即可

      流量控制           不适用于流量控制        由于结合了 conntrack 的
                                              特性所以非常适于流控

    当然了,由于源代码都给我们了,所以完全可以根据 ipp2p 和 l7-filter 的特性,结合两者的优点开发出一个新的模块匹配精度高、效率高、添加协议方便、适合做流控的 platinum 模块来 ^_^

  • 相关阅读:
    微信小程序 使用async await
    CSS currentColor 变量的使用
    wn.run万能命令
    (13)浮动布局(控制盒模型在页面的什么位置 什么是清浮动)
    (0)前端总结(HTML + CSS + JQ)
    (12)页面的布局(浮动布局)
    (11)盒模型
    (10)背景图片操作
    (9)字体操作
    (8)伪类选择器和鼠标悬停动画效果
  • 原文地址:https://www.cnblogs.com/Safe3/p/1848538.html
Copyright © 2011-2022 走看看