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)
最新文章
- activiti工作流的web流程设计器整合视频教程 SSM和独立部署
- 构建自己的PHP框架--实现Model类(2)
- alpha-beta剪枝搜索
- Manacher's Algorithm 马拉车算法
- velocity-tools-beta1.jar与velocity-tools.jar不兼容
- C# 中var as is 泛型集合
- mapred和mapreduce
- .Net Framwork类库
- HTTP概念进阶
- Previous operation has not finished; run 'cleanup' if it was interrupted
- C# 判断网站是否能访问或者断链
- OkHttp上传文件,服务器端请求解析找不到文件信息的问题
- 在android studio中配置运行时签名
- [UE4]判断2个向量是否相等
- LeetCode算法题-Minimum Depth of Binary Tree(Java实现)
- [android警告]AndroidManifest.xml警告 Not targeting the latest versions of Android
- stm32 启动文件 C和汇编交叉嵌入
- Serv-U精简版FTP服务端
- Spring Boot+CXF搭建WebService
- Bzoj3566/洛谷P4284 [SHOI2014]概率充电器(概率dp)