原文:http://www.opsers.org/base/centos5-3-iptables-l7-filter-ipp2pu002639s-true.html
Centos5.3+iptables+l7-filter+IPP2P的实现!
发表于4年前 ⁄ Linux基础 ⁄ 评论数 12 ⁄ 被围观 11,531 views+
这两天和一位朋友,相互研究了一下在IPTABLES中增加新的模块功能。
在网上查了些资料,都没有成功实现,最后,经过测试与调试,最终实现。
现在就把具体步骤贴出来,与大家分享。
个人建议:在安装最新的软件前,大家最好看一下他们的版本与适合的版本。否则,出了问题也找不到原因!
系统环境:
CentOS 5.3
Kernel 2.6.18-128.el5
iptables 已经卸载(采用源码进行安装)
1.下载所需软件包
kernel 2.6.19.7
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.7.tar.bz2
iptables 1.3.7
# wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2
L7-filter http://sourceforge.net/project/showfiles.php?group_id=80085
netfilter-layer7-v2.9.tar.gz
l7-protocols-2007-06-22.tar.gz
以上软件全部下载在用户的家目录,全部解压到/usr/src/
2.配置编译新内核
先给内核打包:(当前目录/usr/src)
# cd linux-2.6.19.7
# patch -p1 < /usr/src/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch (给内核打上L7-filter的内核补丁)
接下来,就是编译内核
# make menuconfig
选择好layer 7 (位置如下)
-> Networking x
x -> Networking support (NET [=y]) x
x -> Networking options x
x -> Network packet filtering (replaces ipchains) (NETFILTER [=y]) x
x -> IP: Netfilter Configuration x
x -> IP tables support (required for filtering/masq/NAT) (IP_NF_IP x
x -> Layer 7 match support (EXPERIMENTAL) (IP_NF_MATCH_LAYER7 [= x
# make bzImage
# make modules
# make modules_install
以上这三步,用的时间有点长,在实验的时候,做了好几次,郁闷啊!!!!
# make install
# reboot(选择编译好的内核启动系统,也可以在/etc/grub.conf中进行一下设置,就不用在启动的时候选择了)
# uname -r (查看新的内核)
3.更新升级Iptalbes的Layer7补丁:(当前目录/usr/src)
# cd cd iptables-1.3.7
# patch -p1 < /usr/src/netfilter-layer7-v2.9/iptables-layer7-2.9.patch
# chmod +x extensions/.layer7-test
# make KERNEL_DIR=/usr/src/linux-2.6.19.7
# make install KERNEL_DIR=/usr/src/linux-2.6.19.7
# iptables -V(查看IPTABLES的版本)
4. 安装Layer7 协议文件:(当前目录/usr/src)
# cd l7-protocols-2007-06-22
# make install
5.使用iptables layer-7 filter:
# iptables -t mangle -I PREROUTING -m layer7 –l7proto edonkey -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto bittorrent -j DROP (禁止bt)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto qq -j DROP (禁止QQ通讯)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto msnmessenger -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto xunlei -j DROP (禁止迅雷)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto kugoo -j DROP (禁止kugoo)
# iptables -t mangle -I PREROUTING -m layer7 –l7proto yahoo -j DROP (禁止Yahoo! Messenger)
6.增加iptables的ipp2p模块:
下载patch-o-matic-ng-20060701软件
ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/
安装IPTABLES的补丁
cd /usr/src/ patch-o-matic-ng-20060701
# export KERNEL_DIR=/usr/src/linux-2.6.19.7
# export IPTABLES_DIR=/usr/src/iptables-1.3.7
# ./runme ipp2p
编译内核
# cd /usr/src/linux-2.6.19.7
# make modules SUBDIRS=net/ipv4/netfilter
cp -f /usr/src/linux-2.6.19.7/net/ipv4/netfilter/*.ko /lib/modules/2.6.19.7/kernel/net/ipv4/netfilter
chmod +x /lib/modules/2.6.19.7/kernel/net/ipv4/netfilter/*.ko
安装ipp2p协议
cd ipp2p-0.8.2/
make
cp libipt_ipp2p.so /usr/local/lib/iptables/
cp ipt_ipp2p.ko /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/
chmod +x /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
depmod -a
进行测试
iptables -A FORWARD -m ipp2p –edk –kazaa –bit -j DROP
iptables -A FORWARD -p tcp -m ipp2p –ares -j DROP
iptables -A FORWARD -p udp -m ipp2p –kazaa -j DROP
因为没有测试的条件,所以,具体的就没有进行测试,大家如果有条件的话,就自行在环境中测试!!
分享到:
相关推荐
centos5.3_64镜像包,安装包,ISO镜像
compat-libstdc++-33-3.2.3-47.3.i386.rpm Centos7 安装oracle 所需软件包
linux vnc 缺少的文件 libstdc++-libc6.2-2.so.3 解压后, 需要将这个文件放在/usr/lib下, linux vnc-4_1_3-x86_linux 下的vnc才能正常工作哦, 不然一直会报错说找不到或者没有这个文件
compat-libstdc++-33-3.2.3-71.el7.x86_64
标题中的"compat-libstdc++-33-3.2.3-72.el7.x86_64.zip"是一个包含兼容性库的压缩包,主要用于解决在CentOS7系统上运行某些旧版本软件时可能遇到的问题。这个库特别针对了GCC(GNU Compiler Collection)的3.2.3...
Linux 7 compat-libstdc++-33-3.2.3-72 安装包,安装介质缺少的rpm
标题中的"compat-libstdc++-33-3.2.3-72.el7.x86_64"是一个重要的软件包,它在Linux环境中主要用于兼容性支持。这个包包含的是GNU标准C++库的一个特定版本(3.2.3),它允许运行那些依赖于旧版libstdc++的程序。在...
RH linux5.4 64位 系统包compat-libstdc++-33-3.2.3-61.x86_64.rpm
标题中的"compat-libstdc++-33-...总的来说,`compat-libstdc++-33`是Oracle 11gR2在CentOS 7上运行的关键组成部分,它确保了软件与系统库的兼容性,使得企业能够利用这个强大的数据库系统来存储、管理和处理数据。
CentOS6.5安装64位Oracle11G R2依赖包
linux下安装oracle,预安装文件,compat-libstdc++-33,oracle-database-preinstall-19c-1.0-1,必安装前置依赖包,rpm文件,一键安装,带有oracle个人安装笔记,按照笔记安装基本可以顺利安装,内附常见问题
libstdc++-devel-4.8.5-4.el7.x86-64.rpm
`compat-libstdc++-33-3.2.3-61`是一个特定版本的兼容库,主要用于支持旧版的GNU C++标准库,它包含了两个不同架构的版本:`i386.rpm`适用于32位系统,而`x86_64.rpm`则适用于64位系统。 `libstdc++`是GNU项目的一...
Linux上安装Oracle需要的包 很多教程上都用的这个版本
Centos6 x64中支持GLIBCXX-3.4.20版本的libstdc++6_4.9.2-10+deb8u1_amd64.deb文件
解决centos6 64位系统 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found问题,以下是步骤: ar -x libstdc++6_4.7.2-5_amd64.deb && tar xvf data.tar.gz cd usr/lib/x86_64-linux-gnu/ cp libstdc++....
"Linux+CentOS-7-x86-64-Minimal-2009.iso" 是一个Linux发行版CentOS 7的最小化安装ISO镜像文件。CentOS是一个基于RHEL(Red Hat Enterprise Linux)源代码再编译的社区版本,它提供了与RHEL几乎相同的稳定性和安全...
"compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm"是一个RPM(Red Hat Package Manager)格式的软件包,这是Linux系统中常见的软件安装格式,尤其在基于RPM的发行版如Red Hat Enterprise Linux (RHEL)、CentOS等中。...
作为一个团体,CentOS是一个开源软件贡献者和用户的社区。典型的CentOS用户包括这样一些组织和个人,他们并不需要专门的商业支持就能开展成功的业务。CentOS是Red Hat Enterprise Linux的100%兼容的重新组建,并完全...