TFTP上传所需软件包到 /usr/src/ 目录下
ipp2p-0.8.2.tar.gz
patch-o-matic-ng-20060509
iptables-1.3.5.tar.bz2
l7-protocols-2006-10-18.tar.gz
kernel-2.6.9-42.EL.src.rpm
netfilter-layer7-v2.6.tar.gz
这里说一下 因为ipp2p0.8.2不支持iptabls1.3.6 所以选用1.3.5
patch-o-matic-ng-20060509 这个补丁包里面的模块是我自己选的
在 patchlets/ 目录下 把自己需要的模块留下 其他删除既可
这个配置文件要保留patchlets/config
另外需要注意一点20060509这个包里的 time模块在2.6下编译时是出错的,但在2.4内核上编译就没问题,你可以用20050801 这个包内的time模块来安装或者你就直接用这个补丁包来安装也一样,只要你找到自己用的模块将模块放在patchlets/ 里即可
L7的就没什么说的啦 都是最新的
kernel-2.6.9-42.EL.src.rpm 这个内核源码包你可以去网上下或在光盘里找
解开所有压缩包
# tar zxvf ipp2p-0.8.2.tar.gz
# tar zxvf l7-protocols-2006-10-18.tar.gz
# tar zxvf netfilter-layer7-v2.6.tar.gz
# tar xvjf iptables-1.3.5.tar.bz2
修正rpm包安装key警告问题
# rpm --import /usr/share/doc/centos-release-4/RPM-GPG-KEY*
建立内核源码包安装所需用户
# useradd  buildsvn
安装源码包 考一份内核到 /usr/src/linux-2.6.9做编译使用,如果编译失败 可以删除后再考新的所以不建议做软连接操作
# rpm -ivh kernel-2.6.9-42.EL.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target=i686 kernel-2.6.spec
# cp -a /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 /usr/src
修改拷贝的内核与当前系统内核版本一致(很重要,否则编译出来的模块不能被当前内核使用)
# cd /usrs/src/linux-2.6.9
# vi Makefile
修改 EXTRAVERSION = -prep
该成EXTRAVERSION = -42.EL
保持跟uname -r 的版本一致 检测一下
# uname -r
2.6.9-42.EL
# head -n4 Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 9
EXTRAVERSION = -42.EL
# make mrproper
该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。
# make menuconfig
直接保存退出,生成 .config 文件。
为内核打补丁并添加模块
# cd  /usr/src/patch-o-matic-ng-20060509
设置内核和iptables的环境变量
# export KERNEL_DIR=/usr/src/linux-2.6.9
# export IPTABLES_DIR=/usr/src/iptables-1.3.5
添加模块
# ./runme time
# ./runme ipp2p
# ./runme iprange(已经自带)
其实你若明确了 patchlets/ 下的模块后
可以用 ./runme xxxx 随意字符 然后它会自动到patchlets/ 下检测每一个模块提示你
添加Layer-7模块
# cd /usr/src/linux-2.6.9
# patch -p1 < /usr/src/netfilter-layer7-v2.6/for_older_kernels/kernel-2.6.9-2.6.10-layer7-1.2.patch
# cd /usr/src/iptables-1.3.5
# patch -p1 < /usr/src/netfilter-layer7-v2.6/iptables-layer7-2.6.patch
# chmod +x extensions/.layer7-test
l7-filter模块加入完成
为内核选择新添加的模块
# cd /usr/src/linux-2.6.9
# make menuconfig
路径:Device Drivers  --->
             Networking support  --->
                  Networking options  --->
                     Network packet filtering (replaces ipchains)  --->
                        IP: Netfilter Configuration  --->
新加入的模块都在这里 选中新加入的模块
<M>   Layer 7 match support (EXPERIMENTAL)
[ ]     Layer 7 debugging output (NEW)    (这个debug 就不要选啦)                          
(2048)  Buffer size for application layer data (NEW)
保存退出
编译netfilter模块
 # cd /usr/src/linux-2.6.9
 # make modules_prepare
  # make M=net/ipv4/netfilter
这里不用make来编译整个内核,只需要把我们新加入的模块编译出来就可以了
编译完成netfilter模块后拷贝编译完成的模块到当前系统netfilter中(
因为alise里面定义了cp = cp -i 所以在命令前面加一个\就可以了.)
#\cp -f /usr/src/linux-2.6.9/net/ipv4/netfilter/*.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/netfilter/
# chmod +x /lib/modules/2.6.9-42.EL/kernel/net/ipv4/netfilter/*.ko
# depmod -a
安装l7协议
# cd /usr/src/l7-protocols-2006-10-18
# make install
安装新的 iptables
(这个注释不明白是什么意思)
# vi /usr/src/linux-2.6.9/include/linux/config.h
用 // 把下面的中间三行注释掉
#include <linux/autoconf.h>
//#if !defined (__KERNEL__) && !defined(__KERNGLUE__)
//#error including kernel header in userspace; use the glibc headers instead!
//#endif
#endif
保存退出
# cd /usr/src/iptables-1.3.5
# export KERNEL_DIR=/usr/src/linux-2.6.9
# export IPTABLES_DIR=/usr/src/iptables-1.3.5
保证有这两个环境变量存在(前面我们已经做过,可用 echo $ KERNEL_DIR和echo $ IPTABLES_DIR 查看目录设置是否正确)然后安装
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
更新ipp2p模块,使他支持更多的协议
# cd /usr/src/ipp2p-0.8.2
# make
备份原模块 # cp /lib/iptables/libipt_ipp2p.so /
# cp /usr/src/ipp2p-0.8.2/libipt_ipp2p.so /lib/iptables
文章引用自:

