网络防火墙之 iptables 的前世今生

iptables不可能永远独占linux世界,他也有发展的尽头。在linux内核3.13中就由nftables取代了iptables。作为应用层的iptables,也在被抛弃,RHEL7/CentOS7中放弃了iptables,而选择firewalld作为防火墙的配置工具。

任何事物都有一个从无到有,再归于无的过程。是的,我这里用了一个绝对词:任何。

防火墙

在计算机领域中,防火墙(英文:Firewall)是一项协助确保信息安全的设备,会依照特定的规则,允许或是限制传输的数据通过。防火墙可能是一台专属的硬件或是架设在一般硬件上的。通俗的一个类比就是中国古代的长城或者城市的城墙,用于安全防御的作用,只有满足特定要求,接受检查后才能进入。

防火墙作为内部网与外部网之间的一种访问控制设备,常常安装在内部网和外部网交界点上。主要分为网络层防火墙和应用层防火墙两种,但也有些防火墙是同时运作于网络层和应用层。

网络防火墙之 iptables 的前世今生

iptables

iptables 属于网络层防火墙。由于工作在网络层,不需要把数据发送到用户空间,在系统内核空间中进行了数据过滤处理,因此可以保证数据处理效率。与此同时也会带来一个坏处,既然是工作于内核空间,那么它要么集成到内核内部要么被内核调用,且用户是无法直接与内核交互,那我们怎么定义 iptables 规则。因为以上原因 iptables 分为两部分,一部分是工作于内核中真正实现访问管控功能的 netfileter,与此同时还要有与内核通信提供过滤规则的用户空间组件 iptables。其实 iptables 的官方网站就是 The netfilter.org project。

iptables 一个运行在用户空间的应用软件,通过控制 Linux 内核 netfilter 模块,来管理网络数据包的流动与转送。在大部分的 Linux 系统上面,iptables 是使用/usr/sbin/iptables 来操作。通常 iptables 都需要内核层级的模块来配合运作,Xtables 是主要在内核层级里面 iptables API 运作功能的模块。因相关动作上的需要,iptables 的操作需要用到超级用户的权限。

网络防火墙之 iptables 的前世今生

iptables 之前世今生

Linux 内核(1.2+):ipwadm

Linux 内核(2.2):ipchains

Linux 内核(2.4,2.6,3.0+):netfilter/iptables

Linux 内核(3.13+):nftables

目前 iptables 系在 2.4、2.6 及 3.0 的内核底下运作,旧版的 Linux 内核(2.2)使用 ipchains 及 ipwadm(Linux 2.0)来达成类似的功能,2014 年 1 月 19 日起发行的新版 Linux 内核(3.13 后)则使用 nftables 取而代之。

iptables 之归宿

iptables 不可能永远独占 linux 世界,他也有发展的尽头。在 linux 内核 3.13 中就由 nftables 取代了 iptables。作为应用层的 iptables,也在被抛弃,RHEL7/CentOS7 中放弃了 iptables,而选择 firewalld 作为防火墙的配置工具。firewalld 相对于 iptables 主要的优点有:

1.firewalld 可以动态修改单条规则,而不需要像 iptables 那样,在修改了规则后必须得全部刷新才可以生效;

2.firewalld 在使用上要比 iptables 人性化很多,即使不明白“五张表五条链”而且对 TCP/IP 协议也不理解也可以实现大部分功能。另外同样基于 linux 内核的 ubuntu,使用的防火墙配置工具是 ufw。

nftables 是取代 iptables、ip6tables、arptables 和 ebtables 的新的包过滤框架。nftables 旨在解决现有{ip/ip6}tables 工具存在的诸多限制。相对于旧的 iptables,nftables 最引人注目的功能包括改进性能如支持查询表;事务型规则更新,所有规则自动应用;等等。nftables 诞生于 2008 年,2013 年底合并到 Linux 内核,从 Linux 3.13 起开始作为 iptables 的替代提供给用户。nftables 实现了一组被称为表达式的指令,可通过在寄存器中储存和加载来交换数据。也就是说,nftables 的核心可视为一个虚拟机,nftables 的前端工具 nft 可以利用内核提供的表达式去模拟旧的 iptables 匹配,维持兼容性的同时获得更大的灵活性。

人已赞赏
Linux专栏

看看你选择使用 Linux 的原因是什么?

2019-4-26 20:38:24

Linux专栏

Deepin Linux 15.10 发布

2019-4-29 8:44:18

7 条回复 A文章作者 M管理员
  1. 文章不错,加油!

  2. 大部分人还是认 iptables,nftables应用方面还没有普及吗?

    • 是的,比如我就认可iptables!

    • 我用到的也是iptables,规则还是那么酸爽

    • 呵呵,是的,每次看到iptabels规则我就比较抓狂!

    • 前人树下好乘凉,你是大树

    • 谢谢支持!

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索