rhel8防火墙firewalld操作

1.查看默认区域

复制代码
[root@localhost r]# firewall-cmd --get-default-zone
public

2.查看网卡关联的区域

复制代码
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
external

3.设置网卡的默认区域修改为work

复制代码
[root@localhost r]# firewall-cmd --zone=work --change-interface=ifcfg-ens160
success
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
work

注意:第二条语句说明,和网卡ifcfg-ens160关联的区域已经改成work,而不是原来的external。默认的模式是--Runtime模式,也就是说上述配置规则重启电脑后会失效。

接下来,自己执行reboot重启系统,然后查询网卡ifcfg-ens160的关联区域,可以发现原来的配置规则已经失效了,网卡ifcfg-ens160的关联区域又变回了external,如下:

复制代码
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
external
[root@localhost r]# 

4.下面用permanent模式(永久生效模式)修改网卡ifcfg-ens160的关联区域,发现修改后并不会立即生效,重启电脑(或者执行firewall-cmd --reload)后,修改才会永久生效

复制代码
//下面这句用永久生效模式修改ifcfg-ens160的关联区域为work
[root@localhost r]# firewall-cmd --permanent --zone=work --change-interface=ifcfg-ens160
success
//下面这句查询了网卡ifcfg-ens160关联区域仍然没有改变成work,因为永久生效模式只有重启
//电脑或者执行了firewall-cmd --reload后才会生效
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
external
//执行下面语句,作用是让永久生效的配置规则立即生效,并且覆盖当前的配置规则
[root@localhost r]# firewall-cmd --reload
success
//接下来再查询网卡ifcfg-ens160的绑定区域会发现:网卡ifcfg-ens160绑定区域已经换成work
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
work

5.修改默认区域的关联网卡的时候,如果不使用--zone=<区域>指定区域,那么改变的是默认区域的关联网卡,如果想让指定的网卡和某个指定的区域关联,那么必须使用--zone参数指定区域。如下,没有指定区域,就改变默认区域的关联网卡:

复制代码
[root@localhost r]# firewall-cmd --change-interface=ifcfg-ens160
success
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
public

注意:这个使用的模式是默认模式runtime模式,也就是立即生效,重启电脑失效。如果想永久生效,那么就得显式使用--permanent参数。如下印证了自己的判断:

复制代码
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
public
//下面这句相当于重启电脑
[root@localhost r]# firewall-cmd --reload
success
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
work

6.关于permanent参数的使用

不管是查询也好,设置也罢,permanent的意思是使用永久设置模式查询(设置)。加了permanent是表示查询或者设置的时候是永久模式下的。

复制代码
[root@localhost r]# firewall-cmd --get-zone-of-interface=ifcfg-ens160
public
[root@localhost r]# firewall-cmd --permanent --get-zone-of-interface=ifcfg-ens160
work

7.看一个实验

8.紧急模式

9.查询ssh和https协议的流量是否是允许放行的。

用法:查询 协议1 对于 服务1 来说,是否是被允许的,可以用--query-service来指定协议,用--zone指定区域(如果指定,就是用默认区域).

复制代码
//查询ssh协议的内容对于服务dmz来说是否是允许放行的
//注:ssh是一种协议,用于计算机之间的加密登录
[root@localhost r]# firewall-cmd --zone=dmz --query-service=ssh
yes

[root@localhost r]# firewall-cmd --zone=block --query-service=ssh
no
[root@localhost r]# firewall-cmd --zone=drop --query-service=ssh
no

10.设置https协议的流量对public区域是永久放行的,并且立即生效。

复制代码
[root@localhost r]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@localhost r]# firewall-cmd --permanent --zone=public --query-service=https
yes
[root@localhost r]# firewall-cmd --zone=public --query-service=https
no
//不想重启电脑就执行 firewall-cmd --reload
[root@localhost r]# firewall-cmd --zone=public --query-service=https
yes

11.把https的流量设置成永久拒绝的,并且立即生效

复制代码
[root@localhost r]# firewall-cmd --permanent --zone=public --remove-service=https
success
[root@localhost r]# firewall-cmd --reload
success

12.把8080和8081端口的流量和策略设置为允许,但权限当前生效。

复制代码
[root@localhost r]# firewall-cmd --zone=public --add-port=8080-8081 
Error: INVALID_PORT: bad port (most likely missing protocol), correct syntax is portid[-portid]/protocol

[root@localhost r]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@localhost r]# firewall-cmd --zone=public --list-ports
8080-8081/tcp

注意:上面的第一句代码中出现了错误,根据提示可以看出,指定端口必须是如下形式,每种形式都必须有协议:

复制代码
port/protocol
port1-port2/protocol
相关推荐
Fireworkitte2 分钟前
Linux 中替换sed
linux·运维·服务器
gooxi_hui2 分钟前
性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
运维·服务器
weixin_420571877 分钟前
Windos服务器升级MySQL版本
运维·服务器·mysql
dessler30 分钟前
Kafka-日常运维命令
linux·运维·kafka
誰能久伴不乏44 分钟前
深入解析 TCP 连接状态与进程挂起、恢复与关闭
服务器·网络·tcp/ip
Dreamboat¿1 小时前
小皮面板搭建pikachu
运维·服务器·网络
weixin_443290691 小时前
【云服务器安全相关】堡垒机、WAF、防火墙、IDS 有什么区别?
服务器·安全·php
北北~Simple1 小时前
第一次搭建数据库
服务器·前端·javascript·数据库
Brookty1 小时前
【操作系统】线程
java·linux·服务器·后端·学习·java-ee·操作系统
花嫁代二娃7 小时前
Linux:环境变量
linux