一,firewalld对一个请求会适用哪个zone?

当接收到一个请求时,firewalld具体使用哪个zone?

firewalld是通过三个步骤来判断的:

  1. source,即:源地址

  2. interface,即:接收请求的网卡

  3. firewalld.conf中配置的默认zone

    通常值为:DefaultZone=public

说明:三个步骤的优先级顺序降低

即:如果通过source匹配到了一个zone,

则不会再使用interface,

如果通过interface匹配到了zone,

则不会再使用默认zone

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,zone的操作

1,列出当前激活的zone

[root@blog ~]# firewall-cmd --get-active-zones
public
interfaces: eth0
trusted
sources: 121.122.123.105

2,列出缺省的zone

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

3,列出所有的zone

[root@blog ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

三,source和zone的绑定操作

1,得到一个source所属的zone

[root@blog ~]# firewall-cmd --get-zone-of-source=121.122.123.105
trusted

2,绑定一个source到zone

例子:把121.122.123.118绑定到trusted这个zone

[root@blog ~]# firewall-cmd --permanent --zone=trusted --add-source=121.122.123.118
success
[root@blog ~]# firewall-cmd --reload
success

3,一个source能否绑定到了两个zone?

当121.122.123.118已经被绑定到trusted这个zone后,

能否再被绑定到drop这个zone?

[root@blog ~]# firewall-cmd --permanent --zone=drop --add-source=121.122.123.118
Error: ZONE_CONFLICT: 121.122.123.118

报错,一个source不能同时绑定到两个zone

4,列出一个zone下绑定的source

[root@blog ~]# firewall-cmd --permanent --zone=trusted --list-sources
121.122.123.105

5,把一个source从zone下解除绑定

[root@blog ~]# firewall-cmd --permanent --zone=trusted --remove-source=121.122.123.118
success

6,查询一个source是否和指定的zone做了绑定?

[root@blog firewalld]# firewall-cmd --permanent --zone=drop --query-source=121.122.123.118
yes

四,interface和zone的绑定操作

1,得到一个interface所属的zone

[root@blog ~]# firewall-cmd --get-zone-of-interface=eth0
public

2,列出一个zone下绑定的interface

[root@blog firewalld]# firewall-cmd --zone=public --list-interfaces
eth0

3,列出所有的interface

[root@blog firewalld]# firewall-cmd --list-interfaces
eth0

4,查询一个zone下是否绑定了指定的interace?

[root@blog firewalld]# firewall-cmd --zone=public --query-interface=eth0
yes

5,一个interface能否同时属于多个zone?

[root@blog firewalld]# firewall-cmd --zone=trusted --add-interface=eth0
Error: ZONE_CONFLICT: 'eth0' already bound to a zone

6,从zone下移除interface

[root@blog firewalld]# firewall-cmd --permanent --zone=public --remove-interface=eth0
The interface is under control of NetworkManager and already bound to the default zone
The interface is under control of NetworkManager, setting zone to default.
success

说明:如果一个interface被NM绑定到了default zone,

则不能解绑,

五,如何修改默认的zone?

#--set-default-zone:设置缺省zone

[root@blog firewalld]# firewall-cmd --set-default-zone=public
success

说明:这个命令同时修改了配置文件

[root@blog firewalld]# grep DefaultZone /etc/firewalld/firewalld.conf
DefaultZone=public

我们也可以手动修改配置文件

[root@blog firewalld]# vi /etc/firewalld/firewalld.conf

修改DefaultZone指令的值:

DefaultZone=public

然后重启firewalld

[root@blog firewalld]# systemctl restart firewalld.service 

六,查看一个zone的target

1,得到zone的target

[root@blog firewalld]# firewall-cmd --permanent --get-target --zone=public
default
[root@blog firewalld]# firewall-cmd --permanent --get-target --zone=trusted
ACCEPT
[root@blog firewalld]# firewall-cmd --permanent --get-target --zone=drop
DROP

说明:用--list-all参数也可以把指定zone的信息都打印出来

2,target的值通常有4个:

defaultACCEPTREJECT 和 DROP

ACCEPT:除了明确禁止的规则,默认会接受所有流入的数据包。

REJECT:除了明确允许的规则,默认会拒绝所有流入的数据包,

但会给发出连接请求的机器回复被拒绝的消息

DROP:除了明确允许的规则,默认会拒绝所有流入的数据包,

              不会给发起连接请求的机器回复任何消息

default:没有指定时,target的值是default:规则就是:每个没有匹配上的包将会拒绝

(If the target is not specified, every packet not matching any rule will be rejected.)

文档地址:

https://firewalld.org/documentation/zone/options.html

七,查看firewalld的版本

[root@blog ~]# firewall-cmd --version
0.6.3

八,查看linux的版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

linux(centos8):firewalld对于请求会选择哪个zone处理?的更多相关文章

  1. linux(centos8):firewalld的运行时日志配置

    一,firewalld配置日志的用途: 在生产环境中,firewalld的默认配置是不记录日志 我们通过日志记录下防火墙过滤时拒绝的非法ip, 可以主动把这些有攻击性的ip加入到黑名单, 防患于未然 ...

  2. linux(centos8):firewalld使用ipset管理ip地址的集合

    一,firewalld中ipset的用途: 1,用途 ipset是ip地址的集合, firewalld使用ipset可以在一条规则中处理多个ip地址, 执行效果更高 ​对ip地址集合的管理也更方便 2 ...

  3. Linux 防火墙firewalld

    1.列出所有支持的 zone 和查看当前的默认 zone:[root@lxjtest ~]# systemctl start firewalld[root@lxjtest ~]# firewall-c ...

  4. Linux分发版本的试用及选择工具

    https://www.forbes.com/sites/jasonevangelho/2019/06/15/how-to-test-drive-200-linux-distributions-wit ...

  5. linux(centos8):查看操作系统的当前版本(os/kernel/bash)

    一,查看redhat系操作系统的版本: 适用于centos/fedora/rhel等 [root@centos8 ~]# cat /etc/redhat-release CentOS Linux re ...

  6. Linux防火墙firewalld安全设置

    背景描述 防火墙是具有很好的保护作用.入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机.在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙 ...

  7. 阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP)

    LNMP环境和软件版本: 名称 版本号 查询命令 Linux系统 CentOS Linux release 8.1.1911 (Core) cat /etc/redhat-release Nginx ...

  8. linux(centos8):kubernetes安装的准备工作

    一,安装docker-ce19.03.11 1,卸载podman [root@kubemaster ~]# dnf remove podman podman是红帽系os自带的容器,卸载是为了避免冲突 ...

  9. linux(centos8):centos8.1安装(详细过程/图解)(vmware fusion/CentOS-8.1.1911-x86_64)

    一,centos是什么? CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一, 它是来自于Red Hat En ...

