> CentOS > CentOS入门 >

Centos5下安装iptables以及layer7协议

Centos5打iptables-p2p补丁和layer7扩展。

一、 准备工作

根据内核版本的相关性我还是选择了linux-2.6.18.8这个内核的版本。

1、下载相关程序

下载 kernel源码和源码patch

http://www.kernel.org/pub/linux/kernel/v2.6/

下载iptables源码

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

下载netfiter扩展

ftp://ftp.netfiter.org/pub/patch-omatic-ng/snapshot

http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/

下载layer7扩展(第一个为layer7协议,第二个为layer7内核与iptables的补丁)

wget http://downloads.sourceforge.net/l7-filter/l7-protocols-2007-11-22.tar.gz

wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7-v2.16.1.tar.gz

2、解压相关程序

tar zxvf linux-2.6.18.8.tar.gz -C /usr/src/

tar jxvf iptables-1.3.8.tar.bz2 -C /usr/src/

tar jxvf patch-o-matic-ng-20071120.tar.bz2 -C /usr/src/

tar zxvf l7-protocols-2007-11-22.tar.gz

tar zxvf netfilter-layer7-v2.16.1.tar.gz

3、定义相关符号链接

ln -s /usr/src/linux-2.6.18.8 /usr/src/linux

ln -s /usr/src/iptables-1.3.8 /usr/src/iptables

 

二、 内核打补丁

1、修改内核源代码相关参数

1、设置fd_set支持的最大数量

a、修改vi /usr/include/bits/typesizes.h

#define __FD_SETSIZE 1024 ---> 65536

b、修改vi /usr/src/linux/include/linux/posix_types.h

#define __FD_SETSIZE 1024 ---> 65536

2、修改vi /usr/src/linux/include/linux/fs.h

设置最大打开文件数量(TCP连接数量)

#define INR_OPEN 1024 ---> 65536

#define NR_FILE 8192 ---> 65536

3、修改vi /usr/src/linux/include/net/tcp.h

a、设置TIMEOUT的时间为1秒

#define TCP_TIMEWAIT_LEN (60*HZ) 60 ---> 1*HZ

b、设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上也是减少重试时间

#define TCP_SYNACK_RETRIES 5 ---> 3

2、读取原有的配置

首先做一个配置上的保存

cp /boot/config-2.6.18-8.el5 /usr/src/linux/.config

cd /usr/src/linux/

make menuconfig

选择 Load an Alternate Configuration File

选择 .config

保存 退出

3、内核打补丁

cd /usr/src/linux

gunzip ../patch-2.6.18.8.gz |patch -p1

4、内核打layer7补丁

cd /usr/src/linux

patch –p1

 

 

三、安装netfilter扩展

1、安装netfilter扩展

cd /usr/src/patch-o-matic-ng-20071120

首先下载相关的扩展

./runme –download

定义环境变量

export KERNEL_DIR=/usr/src/linux

export IPTABLES_DIR=/usr/src/iptables

安装iptables netfilter的扩展项(我安装了以下项目)

./runme ipp2p

./runme time

./runme connlimit

./runme u32

./runme geoip

 

四、配置内核选项

cd /usr/src/linux

make menuconfig

networking

networking options

network packet filtering (replaces ipchains)

IP:Netfilter Configuration

Layer 7 match support (EXPERIMENTAL)

[*] Layer 7 debugging output

IPP2P match support

TIME match support

Connections/IP limit match support

U32 match support

geoip match support

把 Layer 7 match 、ipp2p、time、 Connections/IP 、u32选上

去除Selinux相关

Security options

NSA SELinux Support 选项 去除

同时保存 退出

vi /etc/sysconfig/selinux

SELINUX=disabled

 

五、开始编译并安装

make

make modules_install

make install

2.6的kernel的编译把make bzImage make modules等步骤都在make一步都搞定,以前还要cp 内核和System.map,修改Grub.conf的步骤,统统make install搞定了。

六、设置grub.conf

设置default=0的相关项 主要是将我们配置好的新的内核启动的设置为缺省启动

重新启动计算机

 

七、安装新版本iptables以及layer7协议

1、cd /usr/src/iptables

export KERNEL_DIR=/usr/src/linux

export IPTABLES_DIR=/usr/src/iptables

patch -p1 < ../netfilter-layer7-v2.16.1/iptables-1.3-for-kernel-pre2.6.20-layer7-2.16.1.patch

chmod +x ./extensions/.layer7-test

make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man

make install BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man

2、安装l7-filter协议文件:

cd /usr/src/l7-protocols-2007-11-22

make install

同时要注意layer7屏蔽的信息会在终端画面显示,可以通过改变以下参数来关闭终端的显示:

vi /etc/sysconfig/syslog

KLOGD_OPTIONS="-x -c 3"

修改好以后要重置syslogd服务

killall -HUP syslogd

3、以下为关于layer7如何屏蔽信息的相关知识 (责任编辑:IT)