参考iptables实例:
使用iptables layer-7 filter:
# iptables -t mangle -I PREROUTING -m layer7 --l7proto edonkey -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto bittorrent -j DROP (禁止bt)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto qq -j DROP (禁止QQ通讯)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto msnmessenger -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto xunlei -j DROP (禁止迅雷)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto kugoo -j DROP (禁止kugoo)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto yahoo -j DROP (禁止Yahoo! Messenger)补充:
一,如果在log文件中看到以下信息:
ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 23 11:36:58 router kernel: nf_conntrack version 0.5.0 (12288 buckets, 49152 max)
Aug 23 11:37:02 router kernel: eth0: no IPv6 routers present
Aug 23 11:37:03 router kernel: eth1: no IPv6 routers present
Aug 23 11:42:33 router kernel: About to compile this: "^(ymsg|ypns|yhoo).?.?.?.?.?.?.?[lwt].*?€\200"
Aug 23 11:42:33 router kernel: About to compile this: "^(ver [ -~]*msnftp^M
Aug 23 11:42:33 router kernel: ver msnftp^M
Aug 23 11:42:33 router kernel: usr|method msnmsgr:)"
Aug 23 11:42:33 router kernel: About to compile this: "ver [0-9]+ msnp[1-9][0-9]? [^I-^M -~]*cvr0^M
Aug 23 11:42:33 router kernel: $|usr 1 [!-~]+ [0-9. ]+^M
Aug 23 11:42:33 router kernel: $|ans 1 [!-~]+ [0-9. ]+^M
Aug 23 11:42:33 router kernel: $"
Aug 23 11:42:33 router kernel: About to compile this: "^[()]...?.?.?(reg|get|query)"
Aug 23 11:42:33 router kernel: About to compile this: "^(1..\216|d.+tgp7)"
Aug 23 11:42:33 router kernel: About to compile this: "^.?^B.+^C$"
Aug 23 11:54:42 router kernel: About to compile this: "^(^Sbittorrent protocol|azver^A$|get /scrape\?info_hash=)|d1:ad2:id20:|^H'7p\)[rp]"
请不要在意思,因为这些信息是告诉你,iptables在过滤你所要求的操作在内核中已经启动生效,比如过滤yahoo等...一般是执行 iptables后产生的!
二,同时,如果出现以下的信息:
Aug 23 14:13:19 router kernel: layer7: couldn't get conntrack.
则说明layer7功能早于ipforward命令前执行,请将:
/usr/local/sbin/iptables -t mangle -I PREROUTING -m layer7 --l7proto bittorrent -j DROP
这类命令放在:
/usr/local/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE
之后!
该博客介绍了如何使用iptables进行layer-7过滤,禁止特定应用程序如edonkey、bittorrent、QQ、msnmessenger、xunlei、kugoo和Yahoo! Messenger的流量。在执行iptables命令后,内核会编译并应用过滤规则,如果有`layer7: couldn't get conntrack`的错误,说明命令执行顺序不正确,需要确保iptables的layer7过滤规则在ipforward之后执行。
856

被折叠的 条评论
为什么被折叠?



