免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6919 | 回复: 4

[网络管理] iptables的string模块使用,匹配汉字有问题(结贴) [复制链接]

论坛徽章:
0
发表于 2012-11-21 13:09 |显示全部楼层
本帖最后由 sdtcf 于 2012-11-22 11:48 编辑

测试环境:一台RHEL5.4虚拟机(内核2.6.88,iptables 1.4.3),双网卡做NAT,iptables没有其他规则;
一台windows虚拟机通过这台RHEL5上网(两台虚拟机与物理机桥接)


设置规则匹配“贴吧”
iptables -A FORWARD -m string --algo bm --string "贴吧" -j DROP
这样规则是UTF-8的(  STRING match "|e8b4b4e590a7|" ALGO name bm TO 65535 )
按格式添加GB的规则(贴吧的16进制为"ccf9b0c9"):
iptables -A FORWARD -m string --algo bm --string "|ccf9b0c9|" -j DROP

添加后查看规则(iptables -L)
DROP       all  --  anywhere             anywhere            STRING match "|e8b4b4e590a7|" ALGO name bm TO 65535
DROP       all  --  anywhere             anywhere            STRING match "|ccf9b0c9|" ALGO name bm TO 65535

从windows虚拟机上网(浏览器使用的  360极速浏览器):百度关键字搜索,浏览有“贴吧”两个字的网页,都没有受到限制


操作的问题吗??

论坛徽章:
0
发表于 2012-11-21 14:03 |显示全部楼层
本帖最后由 sdtcf 于 2012-11-21 14:56 编辑

我知道的一种情况,部分网页是gzip压缩过的,这种匹配可能有问题,

但也有很多网页不是gzip的,浏览也没限制,疑惑!!



查看网页是否为gzip过的,可用如下方式:
用firebug查看网页,在header信息中看content-type,这地方标记是不是gzip过的

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2012-11-21 23:08 |显示全部楼层
你换成 英文 的 关键字 先试试.

我觉得是编码的问题.

一般的国内的网站并不是使用的UTF8编码. 好象说他们有什么问题解决不了, 垃圾.

不过, 我一直BS限制上网的行为, 我认为, 要么就直接切断, 谁也别上, 而不是自己再搞一个 xFW.

论坛徽章:
0
发表于 2012-11-22 08:19 |显示全部楼层
回复 3# q1208c


    我设置的关键字,两种编码的都设置了

utf-8,GB2312

先用utf-8设置的汉字,发现规则自动转换为16进制匹配,就将GB2312的16进制也设置进去了,可是都没看到匹配效果
(看的网页是GB2312编码的)

论坛徽章:
0
发表于 2012-11-22 11:48 |显示全部楼层
网上的资料真是看少了不行啊,N多博客啥的说--string匹配16进制,我勒个去

还是系统自带的帮助文档优先阅读啊,省时省事,还练英语
以上规则设置的时候把 --string换成 --hex-string 就ok了,不经过压缩等处理的网页都可以匹配
(当然经过gzip等压缩过的网页肯定不行啊,抓包找不到这些16进制串了)


以下是帮助文档中的一段:
[root@tcf linux-2.6.28.8]# iptables -m string -h|tail -10
  --set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.

string match options:
--from                       Offset to start searching from
--to                         Offset to stop searching
--algo                       Algorithm
--icase                      Ignore case (default: 0)
[!] --string string          Match a string in a packet
[!] --hex-string string      Match a hex string in a packet
iptables_string匹配注意事项(16进制).JPG
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP