话说上次那个内核编译的我好痛苦。。。。
因此这次上网搜索半天,终于发现了。。。。
http://kuscsik.blogspot.com/2008/02/how-to-userspace-l7-filter-on-ubuntu.html
在Ubuntu下userspace版本成功编译的办法。。
第二种那个编译的办法还是没有成功,所以先改向它的源,然后直接apt安装的。。。
测试过程:
首先把协议包更新到最新
协议包目录下:
sudo make install
然后测试:
1、配置文件
sudo gedit /etc/l7_filter.conf
如下:
ftp 5
http 6
qq 68
每行前面是协议名称,对应于/etc/l7-protocols/protocols下面的协议名称
2、启动l7-filter
sudo iptables -A FORWARD -j NFQUEUE --queue-num 0
l7-filter -vv -f /etc/l7_filter.conf
(第2句默认使用0)发现这个。。。什么都识别不出来,这是因为FORWARD的这个选项不适合我的测试环境
我的测试环境是这样的:就用这台电脑连接上一个路由,然后路由联网
FORWARD适用于把运行L7的机器当成一个中间路由,这样所有数据就可以被过滤了~
所以我这里的环境要改成如下:
sudo iptables -A INPUT -j NFQUEUE --queue-num 0
sudo l7-filter -vv -f /etc/l7_filter.conf
这样QQ可以识别出来了~如下:
Made key from ct: udp 17 src=192.168.0.2 dst=58.251.63.74 sport=40081 dport=8000
matched qq
Made key from ct: udp 17 src=192.168.0.2 dst=58.251.60.37 sport=54912 dport=8000
matched qq
呵呵。。。当然速度比较慢,毕竟这个是userspace,如果想真正实用的话最好还是kernel