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