- 论坛徽章:
- 0
|
网上有好多这方面的资料,但不是说不全就是错误``经过本人N次的失败后,终于成功,今天把自己的一点总结写出来让有需要的朋友参考一下``
我的系统:
CentOS server 3.8(之前一直用RH9.0 2.4.20内核,但实验证明是不可以,要是哪位朋友做出来了也告诉我一下)
内核:2.4.21-47.EL
IPTABLES v1.2.8
===================================================
首先查看 /usr/src 目录下有没有linux-2.4 文件夹,如果没有就download 内核源码包--kernel-source-2.4.21-47.EL.i386.rpm (可以在安装光盘里找到,如果没安装光盘也要以上网下
www.kernels.org
)
#rpm -ivh kernel-source-2.4.21-47.EL.i386.rpm
装好后会在/usr/src 目录下自己生成linux-2.4.21-47.EL文件夹以及linux-2.4 软连接
download iptables-1.3.7
www.iptables.org
#tar zxvf iptables-1.3.7.tar.gz 至/usr/src/iptables-1.3.7/目录下
l7-filter源码下载:
http://sourceforge.net/project/showfiles.php?group_id=80085
注意:有两个包。一个是netfilter-layer7-v2.9.tar.gz 一个l7-protocols-2007-05-09.tar.gz
netfilter-layer7-v2.9.tar.gz --内核补丁 l7-protocols --支持的协议文件
全部解压路径为:
/var/netfilter-layer7-v2.9
/var/l7-protocols-2005-05-09
===================================================
开始了!
先patch内核
cd /usr/src/linux-2.4
patch -p1 networking options--> network packet filtering-->ip:netfilter configuration--
-->layer 7 match support (选M) layer 7 debugingoutput (选*)
就不多说啥意思了,只针对l7-filter模块。
其它什么USB、SOUND、SCSI(我是IDE硬盘,所以没选SCSI,如果不是一定要选上SCSI支持模块,要不然会提示失败)模块如果不需要也可以去掉,我是在虚拟机做的,所以去掉,为了提高编译速度。。。
确保你的内核安全和健壮后:
make bzImage (注意大小写。这一步才真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以我直接用make bzImage来编译
make modules (编译可加载模块)
make modules_install (安装可加载模块)
make install (安装新内核)
这里如果出现 "NO MODULE BUSLOGIC FOUND",解决方法
第1种方法:
编辑文件 /etc/modules.conf
将"alias scsi hostadapter BusLogic"这行注释掉,
即#alias scsi hostadapter BusLogic
保存 /etc/modules.conf,退出
# make install
第2种方法:
手动添加启动项
#depmod -a
#cp /usr/src/linux/System.map /boot/System.map-2.6.13
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.6.13
方法一本人已经验证过```没问题,方法二就还没验证```
===================================================
内核编译到此结束
reboot 选择先的内核启动
起不来别怨我,自己先搞定内核编译。
系统起来了,ok,go to next
编译l7-iptables模块顺便升升级:
cd /usr/src/iptables-1.3.7
/*刚才补丁已经打上*/
chmod +x extensions/.layer7-test 活用tab键
export KERNEL_DIR=/usr/src/linux-2.4
export IPTABLES_DIR=/source/temp/iptables-1.3.7
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin && 回车
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin install
安装l7-filter协议文件:
cd /var/l7-protocols-2007-05-09
Make install
只是cp 了几个文件到/etc/里
ok了。
最后我们来验证一下``
iptables -t mangle -I POSTROUTING -m layer7 --l7proto skypeout -j DROP
iptables -t mangle -I POSTROUTING -m layer7 --l7proto skypetoskype -j DROP
iptables -t mangle -I POSTROUTING -m layer7 --l7proto yahoo -j DROP
iptables -t mangle -I POSTROUTING -m layer7 --l7proto msnmessenger -j DROP
iptables -t mangle -I POSTROUTING -m layer7 --l7proto aim -j DROP 阻挡icq
iptables -t mangle -I POSTROUTING -m layer7 --l7proto xunlei -j DROP 亲爱的讯雷
可以说是百分百封杀QQ
/etc/l7-protocols/protocols 有什么就弄什么。
察看命中情况:iptables -t mangle -L POSTROUTING -v
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/45250/showart_355175.html |
|