linux(centos8):firewalld对于请求会选择哪个zone处理?
一,firewalld对一个请求会适用哪个zone?
当接收到一个请求时,firewalld具体使用哪个zone?
firewalld是通过三个步骤来判断的:
-
source,即:源地址
-
interface,即:接收请求的网卡
-
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个:
default
, ACCEPT
, REJECT
和 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进入其他盘的指令:cd(linux进入其他盘)
- 模式Linux如何进入磁盘模式?(linux进入磁盘)
- 驱动Linux新网卡驱动:新的开始。(linux新网卡)
- Linux操作系统开启超频之旅(linux超频)
- 发行版最佳选择:最省内存的Linux发行版(最省内存的linux)
- Linux 应用之路:申建明的事业(申建明linux)
- Linux检测网络的实用方法(linux检测网络)
- 码Linux源码修改实践(linux修改源)
- 深度解析:Linux驱动的分层模型(linux驱动分层)
- 最合适Linux入门:最佳选择书籍指南(linux入门哪本书)
- Linux下开发PHP项目的最佳选择:编辑器比较(linux下php编辑器)
- Linux 能够处理的最大内存(linux最大内存)
- Linux批量处理:超越界限轻松完成任务(linux批处理)
- 中处理json使用Linux脚本处理JSON格式数据(在linux脚本)
- Linux下处理中断异常(中断异常linux)
- 利用Linux内核实现多核处理性能提升(linux内核多核)
- Linux网络命令深度解析(linux网络命令详解)
- Linux设备驱动:中断处理策略(linux设备驱动中断)
- Linux分支:开放源码的选择(linux的分支)
- 系统Linux分支系统:多样性带来更多选择(linux的分支)
- Linux发展史上的新创史——分支篇(linux的分支)
- 机Linux串口死机处理方法(linux串口死)
- 解决Linux日志乱码问题(linux日志乱码)
- Linux下硬盘分区的实践与工具选择(linux硬盘分区工具)
- Linux下快捷查找命令实用指南(linux的查找命令)
- Linux防火墙关闭安全提示(关闭linux的防火墙)
- 管控Linux系统:关闭防火墙(关闭linux的防火墙)
- 如何快速修改Linux服务器IP地址?(修改linux服务器ip)
- 学习Linux多线程:掌握多线程技术,提高程序效率(linux多线程学习)
- 命令 Linux下流行的Mount命令指南(linux的mount)
- 添加Linux命令:一步一步实现(linux添加命令)
- Linux下实现蓝牙模块连接及应用(linux蓝牙模块)
- 选择适合你的Linux服务器发行版,提升工作效率(linux服务器发行版)
- Linux下查看文件的指令汇总(linux查看文件的指令)
- Linux归档文件:处理、存储与分类的新方法(linux归档文件)