rhel5的l7内核编译

来源:岁月联盟 编辑:exp 时间:2011-09-07

一、重新编译linuxn内核
(1)解压netfilter-layer7和linxu内核
tar -jxf netfilter-lay[table] -C /usr/src
tar -jxf linux-2[table] -C /usr/src
cd /usr/src/linux-2[table]
patch -p1 </home/yangbo注释:yangbo为ftp上传的那个文件价/netfilter-layer7[table]/kernel-[tables]
(2)重新配置内核参数
cp /boot/config-[table] ./config
make menuconfig
   Code Netfiler configuartion
      依次选择“Network--->Network Options --> Network Packet filering framework(Netfiler)-->Code Netfilter Configuration”
      将“Netfilter connection tracking support”功能编译为【M】
      向下找“layer7”match support
          “string” match support
           "time" match support
           "iprange" addres range match support
           "connlimit" match support
           "state" match support
   IP:Netfilter configuartion
      依次展开“Networking-->Network Options --->Network Packet filering framework(Netfiler)-->IP:Netfilter configuartion”
          "IPv4 connection tracking support(require for NAT)"
          "FUll NAT"
          "MASQUERADE target support"
          "REDIRECT ttarget support"
          全部编译为【M】
File systems-->Ext3 journalling file system support去掉【M】
(3)编译内核,并安装内核文件,复制模块文件
make
make modules_install
make install
----------------------------------------------------------------------------------------
(4)调整GRUB引导菜单,使系统默认以新内核启动系统
vi /boot/grub/grub.conf
default=1
改为
default=0
----------------------------------------------------------------------------------------


二、重新编译安装iptables并安装L7-protocol协议包
(1)卸载系统原有的iptables相关软件包
rpm -e iptabnles-ipv6 iptanbles iptstate --nodeps
(2)解压释放iptables源码包,并应用补丁文件
tar jxvf iptables-1.4[tables] -c /usr/src/
cd /usr/src/iptables-1.4.2/
cp /usr/src/netfilter-layer-v.2.21/iptables-1.4.1.1-for-kernel[tables]/libxt_layer7.*extensions/
(3)配置,编译并安装iptables,使用“--with-ksource”参数指定内核源码路径。
./ configure --prefix=/ --with-ksource=/usr/src/linux-2.6.28.8
make
make install
(4)安装L7-protocol协议定义包
tar zxvf L7-protocol[tables]
cd L7-protocol[tables]
make install


三、使用iptables设置应用层过滤规则
例1,使用layer7显示匹配策略使用qq,msn,edonkey等应用层数据包访问
iptables -A FORWARD -m layer7 --l7proto qq -j DROP
iptables -A FORWARD -m layer7 --l7proto msn-filetrandfer -j DROP
iptables -A FORWARD -m layer7 --l7proto msnessenger -j DROP
例2,使用“connlimit”显示匹配进行数据并发连接控制,超出100个并发连接时拒绝
iptables -A FORWARD -p tcp --syn -m connlimit --connlimit-above 100-j DROP
例3,使用“--time”显示匹配根据时间范围设置数据访问策略,允许周一到周五8:00-18:00之间的数据访问
iptables -A FORWARD -p tcp --dport 80 -m time --timestart 8:00 --timetop 18:00 --weekdays Mon, Tue,wed,thu,fri -j accept
例4,使用“string”显示匹配策略包含“tencent”,"verycd","色情",“成人电影”的网络访问数据
iptables -A FORWARD -p  udp --dport 53 -m string --string "tencent" --algo bm -j DROP
iptables -A FORWARD -p  udp --dport 53 -m string --string "verycd" --algo bm -j DROP
iptables -A FORWARD -p  tcp --dport 80 -m string --string "色情" --algo bm -j DROP
iptables -A FORWARD -p  tcp --dport 80 -m string --string "成人电影" --algo bm -j DROP

作者“贾晓阳”

上一篇: nagios优化
下一篇:linux限速路由