文章目录
一、firewalld概述
firewalld防火墙是Centos7系统默认的防火墙管理工具,替代了之前的iptables防火墙,也是工作在网路层,属于包过滤防火墙。
firewalld和iptables都是拿来管理防火墙的工具(属于用户态)来定义防火墙的各类规则功能,内部结构都指向netfilter网路过过滤子系统(属于内核态)来实现包过滤防火墙功能。
firewalld提供了支持网路区域所定义的网路链接以及插口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太集线器(在个别中级服务可能会用到美国linux主机,例如云估算),而且拥有两种配置模式:运行时配置与永久配置。
二、firewalld与iptables的区别
netfilter
Firewalld/iptables
区别一:
iptables主要是基于插口redhat清空防火墙规则,来设置规则,因而判定网路的安全性。
firewalld是基于区域,依照不同的区域来设置不同的规则,因而保证网路的安全。与硬件防火墙的设置相类似。
区别二:
iptables在/etc/sysconfig/iptables中存储配置,
firewalld将配置储存在/etc/firewalld/(优先加载)和/usr/lib/firewalld/(默认的配置文件)中的各类XML文件里。
区别三:
使用iptables每一个单独修改意味着消除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则
使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因而firewalld可以在运行时间内,改变设置而不遗失
三、firewalld区域的概念
firewalld防火墙为了简化管理,将所有网路流量分为多个区域(zone)。之后按照数据包的源IP地址或传入的网路插口等条件将流量传入相应区域。每位区域都定义了自己打开或则关掉的端口和服务列表。
firewalld防火墙预定义了9个区域:
区域作用
trusted(信任区域)
容许所有的传入流量。
public(公共区域)
准许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网路插口的默认区域。
external(外部区域)
准许与ssh预定义服务匹配的传入流量,其余均拒绝。默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网路。
home(家庭区域)
准许与ssh、ipp-client、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
internal(内部区域)
默认值时与home区域相同。
work(工作区域)
准许与ssh、ipp-client、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
dmz(隔离区域称作为非军事区域)
准许与ssh预定义服务匹配的传入流量,其余均拒绝。
block(限制区域)
拒绝所有传入流量。
drop(遗弃区域)
遗弃所有传入流量,而且不形成包含ICMP的错误响应。
最终一个区域的安全程度是取决于管理员在此区域中设置的规则。
区域就像步入主机的安全门,每位区域都具有不同限制程度的规则,只会容许符合规则的流量传入。
可以依照网路规模,使用一个或多个区域中国linux操作系统,并且任何一个活跃区域起码须要关联源地址或插口。
默认情况下,public区域是默认区域redhat清空防火墙规则,包含所有插口(网卡)
四、firewalld数据处理流程
firewalld对于步入系统的数据包,会按照数据包的源IP地址或传入的网路插口等条件,将数据流量转到相应区域的防火墙规则。对于步入系统的数据包,首先检测的就是其源地址。
firewalld检测数据包的源地址的规则:
1.若源地址关联到特定的区域(即源地址或插口绑定的区域有冲突),则执行该区域所制订的规则。
2.若源地址未关联到特定的区域(即源地址或插口绑定的区域没有冲突),则使用传入网路插口的区域并执行该区域所制订的规则。
3.若网路插口也未关联到特定的区域(即源地址或插口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制订的规则。
五、firewalld防火墙的配置方式5.1使用firewall-config图形工具
5.2编撰/etc/firewalld/中的配置文件
Firewalld会优先使用/etc/firewalld/中的配置,假若不存在配置文件,则使用/usr/lib/firewalld/中的配置。
/etc/firewalld/:用户自定义配置文件,须要时可通过从/usr/lib/firewalld/中拷贝
/usr/lib/firewalld/:默认配置文件,不建议更改,若恢复至默认配置,可直接删掉/etc/firewalld/中的配置
5.3使用firewall-cmd命令行工具
1、区域管理:
(1)显示当前系统中的默认区域
firewall-cmd--get-default-zone
(2)显示默认区域的所有规则
firewall-cmd--list-all
(3)显示当前正在使用的区域及其对应的网卡插口
firewall-cmd--get-active-zones
(4)设置默认区域
firewall-cmd--set-default-zone=home
firewall-cmd--get-default-zone
2、服务管理:
(1)查看默认区域内准许访问的所有服务
firewall-cmd--list-service