设为首页 收藏本站
查看: 690|回复: 0

[经验分享] 使用Cisco IOS FPM彻底禁用QQ-bit流

[复制链接]

尚未签到

发表于 2018-7-14 13:40:21 | 显示全部楼层 |阅读模式
一、概述
    在不受限制或没有特别设置的情况下,QQ使用UDP数据包进行通信,协议端口缺省为4000和8000,当被常规的ACL过滤后,QQ会采用基于TCP的80和443端口进行通信,因此不能仅根据网络报文端口准确识别QQ流量,而传统的ACL在功能上也有很大的限制,无法禁止这种采用公知端口的私有协议通信。

    或者过滤QQ登录服务器的IP地址,但腾讯公司的服务器很多,并且每增加一台都需要及时获取到它的IP,然后加到ACL里,所以这也不是一个有效的办法。

    由此可见,要彻底禁止QQ的话,需要做两件事情:

    1. 根据QQ应用协议数据流特征来识别其所属协议类型,即找出其应用协议的特征码。

    2. 使用更为灵活的包过滤工具匹配QQ数据包,并执行过滤操作。

      Cisco推出的灵活包匹配(FPM)为高级用户提供了部署已知***向量(通过过滤数据包阻止网络***)的基于网络阻塞的方法。FPM作为更全面和定制的包过滤器,是下一代访问控制列表(ACL)模式匹配工具,此技术提供了在包的任意比特、任意深度进行匹配的能力。它消除了以前有限包检查的具体字段的限制。
二、抓取QQ应用协议特征码
      1. UDP数据包
      打开Wireshark抓包工具,然后运行QQ进行登录,很快Wireshark就抓到协议为UDP和OICQ的数据包。
  首先定位到IP协议头,看到头长度为20byte,后面UDP头长度8个byte,其中包括端口号4000和8000,之后就是QQ信息的数据字段了,开始1个byte为0x02,是OICQ包的flag,后面2个byte:0x262f标识QQ的版本号,表示我的QQ版本是2011正式版;接着2个byte的是命令字段,用于QQ登录的命令取值为0xba。所以,我们把offset(偏移量)为28的协议flag:0x02和offset为31的命令值:0xba定义为特征码。
      2. TCP数据包
      不管是使用HTTP还是SSL协议,QQ消息里都有flag+版本字段:0x02262f,用于登录的消息字段是前面相邻的0x0059,所以把特征码定义为0x005902,offset 40。
三、设置FPM
  class-map type access-control udp_pkts

    match start l3-start offset 9>  定义所有UDP数据包:IP头中的协议字段值为17
  class-map type access-control tcp_pkts

    match start l3-start offset 9>  定义所有TCP数据包:IP头中的协议字段值为6
  class-map type access-control match-all qq_udp

    match start l3-start offset 28>
    match start l3-start offset 31>  定义QQ登录UDP数据包的特征码
  class-map type access-control match-all qq_tcp

    match start l3-start offset 40>  定义QQ登录TCP数据包的特征码
  policy-map type access-control drop_qq_udp
    class qq_udp
        log
        drop
  设置丢弃QQ登录UDP数据包的策略,当匹配特征码时记录日志并丢弃。
  policy-map type access-control drop_qq_tcp
    class qq_tcp
        log
       drop
  设置丢弃QQ登录TCP数据包的策略,当匹配特征码时记录日志并丢弃。
  policy-map type access-control drop_qq
    class udp_pkts
        service-policy drop_qq_udp

     >        service-policy drop_qq_tcp
  设置策略,分别对UDP数据包和TCP数据包应用丢弃策略。
  interface GigabitEthernet 0/1
    service-policy type access-control input drop_qq
  将此策略应用到路由器内部接口上。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-537119-1-1.html 上篇帖子: 使用域账户ssh登录Cisco交换机 下篇帖子: Cisco IOS XR在VMware环境下如何增加物理接口
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表