设为首页 收藏本站
查看: 317|回复: 0

[经验分享] 为iptables安装layer7内核模块

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-7 09:06:10 | 显示全部楼层 |阅读模式

layer7 是在linux上面的一个防火墙模块,它可以在iptables上面实现七层过滤,能过滤包括电驴,msn,qq等一些列软件,我们知道在Linux上面firewall是基于内核模块实现的,所以我们要想起用layer7模块就必须编译内核,下面是步骤:


在刚开始的几次试验中,一直make失败,先总结下原因,开始我是用的centos6.5,内核版本是2.6.20.新编译内核版本是2.6.25 ,后来改换redhat5.6的系统。2.6.18内核。成功(开始可能新内核版本高于就内核版本。也可能是centos里的模块不一样,)

环境
VMware10.0
redhat5.6  

iptables-1.4.2.tar.bz2

l7-protocols-2008-10-04.tar.gz

linux-2.6.25.19.tar.bz2

netfilter-layer7-v2.20.tar.gz

1. 需要源码包

The 2.4 or 2.6 Linux kernel source (2.6 strongly preferred) 内核源2.4或者2.6版本包   
The iptables source  iptables源码包   
l7-filter kernel version" package  lyer7源码包     
"Protocol definitions" package (l7-protocols-YYYY-MM-DD.tar.gz) lyer7规则包
2.  编译内核
# tar zxvf linux-2.6.28.10.tar.gz -C /usr/src // 解压内核源码包到/usr/scr
# tar zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src//解压layer7源码包到/usr/src
# ln –s /usr/src/linux-2.6.28.10/   /usr/src/linux//把内核解压后文件夹连接到/usr/src/linux文件夹
# cd /usr/src/linux/ 切换到/usr/srclinux 文件夹
# patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch  //用layer7提供的补丁为内核打补丁
#cp /boot/config-2.6.18-164.el5    /usr/src/linux/.config 复制/boot/config-XX 为 .config为蓝本
# make menuconfig
编译内核在下面选项中启用以下模块
Networking support → Networking Options →Network packet filtering framework →Code Netfilter Configurationü   
<M> Netfilter connection tracking supportü     
<M> “layer7” match supportü     
<M> “string” match supportü   
<M> “time” match supportü      
<M> “iprange” match supportü      
<M> “connlimit” match supportü      
<M> “state” match supportü      
<M> “conntrack” connection match supportü      
<M> “mac” address match supportü      
<M>   "multiport" Multiple port match supportv      
Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configurationü      
<M> IPv4 connection tracking support (required for NAT)ü      
<M>   Full NATv      
<M>  MASQUERADE target             support                                                                                   <M>     NETMAP target support                                       <M>     REDIRECT target support
为内核添加支持选项(layer7)#make 开始编译
#make modules_install 安装内核模块 安装在/lib/modules/2.6.28.10/
#make install 安装新内核编辑grub 把新内核作为默认启动内核 并重启     
# cp /etc/rc.d/init.d/iptables ~/iptables复制/etc/rc.d/init.d/iptables 到~/iptables 为了用service iptables 可用
# cp /etc/sysconfig/iptables.config /root 备份iptables配置文件      
# rpm -e iptables-ipv6 iptables iptstate --nodeps卸载当前系统下的iptables     
# tar jxvf iptables-1.4.6.tar.bz2 –C /usr/src解压iptables 源码包到/usr/src     
# cd /usr/src/iptables-1.4.6j切换到iptables文件夹内
#cp   ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*   ./extensions/ 把layer7中对于iptables的补丁复制到iptables 源码中   
./configure --prefix=/usr --with-ksource=/usr/src/linux配置iptables 默认安装前缀为/usr 内核模块位于 /usr/src/linux下   
#make 编译iptables     
#make install 安装iptables     
# tar zxvf l7-protocols-2009-05-28.tar.gz安装layer7的     
# cd l7-protocols-2009-05-28切换到目录      
# make install安装layer7规则包      
# mv ~/iptables /etc/rc.d/init.d/把此前备份的 ~/iptables 复制回到/etc/rc.d/init.d/目录下
# cp /root/iptables.config /etc/sysconfig/iptables.config 复制回iptables配置文件
# vim /etc/rc.d/init.d/iptables 编写这个文件
把$iptables的路径改成/usr/sbin/$iptables
QQ截图20150807090550.png
如果在防火墙启动的时候报错

Loading additional iptables modules: ip_conntrack_netbios_n[FAILED]

[iyunv@localhost ~]# vi /etc/sysconfig/iptables-config

注释掉
#IPTABLES_MODULES="ip_conntrack_netbios_ns"
6.使用layer7
#iptables -t nat -A POSTROUTING -m layer7 --17proto qq  -j DROP
或者
# iptables -t mangle -I POSTROUTING -m layer7 --l7proto msnmessenger -j DROP
# iptables -t mangle -I POSTROUTING -m layer7 --l7proto qq -j DROP

查看当前封禁情况:
# iptables -t mangle -L POSTROUTING -v
Chain POSTROUTING (policy ACCEPT 386 packets, 41321 bytes)
pkts bytes target     prot opt in     out     source               destination        
    0     0 DROP       all  --  any    any     anywhere             anywhere            LAYER7 l7proto aim
    0     0 DROP       all  --  any    any     anywhere             anywhere            LAYER7 l7proto bittorrent  



QQ截图20150807090556.png






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-95005-1-1.html 上篇帖子: linux 根空间消失 下篇帖子: inotify+rsync
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表