快捷搜索:  汽车  科技

firewall防火墙没有了(Firewalld的zone你真的了解吗)

firewall防火墙没有了(Firewalld的zone你真的了解吗)[root@freeops ~]# firewall-cmd --new-zone=test --permanent success [root@freeops ~]# firewall-cmd --new-zone-from-file=/etc/firewalld/zones/public.xml --name=test --permanent success 删除区域firewall-cmd工具支持用户自定义zone的同时也支持用户删除系统已存在的区域,删除区域时需要使用--delete-zone参数。删除区域,具体如下所示:例1:查看网络接口默认区域信息 [root@freeops ~]# firewall-cmd --get-default-zone public 例2:查看指定网络接口绑定的区域信息 [root@freeops ~]# firewall-cmd --get-z

firewall防火墙没有了(Firewalld的zone你真的了解吗)(1)

前言

在基于Fedora18和RHEL7及以上的Linux发行版系统中,firewalld服务已经成功取代iptables,成为默认防火墙操作工具。在firewalld中,引入了一个全新概念-区域(zone)。我们可以将区域理解为可以直接使用防火墙默认存在的策略集合(模板),生产者可以根据生产环境的需求选择合适的策略集合。本文将基于CentOS7.x系统聊聊firewalld中zone选项的那些事。

zone配置文件

zone是firewalld全新引用的一种默认策略集合, 默认区域的配置文件将会存储在/usr/lib/firewalld/zones中。同时系统中维护着另外一个目录用于存放有效使用的区域配置文件,即/etc/firewalld/zones。在firewalld中,/etc/firewalld/zones具有较高优先级,firewalld在使用规则时,首先查询/etc/firewalld/zones,若不存在则继续查询/usr/lib/firewalld/zones。firewalld在使用zone配置文件时会从/usr/lib/firewalld/zones中复制相应配置文件到/etc/firewalld/zones内。zone配置文件存储对比:

[root@freeops ~]# ls -al /usr/lib/firewalld/zones/ # 配置文件默认存储位置 total 36 -rw-r--r--. 1 root root 299 Aug 5 2017 block.xml -rw-r--r--. 1 root root 293 Aug 5 2017 dmz.xml -rw-r--r--. 1 root root 291 Aug 5 2017 drop.xml -rw-r--r--. 1 root root 304 Aug 5 2017 external.xml -rw-r--r--. 1 root root 369 Aug 5 2017 home.xml -rw-r--r--. 1 root root 384 Aug 5 2017 internal.xml -rw-r--r--. 1 root root 315 Aug 5 2017 public.xml -rw-r--r--. 1 root root 162 Aug 5 2017 trusted.xml -rw-r--r--. 1 root root 311 Aug 5 2017 work.xml [root@freeops ~]# [root@freeops ~]# ls -al /etc/firewalld/zones/ # 配置文件存储位置 total 8 -rw-r--r--. 1 root root 617 Jul 22 16:46 public.xml [root@freeops ~]#zone默认区域

firewalld中默认存在9类区域,不同的区域具有不同的内置策略。关于firewalld的默认区域,内置策略分析如下:

firewall防火墙没有了(Firewalld的zone你真的了解吗)(2)

区域默认策略对比

zone参数详解

firewalld可以通过firewall-cmd工具实现对zone的管理工作。firewall-cmd中zone提供了丰富的命令参数,通过zone的不同参数调整zone配置文件后实现zone的基础功能。命令行中使用firewall-cmd工具可以查询zone功能选项相关参数。Firewalld服务的zone相关参数解析如下:

