Linux下系统防火墙的发展历程和怎样学好防火墙(iptalbes和firewalld)
有关firewalld和iptables详细使用的文章
=====================================华丽的分割线=====================================
1. 认识防火墙
从逻辑上讲防火墙可以分为主机防火墙和网络防护墙。
主机防火墙:针对个别主机对出站入站的数据包进行过滤。(操作对象为个体)
网络防火墙:处于网络边缘,针对网络入口进行防护。(操作对象为整体)
从物理上讲防火墙可以分为硬件防火墙和软件防火墙。
硬件防火墙:通过硬件层面实现防火墙的功能,性能高,成本高。
软件防火墙:通过应用软件实现防火墙的功能,性能低,成本低。
2. 系统防火墙发展过程
防火墙的发展史就是从墙到链再到表,也是从简单到复杂的过程。
防火墙工具变化如下:
ipfirewall--->ipchains--->iptables-->nftables(正在推广)
Linux 2.0版内核中:包过滤机制为ipfw,管理工具是ipfwadm。
Linux 2.2版内核中:包过滤机制为ipchain,管理工具是ipchains。
Linux 2.4,2.6,3.0+版内核中:包过滤机制为netfilter,管理工具是iptables。
Linux 3.1(3.13+)版内核中:包过滤机制为netfilter,中间采取daemon动态管理防火墙,管理工具是firewalld。
# 目前低版本的firewalld通过调用iptables(command),它可以支持老的iptables规则(在firewalld里面叫做直接规则),
# 同时firewalld兼顾了iptables,ebtables,ip6tables的功能。
3. iptables和nftables
nftables
nftables诞生于2008年,2013年底合并到Linux内核,从 Linux 3.13起开始作为iptables的替代品提供给用户。
它是新的数据包分类框架,新的linux防火墙管理程序,旨在替代现存的 {ip,ip6,arp,eb}_tables,它的用户空间管理工具是nft。
由于iptables的一些缺陷,目前正在慢慢过渡用nftables替换iptables,同时由于这个新的框架的兼容性,
所以nftables也支持在这个框架上运行直接iptables这个用户空间的管理工具。
nftables实现了一组被称为表达式的指令,可通过在寄存器中储存和加载来交换数据。
也就是说,nftables的核心可视为一个虚拟机,nftables的前端工具nft可以利用内核提供的表达式去模拟旧的iptables匹配,
维持兼容性的同时获得更大的灵活性。
而未来最新的firewalld(0.8.0)默认使用将使用nftables。详情可以看www.firewalld.org
iptables、nftables和firewalld之间的区别与联系
firewalld同时支持iptables和nftables,未来最新版本(0.8.0)默认将使用nftables。
简单的说firewalld是基于nftfilter防火墙的用户界面工具。而iptables和nftables是命令行工具。
firewalld引入区域的概念,可以动态配置,让防火墙配置及使用变得简便。
准确的说:iptables(command)的最底层是netfilter,它的用户空间管理工具是iptables
nftables(command)是iptables(command) 的一个替代品并兼容iptables(command),最底层依然是netfilter,它的用户空间管理工具是nft,
同时未来firewalld最新版(0.8.0)也将默认支持nftables(command)。https://firewalld.org/
iptables会把配置好的防火墙策略交给内核层的netfilter网络过滤器来处理
firewalld会把配置好的防火墙策略交给内核层的nftables包过滤框架来处理
下图为iptables、firewalld、nftables之间的关系图:

