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

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

网络防火墙

作者简介:永福,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的前世今生和归宿

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

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. 不忘初心说道:

    我在centos7中 ,关闭了firewalld服务,我添加iptables规则,立即生效, 去查看firewalld还是没有启动。而在centos6下面,service iptables stop ,添加规则,立即启动iptables服务, 还有 在centos7 上面安装iptables-service,还是看不到任何情况! 您能解释一下吗? 谢谢!

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部