# uname -r2.6.32-504.el6.x86_64

下载 kernel-2.6.32-504.el6.src.rpm和iptables-1.4.7-14.el6.src.rpm

http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/

下载iptables-1.4.20.tar.bz2

ftp://ftp.netfilter.org/pub/iptables

下载netfilter-layer7-v2.22.tar.gz

http://l7-filter.sourceforge.net/

iptables-1.4.7-14.el6.src.rpm和iptables-1.4.20.tar.bz2随便用一个就好

为内核打补丁并重新编译内核:

# useradd mockbuild            #不创建的话下面会警告# rpm -i kernel-2.6.32-504.el6.src.rpm# cp rpmbuild/SOURCES/linux-2.6.32-504.el6.tar.bz2 linux-2.6.32-504.el6.tar.bz2# tar xf linux-2.6.32-504.el6.tar.bz2 -C /usr/src    #一般在/usr/src下操作内核# cd /usr/src/# lsdebug  kernels  linux-2.6.32-504.el6  vboxhost-4.3.26# ln -sv linux-2.6.32-504.el6 #linux很多应用程序用的到源码的话会到/usr/src找linux而不是linux-2.6.32-504.el6,所以创建个链接"linux" -> "linux-2.6.32-504.el6"# cd linux# cp /boot/config-2.6.32-504.el6.x86_64 .config复制生成.config文件

退出,退出,保存

# cd# tar xf netfilter-layer7-v2.23.tar.gz -C /usr/src/# cd /usr/src/linux# patch -p1 < ../netfilter-layer7-v2.23/kernel-2.6.32-layer7-2.23.patch # make menuconfig# yum -y install screen# screen# make

按下Ctrl+a,松开,再按d,回到终端

# screen -lsThere is a screen on:11241.pts-0.www(Detached)1 Socket in /var/run/screen/S-root.# screen -r 11241

在安装时有可能出现这样的错误

wKioL1UkoHTQtDMgAALL5PxEPYk415.jpg

解决方法

# make clean

# make menuconfig

wKiom1Ukn1Wx4y8pAACFrwZ41sk290.jpg

wKioL1UkoJ3DZcXZAACi9kO9RGE752.jpg

这项关闭

wKioL1UkoJ2znZilAABriARBY-4237.jpg

wKiom1Ukn1bT8XlxAABWdLQHbLk635.jpg

这项关闭

# make# make modules_install# make install# shutdown -r now# uname -r2.6.32-l7.1

iptables的安装:

1、下载iptables源码,打补丁,而后编译; 

2、下载src.rpm格式包,安装,打补丁,而后重新制作成rpm包;

安装方法1

# tar xf iptables-1.4.20.tar.bz2 # cp /usr/src/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* iptables-1.4.20/extensions/

然后编译安装就可以了

安装方法2

# rpm -ivh iptables-1.4.7-14.el6.src.rpm # cd rpmbuild/SOURCES/iptables-1.4.7/extensions# cp /usr/src/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* ./# cd ..# rm -rf iptables-1.4.7.tar.bz2 # tar jcf iptables-1.4.7.tar.bz2 iptables-1.4.7/*# rm -rf iptables-1.4.7/# cd ../SPECS/# lsiptables.spec  kernel.spec# vim iptables.spec Release: 15%{?dist}14-->15        #把自己的数字加1就好--with-kernel=/usr/src/linux --with-kbuild=/usr/src/linux --with-ksource=/usr/src/linux# rpmbuild -bb iptables.spec    #要等kernel安装完成才行

我使用的方法2:

# rpmbuild -bb iptables.spec# cd ..# lsBUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS# cd RPMS/x86_64/# lsiptables-1.4.7-15.el6.x86_64.rpm            iptables-devel-1.4.7-15.el6.x86_64.rpmiptables-debuginfo-1.4.7-15.el6.x86_64.rpm  iptables-ipv6-1.4.7-15.el6.x86_64.rpm# rpm -qa | grep iptablesiptables-1.4.7-14.el6.x86_64iptables-ipv6-1.4.7-14.el6.x86_64# rpm -Uvh iptables-1.4.7-15.el6.x86_64.rpm iptables-ipv6-1.4.7-15.el6.x86_64.rpm            #升级这两个rpm包就可以,升级完成,则iptables能使用layer7# tar xf l7-protocols-2009-05-28.tar.gz     #使layer7可以识别相关协议# cd l7-protocols-2009-05-28# make install# cd /etc/l7-protocols/protocols/

ACCT的功能已经可以在内核参数中按需启用或禁用。

net.netfilter.nf_conntrack_acct = 1

# sysctl -a | grep acctkernel.acct = 4230net.netfilter.nf_conntrack_acct = 0# sysctl -w net.netfilter.nf_conntrack_acct=1net.netfilter.nf_conntrack_acct = 1# iptables -A FORWARD -m layer7 --l7proto ssh -j REJECT    #现在ssh不能使用