Linux防火墙iptables/netfilter(三)

我们前面两篇已经把iptables介绍的比较充分了,今天来说一个iptables对layer 7的实践。我们说过iptables/netfilter工作在内核空间是不支持应用层协议的,但是诸如QQ、MSN、迅雷等应用我们是无法在传输层或者网络层完全封闭它们的,因为它们非常狡猾发现自己的端口被封掉之后会用其它打开的端口进行传输数据,所以只有在7层中封闭它们才行。所以有人就针对这种情况对iptables/netfilter进行了二次开发,写了一些补丁,我们打上这些补丁可以使iptables支持7层协议。

因为iptables-l7的作者在09年之后就没有在更新过这个补丁,所以它所依赖的内核版本和iptables程序包都比较老,所以我们需要自己编译内核,自己编译iptables才能使用。

我们需要用到以下几个包:

安装编译环境:

创建编译所需用户、解压内核文件:

向内核打layer 7的补丁:

配置并编译内核:

为了节省时间,我们用系统自带的config文件做模板在其基础上进行修改

选择网络功能:

选择网络选项:

选择netfilter模块:

选择netfilter核心配置:

添加支持layer7层模块:

关闭RedHat内核模块校验:

保存退出:

因为红帽为了防止其它人更改其内核模块进行二次发行,所以添加了模块签名机制,我们的模块没有红帽的签名,所以需要关闭这个功能才能编译成功。

#yum install screen -y
#screen
#make j 4
#make modules_install
#make install

查看新内核是否安装成功:

使用新内核启动:

编译前的准备工作:

编译安装:

设置配套的脚本和配置文件:

安装layer7的补丁:

开启连接追踪功能:

构建实验拓扑:

NAT Server:192.168.1.0/24, 192.168.23.0/24
Client:192.168.23.0/24

创建NAT条目:

可以看到Client的确是通过NAT Server上网的:

现在QQ也可以登录:

设置layer7层条目拒绝QQ:

已经登录失败了:

匹配到的layer7的规则:

还是能够上网:

匹配到的NAT规则:

拒绝QQ连接的原理是分析其七层协议包,拒绝其开头的字节和结尾的字节,理解了就不是很难。

OK,我们的实验成功啦。可以有效的防止QQ登录,但是还可以上网。虽然我们可以完成这样甚至限制更多的7层服务的功能,但是我是不赞成公司使用的,因为只有自由开放的公司才有活力,靠权利去禁止某些东西归根结底治标不治本。如有错误敬请指出。

时间: 2024-08-03 16:58:19

Linux防火墙iptables/netfilter(三)的相关文章

linux防火墙--iptables(三)

七.SNAT源地址转换 ·Source Network Address Translation ·修改数据包的源地址 ·仅用于nat表的POSTROUTING链 Example:局域网共享公网IP上网 ·配置的关键策略 → 做完路由选择后,针对来自局域网.即将从外网接口发出去的数据包,将其源IP地址修改为 网关的公网IP地址  # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 69.166

Linux防火墙iptables/netfilter(一)

防火墙大家都不陌生,或者说都听说过,现实中的防火墙是将一个区域内的火隔离开来使之不蔓延到另一个区域,计算机领域的防火墙与之功能类似,也是为了隔离危险.在如今广阔的互联网领域内,我们一般会相信一个叫做"黑暗森林"的法则.对于这个法则大家可以去搜索一下,它是在<三体>系列小说中写出来的,大致意思是在黑暗丛林中我们无法判断对方对自己是否有恶意, 对方也无法判断我们是否有恶意,所以一见面就把对方灭掉.互联网中的恶意攻击者太多了,我们无法确定它们都是水更无法把它们灭掉,但是我们可以把

Linux防火墙iptables/netfilter(二)

上一篇文章我们说了一些iptables/netfilter的基础知识,本文我们来介绍一下iptables的规则编写.Iptables的规则可以概括的分为两个方面:1.报文的匹配条件:2.匹配到后的处理动作.其中匹配条件分为基本匹配条件和扩展匹配条件,处理动作分为内建处理机制和自定义处理机制.这里需要注意的一点是,自定义处理机制(自定义链)不在内核中所以报文是不会经过自定义链的,它只能被内建机制引用即当做处理的子目标. Iptables说白了就是一个规则管理工具,用于生成.检查和自动实现规则.规则

关于Linux防火墙iptables的面试问答

关于Linux防火墙'iptables'的面试问答 Nishita Agarwal是Tecmint的用户,她将分享关于她刚刚经历的一家公司(印度的一家私人公司Pune)的面试经验.在面试中她被问及许多不同的问题,但她是iptables方面的专家,因此她想分享这些关于iptables的问题和相应的答案给那些以后可能会进行相关面试的人.       所有的问题和相应的答案都基于Nishita Agarwal的记忆并经过了重写.   "嗨,朋友!我叫  Nishita Agarwal.我已经取得了理学

linux防火墙--iptables(二)

五.filter过滤和转发 a.打开内核的IP转发 # sysctl -w net.ipv4.ip_forward=1 或 # echo 1 > /proc/sys/net/ipv4/ip_forward b.基本匹配条件 ·通用匹配 → 可直接使用,不依赖于其他条件或扩展 → 包括网络协议.IP地址.网络接口等条件 ·隐含匹配 → 要求以特定的协议匹配作为前提 → 包括端口.TCP标记.ICMP类型等条件 类别 选项 用法 通用匹配 协议匹配 -p 协议名 地址匹配 -s 源地址      

Linux防火墙iptables简明教程

前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保存i

linux 防火墙iptables简明教程

前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保存i

Linux防火墙(Iptables)的开启与关闭

Linux防火墙(iptables)的开启与关闭 Linux中的防火墙主要是对iptables的设置和管理. 1. Linux防火墙(Iptables)重启系统生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2.Linux防火墙(Iptables) 即时生效,重启后失效 开启: service iptables start 关闭: service iptables stop 需要说明的是对于Linux下的其它服务都可以用以上命令执行

【Linux进阶】Linux防火墙iptables详解

前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的 防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火墙