转载于:https://blog.51cto.com/coolerfeng/76114

日记 [2008年03月23日]不编译内核给iptables增加模块相关推荐

  1. 日记 [2008年03月23日]LINUX网关后面的pptp ***客户机连接***

    给iptables打pptp-conntrack-nat 补丁 这里好象没有最新的关于经过iptables 1.3.4 nat 后 pptp client connect *** server  和2 ...

  2. 日记 [2008年03月26日]

    今天把视频和录音整合到一台机器上,工作尚未结束,只实现了视频监控的迁移 因为视频监控软件不能开机自己启动,于是把快捷方式放在启动组.然后把win2003设置为自动启动 网上查了一下方法有3个 开始运行 ...

  3. 日记 [2008年03月11日]

    服务器上如果出现大量的1030.1058 application error ,那么肯定是everyone on sysvol permission 出了问题,注意sysvol 的路径和所在文件夹的权 ...

  4. 京佳名师点评:2008年2月23日海关面试题 京佳公务员考试培训学校

    一.自我介绍. [相似题目] 1. 2008年1月26日京佳面试培训班题本:请作下自我介绍? 2. 2008年1月26日京佳面试培训班题本:做一分钟的自我介绍.主要谈谈家庭和工作经历. 3.(MS)- ...

  5. 测鬼记(下)之职场日记——坎坷不安(6月23日)

    6月23日   中午睡觉起来,打开邮件收到沉露发的邮件: 贾总:你好! 今天物流项目测试骨干小玉,问我工作调动的事情,这时我才知道她调动到A线,并立即生效,不需要工作交接!我作为B线测试负责人,人员工 ...

  6. 2008年8月23日-国家体育馆 祥云小屋 白天

    做地铁到北土城下车,现在才知道如果没有门票是不能做奥运地铁专线的,更何况进入鸟巢,奥林匹克公园周边了,在进入奥运专线之前就进行安检,比别的奥运比赛严格多了,自己带的很多吃的都不允许进入,没办法只能拽了 ...

  7. 日记 [2008年01月21日]

    linux查看系统版本. #lsb_release -a #cat /proc/version #cat /etc/issue #cat /etc/redhat-realease(redhat才有的文 ...

  8. 日记 [2007年05月23日]启动ORACLE 10G

    上一篇安装好ORACLE 10G后数据库就自动启动了,如果重启了电脑,那么数据库默认是没有运行的 下面我们先试着手动启动它: 首先需要启动侦听器.切换到oracle用户 su - oracle $OR ...

  9. 日记 [2007年03月10日]重回blog,开始2007

    过了个年,blog都不管了,大概过年的时候都没有心思了吧.其实过年挺无聊的.可是中国人就这么喜欢扎堆,过完年,回来,又开始上班了. 正月初六去逛庙会,和几个朋友去玩.倒是挺开心.同去的一个MM,对她有 ...

最新文章

  1. 解决Android 插件化方法找不到 问题
  2. Push Notification (1)Google C2DM 服务
  3. android sdk 源码解析
  4. WSAEWOULDBLOCK: Resource temporarily unavailable
  5. 今天做了一个DNN的模块,填到它默认的home页(关于DNN新建模块无法操作)
  6. 在家办公效率最高的组合!
  7. 自定义类型处理器的应用
  8. SAP Spartacus org unit table的DOM structure
  9. 携号转网将于明年在全国范围内实施
  10. mysql limit 5 5 正确_MySql 5.7 同时使用order by和limit时结果集不正确的问题
  11. Unity对接Steam SDK
  12. 计算机教学的弊端,信息技术在教学中的利弊及解决对策
  13. html测试报告模板,测试报告模板(完整版).doc
  14. 谷歌浏览器和对应驱动器的安装、配置(附有安装包)
  15. win8计算机无法安装打印机驱动程序,win8系统安装打印机驱动失败怎么办|win8系统安装打印机驱动失败的解决方法...
  16. 成为Linux大神——必须要具备的基本技能!
  17. 百度搜索结果页url参数详解
  18. 云效平台是做什么的?有哪些优缺点?
  19. ASPX页生成静态HTML页(五种方案)
  20. Blender基础:从程序员的角度理解顶点组(Vertex Group)和权重(Weight)

热门文章

  1. mysql 去重计算公式_mysql多字段去重,并计数
  2. matlab重建算法stomp,压缩感知图像重建算法的研究现状及其展望.pdf
  3. 4个空格 tab vetur_python学习的10个小技巧
  4. 《天天数学》连载19:一月十九日
  5. Python案例:按键测试
  6. 【BZOJ1406】【codevs2478】密码箱,数论练习
  7. 【codevs3732】【BZOJ3751】解方程,hash+秦九韶算法
  8. 常见的linux系统故障,linux常见的系统故障排除
  9. java update 8_版本任你发,我用Java 8!JDK的更新,改变了哪些你写代码的方式?...
  10. ithoughts怎么自定义样式_Word 表格样式,用过的人可能都会遇到这个问题