在CentOS 7中,新引入了firewalld服务(防火墙),取代了CentOS 6之前的iptables服务(防火墙)。
iptables用于过滤数据包,属于网络层防火墙。iptables主要是基于接口,来设置规则,从而判断网络的安全性。
firewalld能够允许哪些服务可用,哪些端口可用等等,属于更高一层的防火墙。firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算), 并且拥有两种配置模式:运行时(Runtime)模式、永久(Permanent)模式。
firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过过滤子系统(属于内核态)来实现包过滤防火墙功能。
firewall-cmd是firewalld的字符界面管理工具,firewall-config是firewalld的图形用户界面管理工具。
firewalld配置的防火墙策略,分为运行时(Runtime)模式、永久(Permanent)模式两种。
1、默认的是运行时(Runtime)模式,配置的策略便会立即生效,但是,系统一旦重启就会失效。
2、永久生效(Permanent)模式,可以使firewalld配置永久生效,但是,此模式需要重启系统,或者手动执行firewall-cmd --reload命令,配置的策略才会立即生效。
firewall还引入了防火墙的“zone”概念,即事先准备好的若干套防火墙策略模板。
首先,将所有网络流量分为多个区域(zone),然后,根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域,
同时,每个区域都定义了自己打开或者关闭的端口和服务列表。
一、firewall-cmd命令详解(基于字符界面的firewall管理工具)
1、CentOS 7中,默认预装了firewalld、firewall-config命令,否则,可以通过yum手动安装,或者更新至最新版本。
[root@centos7 ~]# yum list firewalld firewall-config
[root@centos7 ~]# yum -y update firewalld firewall-config
2、CentOS 7中,使用systemctl命令,查看firewalld(防火墙)的状态(status)、重新启动(restart)、临时关闭(stop)、临时开启(start)防火墙服务。
[root@centos7 ~]# systemctl status firewalld.service
[root@centos7 ~]# systemctl is-active firewalld.service
active
[root@centos7 ~]# firewall-cmd --state
running
[root@centos7 ~]# systemctl start firewalld.service
[root@centos7 ~]# systemctl stop firewalld.service
[root@centos7 ~]# systemctl restart firewalld.service
3、CentOS 7中,使用systemctl命令,设置开机禁用(disable)、开机启动(enable)防火墙服务。