目录

一、Firewalld概述 

二、Firewalld和iptables的关系 

1.netfilter

2.Firewalld/iptables

三、iptables与firewalld的区别 

四、firewalld网络区域 

1.firewalld区域概述

2.firewalld的九个区域 

3.区域介绍

4.firewalld数据包处理流程

五、firewalld的命令操作 

Firewalld-cmd命令行操作

1-查看

(1)显示当前正在使用的区域及其对应的网卡接口 

(2)显示所有可用的区域 

(3)显示所有区域及其规则

(4)查看默认区域内允许访问的所有服务

(5)查看指定区域允许访问的服务列表

(6)查看指定区域允许访问的端口列表

(7)查看与网卡绑定的区域

(8)查看所有icmp类型

2-添加

(1)给指定区域添加绑定的网卡

(2)给指定区域添加源地址

(3)给指定区域添加允许访问的服务

(4)给指定区域添加允许访问的服务列表

(5)给指定区域添加允许访问的端口

(6)给指定区域添加允许访问的连续的端口列表

(7)给指定区域添加允许访问的不连续的端口

(8)给指定区域添加拒绝访问的icmp类型

3-删除 

(1)根据服务名删除

(2) 根据端口/协议删除

(3)根据icmp类型删除

(4)从指定区域里删除绑定的网卡

(5)从指定区域里删除绑定的源地址

4-修改

(1)修改当前默认区域

(2)修改/添加网卡 绑定给指定区域

(3)修改/添加源地址 绑定给指定区域

六、Firewalld防火墙的配置方法

1.运行时配置

2.永久配置

七.编写/etc/firewalld/中的配置文件

1.设置SNAT

2.设置DNAT

          八、DNAT和SNAT也可以通过firewall-cmd设置

1.设置SNAT

2.设置DNAT



一、Firewalld概述 

  • firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。
  • firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过过滤子系统(属于内核态)来实现包过滤防火墙功能
  • firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。 它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算), 并且拥有两种配置模式:运行时配置与永久配置

二、Firewalld和iptables的关系 

1.netfilter
  • 位于Linux内核中的包过滤功能体系
  • 称为Linux防火墙的“内核态”
2.Firewalld/iptables
  • CentOS7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的“用户态”

三、iptables与firewalld的区别 

四、firewalld网络区域 

1.firewalld区域概述

  • firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表

2.firewalld的九个区域 

trusted(信任区域)允许所有的传入流量
public(公共区域)允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域
external(外部区域)允许与ssh预定义服务匹配的传入流量其余均拒绝
home(家庭区域)允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其他均拒绝
internal(内部区域)默认值与home区域相同
work(工作区域)允许与ssh、dhcpv6-client预定义服务匹配的传入流量,其他均拒绝
dmz(隔离区域也称非军事区域)允许与ssh预定义服务匹配的传入流量,其他均拒绝
block(限制区域)拒绝所有传入流量
drop(丢弃区域)丢弃所有传入流量,并且不产生包含icmp的错误响应

3.区域介绍

  • 最终一个区域的安全程度是取决于管理员在此区域中设置的规则
  • 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入
  • 可以根据网络规模,使用一个或多个区域,但是任何一个 活跃区域 至少需要关联 源地址或接口
  • 默认情况下,public区域是默认区域,包含所有接口(网卡)

4.firewalld数据包处理流程

  • 要激活某个区域,需要先将区域与 源地址或网卡接口 关联绑定(一个区域可以关联绑定多个网卡接口或源地址,一个网卡或源地址只能关联绑定一个区域)
  • 检查数据来源的源地址.
  • 若源地址关联到特定的区域,则执行该区域所指定的规则.
  • 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则.
  • 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则.

五、firewalld的命令操作 

firewalld防火墙的配置方法:

1、使用firewall-cmd 命令行工具。
2、使用firewall-config 图形工具。
3、编写/etc/firewalld/中的配置文件。

Firewalld-cmd命令行操作

1-查看

查看当前默认区域

[root@localhost ~]# firewall-cmd --get-default-zone

(1)显示当前正在使用的区域及其对应的网卡接口 
[root@localhost ~]# firewall-cmd --get-active-zones

(2)显示所有可用的区域 
[root@localhost ~]# firewall-cmd --get-zones

(3)显示所有区域及其规则
[root@localhost ~]#firewall-cmd  --list-all-zones 

(4)查看默认区域内允许访问的所有服务
firewall-cmd --list-service

(5)查看指定区域允许访问的服务列表
firewall-cmd --list-services --zone=区域名

(6)查看指定区域允许访问的端口列表
firewall-cmd --list-ports --zone=区域名

(7)查看与网卡绑定的区域
firewall-cmd --get-zone-of-interface=网卡名

(8)查看所有icmp类型
firewall-cmd --get-icmptypes

2-添加

(1)给指定区域添加绑定的网卡
firewall-cmd --add-interface=网卡名 --zone=区域名

(2)给指定区域添加源地址
firewall-cmd --add-source=源地址 --zone=区域名
(3)给指定区域添加允许访问的服务
firewall-cmd --add-service=服务名 --zone=区域名
(4)给指定区域添加允许访问的服务列表
firewall-cmd --add-service={服务名1,服务名2,...} --zone=区域名
(5)给指定区域添加允许访问的端口
firewall-cmd --add-port=端口/协议 --zone=区域名 
(6)给指定区域添加允许访问的连续的端口列表
firewall-cmd --add-port=端口1-端口2/协议 --zone=区域名
(7)给指定区域添加允许访问的不连续的端口
firewall-cmd --add-port={端口1,端口2,...}/协议 --zone=区域名
(8)给指定区域添加拒绝访问的icmp类型
firewall-cmd --add-icmp-block=icmp类型 --zone=区域名 

3-删除 

(1)根据服务名删除
firewall-cmd --remove-service=服务名 --zone=区域名  

(2) 根据端口/协议删除
firewall-cmd --remove-port=端口/协议 --zone=区域名
(3)根据icmp类型删除
firewall-cmd --remove-icmp-block=icmp类型 --zone=区域名
(4)从指定区域里删除绑定的网卡
firewall-cmd --remove-interface=网卡名 --zone=区域名
(5)从指定区域里删除绑定的源地址
firewall-cmd --remove-source=源地址 --zone=区域名

4-修改

(1)修改当前默认区域
firewall-cmd --set-default-zone

(2)修改/添加网卡 绑定给指定区域
firewall-cmd --change-interface=网卡名 --zone=区域名
(3)修改/添加源地址 绑定给指定区域
firewall-cmd --change-source=源地址 --zone=区域名

六、Firewalld防火墙的配置方法

1.运行时配置

  • 实时生效,并持续至Firewalld重新启动或重新加载配置
  • 不中断现有连接
  • 不能修改服务配置
  • firewall-cmd ....
  •  
  • firewall-cmd --runtime-to-permanent       将之前的运行时配置都转换成永久配置

2.永久配置

  • 不立即生效,除非Firewalld重新启动或重新加载配置
  • 中断现有连接
  • 可以修改服务配置
  • firewall-cmd .... --permanent

  • firewall-cmd --reload 或 systemctl restart firewalld

七.编写/etc/firewalld/中的配置文件

Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置

  • /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/ 中拷贝
  • /usr/lib/firewalld/ :默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置

八、DNAT和SNAT也可以通过firewall-cmd设置

1.设置SNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s


192.168.80.0/24 -j SNAT --to-source 12.0.0.1

2.设置DNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p 
 
tcp --dport 80 -j DNAT --to-destination 192.168.80.11

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