为linux添加layer7模块(教你怎么活用教程)

 
这个叫成有点失败,后来用了一下发现5分钟内必然死机,查了一下据说是2.6.19内核以后的就好了,2.6.19以前的内核有一个内存溢出的漏洞……
为linux添加layer7模块:
以前只是听说layer7很好,但一直没有用过,这次遇到个问题,恐怕非用不可了,所以研究了一下。
参考文章:http://blog.chinaunix.net/u/25509/showart_366981.html
经过这次调试,发现安装软件的时候指定一个目录很重要,不然以后都没地方找……>_<
资料中这样写的:
1. 在http://sourceforge.net/project/showfiles.php?group_id=80085下载
netfilter-layer7-v2.1.tar.gz
l7-protocols-2006-01-22.tar.gz
如是下载,读了readme发现,我的内核版本为2.6.18,必须使用layer7-v2.9以上版本才行,不然没有内核补丁和iptables补丁,于是下载了netfilter-layer7-v2.13.tar.gz以及l7-protocols-2007-07-27.tar.gz,并将它们放在和我的内核相同的位置/home/root/下。
==========================================================================================================================
2.解压
cd /usr/src
tar -zxvf netfilter-layer7-v2.1.tar.gz && tar -zxvf l7-protocols-2006-01-22.tar.gz
开始我没当回事,心想那里解压不一样么?后面调试的时候那叫一个痛苦……反复折腾了几次,最终选定了/home/root/目录,和内核在一起。
cd /home/root/
tar zxvf netfilter-layer7-v2.13.tar.gz
tar zxvf l7-protocols-2007-07-27.tar.gz==========================================================================================================================3.给内核打补丁
cd /usr/src/linux
patch -tp1 < /usr/src/netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch
我的内核目录在/home/root/linux-2.6.18/下,所以
cd /home/root/linux-2.6.18/
patch -tp1 < /home/root/netfilter-layer7-v2.13/kernel-2.6.18-2.6.19-layer7-2.9.patch
我看了,在2.13版本的layer模块中必须使用这个补丁才行,这个补丁原本在/home/root/netfilter-layer7-v2.13/for_older_kernels/这个目录下,我mv了一下,为了看起来不那么乱糟糟的。
==========================================================================================================================4.给iptables打补丁
cd /usr/src/iptables-1.3.5
patch -tp1 < /usr/src/netfilter-layer7-v2.1/iptables-layer7-2.1.patch
我的iptables目录就复杂了
cd /root/software/newtools/iptables-1.3.6
patch -tp1 < /home/root/netfilter-layer7-v2.13/iptables-for-kernel-pre2.6.20-layer7-2.13.patch
这个也需要你先读一下README,选对patch文件才行。
==========================================================================================================================
5.编辑内核
cd /usr/src/linux
make menuconfig
选择 Code maturity level options -
Prompt for development and/or incomplete code/drivers 我的内核是cd /home/root/linux-2.6.18/
make menuconfig
Code maturity level options -
Prompt for development and/or incomplete code/drivers
这个原本就是选上的,不管。
而后面选择模块的位置似乎作者的和我的有出入,不管,反正找到:
Network packet filtering (replaces ipchains) -IP: Netfilter Configuration - Layer 7 match support (EXPERIMENTAL)
我的是在networking选项里面的,慢慢找找看吧,patch打完成功后,make menuconfig的时候就会多出这个选项了。选中后保存退出。
然后,根据教程
make modules_prepare
make M=net/ipv4/netfilter
比较顺利,netfilter里面的模块全部重新编译了;然后根据 教程 ,
cp net/ipv4/netfilter/ipt_layer7.ko /lib/modules/2.6.18/kernel/net/ipv4/netfilter/
depmod -a
==========================================================================================================================7.编辑iptables
cd /usr/src/iptables-1.3.5
cd /usr/src/iptables
export KERNEL_DIR=/usr/src/linux
export IPTABLES_DIR=/usr/src/iptables-1.3.5
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
教程里面提到的“.layer7-test权限不够请你改变他的权限”这个时候显露出来了,怪异,或许作者记错了?
cd /root/software/newtools/iptables-1.3.6
export KERNEL_DIR=/home/root/linux-2.6.18/
export IPTABLES_DIR=/root/software/newtools/iptables-1.3.6/
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
报error了,然后找到.layer7-test这个文件,在当前目录下的extensions/目录里面,也是给iptables打patch的时候加进去的。
chmod +x extensions/.layer7-test
原来只有读写权限,现在有执行权限了。
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
成功过去了。
==========================================================================================================================
8. 安装layer7的 协议支持
cd /usr/src/l7-protocols-2006-01-22
make install
这个比较容易
cd /home/root/l7-protocols-2007-07-27
make install
顺利通过。
==========================================================================================================================
9.测试
iptables -m layer7 --help
没成功 iptables找不到layer7模块……
看了下错误信息,原来我的LIBDIR在/usr/local/lib,和作者的/lib不一样,只好重新执行iptables的那个编辑步骤。
make BINDIR=/sbin LIBDIR=/usr/local/lib MANDIR=/usr/share/man install
过去了,然后重新iptables -m layer7 --help,总算出来了layer7的使用说明,应该可以用了吧?
iptables -A FORWARD -m layer7 --l7proto qq -j ACCEPT
执行成功,呵呵,看来成功了。感谢CU的高手们留下的心得。[ 本帖最后由 iamshiyu 于 2007-9-17 15:27 编辑 ]七夕银河
一个不想当将军的裁缝,绝不是一个好司机!
郁闷,网警兄弟是不是活在80年代的啊?开个玩笑都会被盯上!----
不错可不可能提供一点实用的 这个我用过了你发个这个配置信息有点少了 只是其中的一部分----
等我继续研究一下吧,刚刚接触……还有mysql也是……七夕银河
一个不想当将军的裁缝,绝不是一个好司机!
郁闷,网警兄弟是不是活在80年代的啊?开个玩笑都会被盯上!----
哦 我也是刚 学习 的 我现在去深圳那里学习新的知识呢!!

你可能感兴趣的:(linux,职场,休闲)