瀚海书香
发表于 2011-07-14 12:04
回复 19# Godbach
看了一下白金大哥的代码。
他是在lib库中将dns字符串转换成解析时的数据包字符串。他那个代码不支持一类域名的匹配,只支持单个域名匹配。
不过白金大哥的代码是多版本支持的。:emn23:
Godbach
发表于 2011-07-14 12:04
回复 20# 瀚海书香
做 patch 和做兼容多个内核版本的实现应该是不一样的
renxiao2003
发表于 2011-07-14 12:13
立马支持一下。
platinum
发表于 2011-07-14 12:40
回复瀚海书香
这里有一个白金兄实现的 domain 匹配模块,分享给大家
【呵呵,我也凑个热闹,转发一个原 ...
Godbach 发表于 2011-07-14 11:56 http://bbs.chinaunix.net/images/common/back.gif
有个更高效的 domain v0.0.2,而且实现更简单,瀚海书香兄可以看一下 :em39:
http://bbs.chinaunix.net/thread-791863-1-1.html
platinum
发表于 2011-07-14 12:45
回复Godbach
看了一下白金大哥的代码。
他是在lib库中将dns字符串转换成解析时的数据包字符串。他那个代码不支持一类域名的匹配,只支持单个域名匹配。
瀚海书香 发表于 2011-07-14 12:04 http://bbs.chinaunix.net/images/common/back.gif
v0.0.2 版通过比较巧妙的实现已经支持泛域名啦! :D
platinum
发表于 2011-07-14 12:56
看了一下发布日期,整整是 5 年前的今天,呵呵!
如果有时间的话,再做一个多模匹配版,一条 iptables 同时搞定多个域名!;P
瀚海书香
发表于 2011-07-14 13:00
回复 25# platinum
白金大哥的泛域名匹配是指 "baidu.com"匹配所有以baidu.com结尾的域名吧
这样的确是效率高了一些。
我那个泛域名匹配主要是为了跟squid的用法一致,所以采用了squid中的机制。(最前面加"."表示泛域名匹配,不加”."表示精确匹配)。
瀚海书香
发表于 2011-07-14 13:01
回复 26# platinum
前辈啊。
小弟们是看着前辈的资料成长的啊。。。:D
瀚海书香
发表于 2011-07-14 13:11
这里在贴一个QQ匹配的模块。
之前的QQ匹配大多是使用layer7模块来进行匹配,但是那个模块的效率有点低。而且无法区分QQ和TM。
模块用法:
iptables -A FORWARD -m qq --tm -j ACCEPT
这条规则允许TM版本的QQ通信。
iptables -A FOWARD -m qq --qq -j DROP
这条规则会禁止所有版本的QQ通信。
platinum
发表于 2011-07-14 13:17
给初学者的一些建议:
1、先保证网络能通,再考虑如何限制
2、专表专用、专链专用
对于想提高 iptables 工作效率的朋友一些建议:
1、学会使用 -N,配合 -g 使用,缓解多条 iptables 语句时的效率低下问题
2、熟知你的网络数据特征,按照策略碰撞概率优先级调整规则排列顺序
3、慎用 -j LOG 记录数据
4、能提前阻断的,在数据进入 conntrack 之前把它“办”掉(放在 raw 表中处理)
5、能不开启 conntrack 功能就不要开启
提醒大家需要注意的一些误区:
1、nat 表只匹配一个连接的前几个包(TCP 和 UDP 的实现略有不同),后续数据无法被 nat 表的规则匹配
2、limit 不能防止本机被 DoS 攻击,只能降低本机 CPU 负载
3、不要认为 iptables -t mangle -F 这样的语句就可以清空 mangle 表规则,它的副作用是载入了 mangle hook(nat、raw、filter 表同理)
页:
1
2
[3]
4
5
6
7
8
9
10
11
12