- I 规则介绍
查询当前的正在使用的zone,下面的例子是public的ens192为获得区
$firewall-cmd --get-active-zone
public
interfaces: ens192
设置默认的zone
$ firewall-cmd --set-default-zone=home
success
查询当前设置默认的zone
$ firewall-cmd --get-default-zone
home
查询当前的全部firewall-cmd设置
[Ps: 这个太重要了,从这里看出默认的zone没有生效,因为 connections/interfaces当前在public下,真正起作用的是connections/interfaces的绑定位置]
$firewall-cmd --list-all
You're performing an operation over default zone ('home'),
but your connections/interfaces are in zone 'public' (see --get-active-zones)
You most likely need to use --zone=public option.
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
设置zone的connections/interfaces的绑定
firewall-cmd --zone=public --add-interface=ens192
对指定zone设置端口规则
firewall-cmd --zone=home --add-port=80/tc
查询指定zone的全部配置
$firewall-cmd --zone=dmz --list-all
dmz (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: ssh
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
- II 之前设置zone但不生效的问题
zone的acitve是和网卡绑定的,不是和default-zone绑定的,pope之前的错误是指设置了default-zone
firewall-cmd --set-default-zone=home
而没有添加connections/interfaces
如果要zone生效,其实把入口的网卡add到这个zone就可以了
$firewall-cmd --zone=public --add-interface=ens192
PS:对于zone来说connections/interfaces是独有的,每次只有一个zone可以拥有一个网卡,zone的概念是虚拟的规则,which one zone 在哪个网卡,这个zone才生效。
参考:
http://www.phpchina.com/portal.php?mod=view&aid=40252
https://www.jianshu.com/p/59acef4e267a
没有评论:
发表评论