4. centos6.X到centos7.X
centos6.X:防火墙由netfilter和iptables构成。其中iptables用于制定规则,又被称为防火墙的用户态;
而netfilter实现防火墙的具体功能,又被称为内核态。简单地讲,iptables制定规则,而netfilter执行规则。
centos7.X:防火墙在6.X防火墙的基础之上提出了新的防火墙管理工具,提出了区域的概念,通过区域定义网络链接以及安全等级。
5.怎样学好防火墙的配置?
1)OSI7层模型以及不同层对应哪些协议必须很熟悉 # 基础必备
2)TCP/IP三次握手,四次断开的过程,TCP HEADER,状态转换 # 基础必备
3)常用的服务端口要非常清楚了解。 # 基础必备
4)常用服务协议的原理,特别是http协议,icmp协议。 # 基础必备
5)能够熟练的利用tcpdump和wireshark进行抓包并分析,这样会更好 # 拓展
6)对计算机网络有研究,至少基本路由交换要很熟悉 # 拓展
6、企业中安全配置原则
尽可能不给服务器配置外网IP,可以通过代理转发或者通过防火墙映射。
并发不是特别大情况有外网IP,可以开启防火墙服务。
大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全。
Linux下系统防火墙的发展历程和怎样学好防火墙(iptalbes和firewalld)的更多相关文章
- Linux下系统时间函数、DST等相关问题总结(转)
Linux下系统时间函数.DST等相关问题总结 下面这个结构体存储了跟时区相关的位移量(offset)以及是否存在DST等信息,根据所在的时区信息,很容易找到系统时间与UTC时间之间的时区偏移,另外根 ...
- Linux下系统如何监控服务器硬件、操作系统、应用服务和业务
1.Linux监控概述 Linux服务器要保证系统的高可用性,需要实时了解到服务器的硬件.操作系统.应用服务等的运行状况,各项性能指标是否正常,需要使用各种LINUX命令.做到自动化运维就 ...
- linux下系统定时任务配置----crontab(mysql定时备份)
crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任 ...
- 从故纸堆里,回顾下Web技术的发展历程
通过对比这些年的计算机图书来让大家感受下前些年Web技术的发展历程. Web开发框架,目前是Spring Boot+JPA,我正好出过本书,从中大家能感受到现在的技术. <Spring Boot ...
- linux下系统编程C环境搭建
一.系统安装 我使用的是VMware8下的ubuntu12.04,这是培训老师说的,12.04相对来说,比较新,而且是5年长期支持版,不容易过时.对于系统的安装,我不想说很多,只是希望大家主义这几点: ...
- linux下系统对于sigsegv错误时的处理
一般来讲,对非法地址的访问会导致应用程序收到由系统发送的sigsegv信号,默认情况下,函数对于这个信号的处理是退出. 但是为了方便调试,我们可以自己设置处理函数,使用signal函数. 这里比较重要 ...
- 标准c库函数与Linux下系统函数库 区别 (即带不带缓冲区的学习)
我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open().close().write().read()等,而标准C语言的库函数中也有一套对文件的操作函数fop ...
- Linux下系统监控工具nmon使用
Mongodb安装在Centos7或以上的版本,对于系统的监控方法如下: 1.从\\10.10.10.1\ShareDoc\User\Zchen\linux系统监控下下载2个工具 nmon16e_mp ...
- Linux下系统的定时及延时任务
一.系统的延时 是临时的.对系统做的任务指定一个时间点.发起的命令是at at 时间点(now+1min) ## 设定任务实行时间 at> 执行命令 ...
随机推荐
- 一篇文章带你搞懂 etcd 3.5 的核心特性
作者 唐聪,腾讯云资深工程师,极客时间专栏<etcd实战课>作者,etcd活跃贡献者,主要负责腾讯云大规模k8s/etcd平台.有状态服务容器化.在离线混部等产品研发设计工作. etcd ...
- Mysql数据库值的添加、修改、删除及清空
3.MySQL数据管理 第一种方式:不太建议,看起来复杂些 -- 学生表的 gradeid 字段,要去引用 年级表的 gradeid -- 定义外键key -- 给这个外键添加约束,(执行引用),RE ...
- 【NX二次开发】Block UI OrientXpress
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- 【NX二次开发】移动WCS坐标系
说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...
- 【模拟8.05】优美序列(线段树 分块 ST算法)
如此显然的线段树,我又瞎了眼了 事实上跟以前的奇袭很像....... 只要满足公式maxn-minn(权值)==r-l即可 所以可以考虑建两颗树,一棵节点维护位置,一棵权值, 每次从一棵树树上查询信息 ...
- Netty 框架学习 —— 单元测试
EmbeddedChannel 概述 ChannelHandler 是 Netty 程序的关键元素,所以彻底地测试它们应该是你的开发过程中的一个标准部分,EmbeddedChannel 是 Netty ...
- 开源版本的 uTools。可支持 uTools 所有插件生态
话不多说,先放上截图和仓库地址: 代码仓库:github 故事背景 网络抓包 之前公司内部因为开发需要,需要和后端进行接口联调,测试环境的时候,经常会涉及到一些状态改变要看交互样式的问题.比如测试需要 ...
- SAI常用快捷键大全
一.默认常用工具快捷键如下: N 铅笔 B 喷枪 V 笔 X 前/背景色切换 - 前景色与透明色切换 C 水彩笔 A 选区笔 S 选区擦 D 清空当前图层 F 向下转写 (当前图层内容合并至下层,该层 ...
- VS 2017 RC .net core ef+ MySql 出现错误
在di注入时会出现错误 MySql.Data.EntityFrameworkCore.Storage.Internal.MySQLCommandBuilderFactory..ctor(ISensit ...
- vue elementui table 内按钮跳转页面
vue : <el-table-column label="操作" v-if="isColumOperate"> <template slot ...