Zone Options --get-default-zone # 打印网卡接口的默认区域 Print default zone for connections and interfaces --set-default-zone=<zone> # 设置网卡接口的默认区域 Set default zone --get-active-zones Print currently active zones # 打印当前存活的区域 --get-zones Print predefined zones [P] # 打印预定义区域 --get-zone-of-interface=<interface> # 打印网络接口绑定的区域名称 Print name of the zone the interface is bound to [P] --get-zone-of-source=<source>[/<mask>]|<MAC>|ipset:<ipset> # 打印源所绑定的区域名称 Print name of the zone the source is bound to [P] --list-all-zones List everything added for or enabled in all zones [P] # 列举区域中已添加的内容 --new-zone=<zone> Add a new zone [P only] # 添加区域 --new-zone-from-file=<filename> [--name=<zone>] # 从文件中添加具有可选名称的区域 Add a new zone from file with optional name [P only] --delete-zone=<zone> Delete an existing zone [P only] # 删除已存在的区域 --load-zone-defaults=<zone> # 加载区域默认配置 Load zone default settings [P only] [Z] --zone=<zone> Use this zone to set or query options else default zone # 使用区域设置或查询 --get-target Get the zone target [P only] [Z] # 查询区域所对应动作 --set-target=<target> # 设置区域所对应动作 Set the zone target [P only] [Z] --info-zone=<zone> Print information about a zone # 打印区域信息 --path-zone=<zone> Print file path of a zone [P only] # 打印区域配置文件路径查询系统区域信息

firewalld预定义了9类区域,在系统中可以使用firewall-cmd工具的--get-zones可以查看当前系统内已存在的zone信息。查看当前系统zone信息。具体如下所示:

[root@freeops ~]# firewall-cmd --get-zones block dmz drop external home internal public trusted work # 系统所有可以使用的区域默认区域管理

firewalld定义的区域需要和网卡接口绑定才能正式使用,在CentOS中网络接口默认的区域均为public。firewall-cmd工具提供查询网络接口的查询、修改等功能。使用firewall-cmd工具管理网络接口默认区域,具体如下所示:

例1:查看网络接口默认区域信息 [root@freeops ~]# firewall-cmd --get-default-zone public 例2:查看指定网络接口绑定的区域信息 [root@freeops ~]# firewall-cmd --get-zone-of-interface=ens33 # 查询ens33网络接口的绑定的区域 public [root@freeops ~]# firewall-cmd --get-zone-of-interface=ens36 # 查询ens36网络接口的绑定的区域 public 例3:修改当前接口的默认区域信息 [root@freeops ~]# firewall-cmd --set-default-zone=trusted success [root@freeops ~]# firewall-cmd --get-default-zone trusted 例4:为指定网络接口绑定区域 [root@freeops ~]# firewall-cmd --zone=public --add-interface=ens33 --permanent success 例5:为指定网络接口修改区域 [root@freeops ~]# firewall-cmd --zone=trusted --change-interface=ens36 --permanent success 例6:为指定网络接口删除区域 [root@freeops ~]# firewall-cmd --zone=public --remove-interface=ens33 --permanent success 添加区域

firewalld预定义了9类区域,已可以满足基础需求,但firewall-cmd工具仍支持用户自定义zone。在系统中可以使用firewall-cmd工具的--new-zone或--new-zone-from-file参数可以自定义区域,添加区域的命令执行成功后将会在/etc/firewalld/zones中生成。添加区域,具体如下所示:

[root@freeops ~]# firewall-cmd --new-zone=test --permanent success [root@freeops ~]# firewall-cmd --new-zone-from-file=/etc/firewalld/zones/public.xml --name=test --permanent success 删除区域

firewall-cmd工具支持用户自定义zone的同时也支持用户删除系统已存在的区域,删除区域时需要使用--delete-zone参数。删除区域,具体如下所示:

[root@freeops ~]# firewall-cmd --delete-zone=test --permanent success 区域查询

firewall-cmd工具提供区域查询相关功能,用户可以根据需求选择不同的参数查询区域信息,常用的参数有--info-zone、--list-all-zones等。firewall-cmd查询区域信息,具体如下所示:

例1:查询区域配置文件路径 [root@freeops ~]# firewall-cmd --path-zone=public --permanent /etc/firewalld/zones/public.xml 例2: 查询指定区域配置信息 [root@freeops ~]# firewall-cmd --info-zone=public public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule source ipset="blockIP" log prefix="blockIP" level="info" drop 总结

我们可以将区域理解为可以直接使用防火墙默认存在的策略集合(模板),生产者可以根据生产环境的需求选择合适的策略集合。通过本文将基本了解CentOS7.x系统firewalld中zone选项的那些事。


firewall防火墙没有了(Firewalld的zone你真的了解吗)(3)

猜您喜欢: