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) |