网络防火墙之iptables的前世今生和归宿
来源:互联网 发布:修改linux ip 编辑:程序博客网 时间:2024/04/28 08:47
任何事物都有一个从无到有,再归于无的过程。是的,我这里用了一个绝对词:任何。
防火墙
在计算机领域中,防火墙(英文: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之前世今生
- 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: https://ke.qq.com/course/202653
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匹配,维持兼容性的同时获得更大的灵活性。
- 网络防火墙之iptables的前世今生和归宿
- .NET开源项目的前世和今生系列 之 .NET开源压缩文档处理的前世和今生
- 全光网络的前世今生
- 全光网络的前世今生
- 浪潮之巅-互联网的前世今生
- 正态分布的前世今生之二
- 正态分布的前世今生之三
- 正态分布的前世今生之四
- Android 开发之Handler的前世今生
- js之class的前世今生
- 郭健: Linux进程调度技术的前世今生之“前世”
- 郭健: Linux进程调度技术的前世今生之“今生”
- 还原java的今生和前世!
- svn的前世今生和安装使用
- ORA-19706和_external_scn_rejection_threshold_hours的前世今生
- 软件需求说明的前世和今生
- 堆和栈的前世与今生
- 接口和抽象类的前世今生
- linux 重定向
- 【服务器】腾讯云 Linux javaWeb服务器部署
- AD分辨率和精度区别
- 639UVa棋盘放车
- 《探索C++多线程》:future源码(二)
- 网络防火墙之iptables的前世今生和归宿
- android全屏/沉浸式状态栏下,各种键盘挡住输入框解决办法
- Centos 7 开放查看端口 防火墙关闭打开
- MySQL MHA高可用方案
- Binder子系统之调试分析(一)
- Url_Pattern
- I2C总线协议学习笔记
- Eventbus注册异常:its super classes have no public methods with the @Subscribe annotation
- vector的基本使用