专栏名称: 运维帮
互联网技术分享平台,分享的力量。帮主一直坚信技术可以改变世界,从毕业到现在干了15年运维,有许多话要和你说。
目录
相关文章推荐
InfoQ架构头条  ·  “天价”ERP ... ·  昨天  
51好读  ›  专栏  ›  运维帮

防火墙之iptables的前世今生和归宿

运维帮  · 公众号  · 运维  · 2017-05-10 18:18

正文

作者简介:永福,7年大型互联网Linux运维实战经验先后供职于好豆网、芒果TV,从零构建行业领先运维架构精通web集群、数据库集群、分布式文件系统架构、大数据运维架构等。研发的waf应用于各大行业网站。


正文

摘要: 任何事物都有一个从无到有,再归于无的过程。是的,我这里用了一个绝对词:任何。 目前iptables系在2.4、2.6及3.0的内核底下运作,旧版的Linux内核(2.2)使用ipchains及ipwadm(Linux 2.0)来达成类似的功能,2014年1月19日起发行的新版Linux内核(3.13后)则使用nftables取而代之。


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


防火墙


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


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


iptables


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


iptables一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。在大部分的Linux系统上面,iptables是使用/usr/sbin/iptables来操作。


通常iptables都需要内核层级的模块来配合运作,Xtables是主要在内核层级里面iptables API运作功能的模块。因相关动作上的需要,iptables的操作需要用到超级用户的权限。


iptables之前世今生



目前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匹配,维持兼容性的同时获得更大的灵活性。


近期运维帮技术活动

架构演进中的关键技术—应用性能管理大讲堂第十七期@广州


商务合作,请加微信yunweibang555