Gentoo + iptables + .... 封杀QQ http://www.actusa.net/~linuximq/ Gentoo + iptables + .... 封杀QQ 以前一直想给iptables打补丁,好来封杀QQ,MSN之类的聊天软件,但一直都没有成功。昨天晚上经过深入了解终于做成,呵呵。。。。
具体实现方法: 一。在安装iptables前先安装好相关补丁包 (gentoo中默认带了一些补丁,但还有一些不能用) emerge -pv iptables [ebuild   R   ] net-firewall/iptables-1.3.8-r2 USE="ipv6 -extensions* -imq* -                  l7filter* -static" 默认的安装不带extensions/imq/l7filter/static这四个补丁,如果这四个补丁不安装,我们将无法使 用一些扩充功能。 1。安装l7filter补丁,这个补丁包括两个软件包,分别是l7-filter/l7-protocols 2。安装imq补丁,到 http://lkml.org/lkml/2007/10/28/17 看详细分绍,      下载地址 http://www.actusa.net/~linuximq/     使用patch -p1 < *** 打好补丁 3。控制p2p的使用,安装ipp2p模块     ipp2p 软件在安装前要保证gcc为4.1以上,glibc为2.6以上
二。重新编辑内核    将netfiler的所有内容编辑进内核。2.6.15以上版的内核自带了一些iptables的patch-o-matic-ng补 丁,但还有一些补丁是没有的,比如geoip/time/nth等,如果需要这些补丁,就只能手动去打了。
三。安装iptables 将extensions/imq/l7filter/static编辑进去,static我没有编辑成功,如果那位兄弟编辑成功可 否告知一下。
四。使用iptables去限制QQ等 :)    字符串匹配,可以用做内容过滤    iptables -A FORWARD -m string --algo kmp --string "www.qq.com" -j DROP    iptables -I FORWARD -s 192.168.3.0/24 -m string --string "宽频影院"   --algo kmp -j DROP    Peer-to-Perr 过滤,封杀BT类P2P软件    iptables -A INPUT -m ipp2p --ipp2p -j DROP
   iptables -A FORWARD -m ipp2p --edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares -j DROP      备注匹配,可以支持最多256个字符    iptables -I FORWARD -s 192.168.0.100 -p tcp --dport 80 -j DROP -m comment --comment "the bad guy can not online"    同时连接个数限制匹配 ( 在我的系统中好像下面两条不能用,有待测试 )
   iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP    iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP    ip范围匹配    iptables -A FORWARD -m iprange --src-range 192.168.0.10-192.168.0.100 -j ACCEPT
   iptables -A FORWARD -m iprange --dst-range 192.168.1.5-192.168.1.124 -j ACCEPT    每隔N个匹配
   iptables -t mangle -A PREROUTING -m nth --every 10 -j DROP    layer7应用,可以到这里http://l7-filter.sourceforge.net看layer7的具体用法,    l7-protocols里面的协议我只使用了几个    iptables -A FORWARD -m layer7 --l7proto qq -j ACCEPT
   iptables -I FORWARD -m layer7 --l7proto msn-filetransfer -j DROP
    iptables -A FORWARD -m layer7 --l7proto socks -j DROP    quota(配额匹配)    iptables -I FORWARD -s 192.168.0.100 -p tcp --dport 80 -m quota --quota 750 -j DROP
   网络地址翻译
   iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      给数据包打标记和TC流量控制工具相结合

原文地址 http://blog.chinaunix.net/u1/55635/showart_440620.html