资源描述:
《netfilter-iptables模块编译及应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、netfilter/iptables模块编译及应用~教育资源库 相信很多人都会用iptables,我也一直用,并且天天用.特别是看完platinum的<<如何给iptables添加新的模块>>介绍后,觉得有必要深入了解一下它的拓展功能.于是立刻下载,先查看一下它的说明,其功能很是令人感觉很兴奋,例如:ment(备注匹配),string(字符串匹配,可以用做内容过滤),iprang(ip范围匹配),time(时间匹配),ipp2p(点对点匹配),connlimit(同时连接个数匹配),Nth
2、(第n个包匹配),geoip(根据国家地区匹配).ipp2p(点对点匹配),quota(配额匹配),还有很多......之后编译,几经测试,在rh7.3kernel2.4.18-3和rh9.0kernel2.4.20-8下均成功实现添加扩展功能.以下是介绍其部分功能,及编译方法.环境rh9.0kernel2.4.20-8.root身份. 一,准备原码. 1.内核原码:为了减少复杂性,不编译所有内核和模块,建议找一个跟当前版本一样的内核原码,推荐安装时光盘的 a.[rootkindgeorge]uname-r(
3、查看当前版本) 2.4.20-8 可以cd/usr/src查看是否有这个目录2.4.20-8 b.或者[rootkindgeorge]rpm-qa
4、grepkernel kernel-source-2.4.20-8如果有这个说明已安装了. 如果没有安装,可以在RH第二张光盘中拷贝过来或安装rpm-ivhkernel-source-2.4.18-3.i386.rpm.安装后会在/usr/src/出现linux-2.4连接和linux-2.4.20-8目录. c.在ipv4/filter/ipt_ipran
5、ge.o:kernel-moduleversionmismatch(版本错误) /lib/modules/2.4.20-8/kernel/ipv4/filter/ipt_iprange.o odules/2.4.20-8/kernel/ipv4/filter/ipt_iprange.o:insmod/lib/modules/2.4.20-8/kernel/ipv4/filter/ipt_iprange.ofailed /lib/modules/2.4.20-8/kernel/ipv4/filter/ipt_i
6、prange.o:insmodipt_iprangefailed 3.[rootkindgeorgelinux-2.4]#makemrproper 4.[rootkindgeorgelinux-2.4]#makeoldconfig 'makeoldconfig'-采用以前的.config文件(编译时十分有用) 技巧:在makemenuconfig时,我们面对众多的选项常常不知道该如何选择,此时可以把安装时的配置文件copy到/usr/src/linux-2.4中:cp/boot/config
7、-2.4.*/usr/src/linux-2.4/.config,再用makemenuconfig编译,它会读取.config中原来的配置信息. (二).给filter打补丁 123下一页友情提醒:,特别!解开tarxjvfpatch-o-matic-ng-20050331.tar.bz2包后,进入该目录,就会发现有很多目录,其实每个目录对应一个模块. 我们可以这样来选择,根据不同贮仓库submitted
8、pending
9、base
10、extra,例如: KERNEL_DIR=/usr/src/linux-2.
11、4IPTABLES_DIR=/usr/src/iptables-1.3.1./runmebase. 或:KERNEL_DIR=/usr/src/linux-2.4IPTABLES_DIR=/usr/src/iptables-1.3.1./runmeextra 执行后,会测试是否已经应用和提示你是否应用该模块,但这样会遍历所有模块,有很多是用不着的,并且可能和系统版本有冲突,如果不管三七二十一全部选择的话,一般都会在编译和使用时出错.所以推荐用cat/模块目录名/info和cat/模块目录名/help看过后,认为
12、适合自己,才选择. 我是针对在上面看过后,有目的的一个一个的应用的,这样做: KERNEL_DIR=/usr/src/linux-2.4IPTABLES_DIR=/usr/src/iptables-1.3.1./runmestring 执行后,会测试是否已经应用和提示你是否应用该模块,按y应用.然后继续下一个 KERNEL_DIR=/usr/src/