随机推荐

  1. WeihanLi.Npoi 1.10.0 更新日志

    WeihanLi.Npoi 1.10.0 更新日志 Intro 上周有个网友希望能够导入Excel时提供一个 EndRowIndex 来自己控制结束行和根据字段过滤的,周末找时间做了一下这个 feat ...

  2. JavaScript 流程控制-分支

    JavaScript 流程控制-分支 1.流程控制 在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的,很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能. 简单理解:流程控 ...

  3. mariadb 2

    mariadb第二章-增删改   MariaDB 数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的 常用的数据类型 ...

  4. Spring boot +Thymeleaf 搭建springweb

    对接天猫精灵的时候需要有网关服务器方提供几个页面,服务器已经有了,spring boot的 纯后台的,就加了Thymeleaf   jar包添加几个页面跳转 maven配置 <!-- 引入thy ...

  5. java虚拟机5 字节码

    java字节码本质是java程序的格式化表示,便于机器处理.所以他是java程序的另一种表示,java程序包含的信息他都包含并且更加结构化. java虚拟机字节码格式: magic 魔数,标识该文件是 ...

  6. java执行器

    Executor 执行已提交的 Runnable 任务对象.此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节.调度等)分离开来的方法.Executor 接口并没有严格地要求执行是 ...

  7. Module build failed: TypeError: this.getResolve is not a function at Object.loader 使用vue-cli 创建项目 使用sass时报错 -- 等其他sass 报错 ./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib

    已经安装了 sass相关依赖包 npm  install sass-loader --save-devnpm install node-sass --sava-dev 并且在build文件下webpa ...

  8. 探讨PostgreSQL实例中数据库之间的关系

    疑问 前几天PG学习微信群有人在问"pg_class 存储了对象和命名空间,表空间的对应关系,为什么没有和数据库的关系?我想查数据库下面有多少对象,找不到数据库和对象的关系?" 简 ...

  9. Redis可视化工具推荐

    前言 Redis可视化工具目前好用的免费的几乎难以寻迹,百度能搜索到的推荐比较多的是Redis Desktop Manager 官网地址:https://redisdesktop.com/pricin ...

  10. Java Web学习(九)网络协议详解

    一.基本概念 概念:协议是网络中计算机或设备之间进行通信的一系列规则的集合. 协议栈/族:在网络中为了完成通信而使用到的多层上的各种协议按照层次顺序的组合. 作用:建立对等层之间的虚拟通信.实现层次之 ...