欢迎大家来到IT世界,在知识的湖畔探索吧!
什么是防火墙
防火墙(Firewall)是一种信息安全系统,作用在可信和非可信网络之间。其在信息安全保障上起着关键性作用,以致于大多数操作系统都会随身自带。防火墙的主要工作原理是基于一组安全规则(Rule)来对网络流量进行监控,如流量包符合放行规则则放行,符合丢弃规则则丢弃。
从其定义来看防火墙挺简单的,其复杂性是在于如何方便用户配置的同时高效对流量进行监控,这也是在做具体防火墙实现上的目标。为此目标,各路大神开始各显神通,写的“防火墙”也层出不穷,如 iptables,firewalld,ufw,nftables,nft 等。因此用户也被这么一堆“防火墙”搞得云里雾里,应该选择哪个呢?性能那个好?会不会冲突……
防火墙架构
该架构图分成用户空间(userspace)和内核空间(kernel)两部分。上层组件是下层组件的前端,反之为后端。说白就是下层组件太难用,各路大神撸起袖子开始对下层抽象设计,实现更易于使用的上层组件。
从图看出最终落到内核上的只有 *_tables 和 netfilter 组成的防火墙核心,前者负责提供规则,后者负责对流量包处理。用户空间上所有的组件都是规则配置辅助工具,严格上不是防火墙(前面引号括着“防火墙”的原因)。
防火墙是运行在内核态的,只会傻傻的执行符合其约束好的规则。但规则总得要存起来的,所以内核里的规则组件(*_tables)基本都会配套一个对应的用户态组件或接口来维护规则。这也就有 nf_tables 对 nftables 和 x_tables 对 xtables 的存在。
从 iptables 到 x_tables 画的有些不一样,原因是3.13版内核开始 x_tables 被 nf_tables 代替。已在用最新版内核了好像还是和 iptables 打交道呢?nftables 做了一个适配层来提供兼容。原 xtables 体系是根据协议来组织的,见得最多的 iptables 只是其中一个,还有如 ip6tables,arptables 等等。这也是其被 nftables 代替的原因。
总结
Linux 防火墙核心部分就是 netfilter + nftables 其他都是外围工具。另外要提下 netfilter 不单只提供防火墙所需功能,涉及到数据包处理的基本都是通过其来完成。
参考资料
https://www.netfilter.org/projects/nftables/index.html
https://www.netfilter.org/projects/iptables/index.html
欢迎大家来到IT世界,在知识的湖畔探索吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/78836.html