Centos5下安装iptables以及layer7协议
时间:2014-08-25 13:00 来源:linux.it.net.cn 作者:it
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)
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 debugging output
把 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) |