CentOS7之防火墙命令详解(2)

用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。(You do not trust the other computers on networks to not harm your computer. Onlyselected incoming connections are accepted.)


外部

用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。


隔离区(dmz)

用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。


工作

用在工作网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。


家庭

用在家庭网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。


内部

用在内部网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。


受信任的

允许所有网络连接。


我应该选用哪个区域?

例如,公共的 WIFI 连接应该主要为不受信任的,家庭的有线网络应该是相当可信任的。根据与你使用的网络最符合的区域进行选择。


如何配置或者增加区域?

你可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有例如 firewall-config 这样的图形界面工具, firewall-cmd 这样的命令行工具,以及D-BUS接口。或者你也可以在配置文件目录中创建或者拷贝区域文件。 @PREFIX@/lib/firewalld/zones 被用于默认和备用配置,/etc/firewalld/zones 被用于用户创建和自定义配置文件。


如何为网络连接设置或者修改区域

区域设置以 ZONE= 选项 存储在网络连接的ifcfg文件中。如果这个选项缺失或者为空,firewalld 将使用配置的默认区域。

如果这个连接受到 NetworkManager 控制,你也可以使用 nm-connection-editor 来修改区域。


由NetworkManager控制的网络连接

防火墙不能够通过 NetworkManager 显示的名称来配置网络连接,只能配置网络接口。因此在网络连接之前 NetworkManager 将配置文件所述连接对应的网络接口告诉 firewalld 。如果在配置文件中没有配置区域,接口将配置到 firewalld 的默认区域。如果网络连接使用了不止一个接口,所有的接口都会应用到 fiwewalld。接口名称的改变也将由 NetworkManager 控制并应用到firewalld。

为了简化,自此,网络连接将被用作与区域的关系。

如果一个接口断开了,NetworkManager也将告诉firewalld从区域中删除该接口。

当firewalld由systemd或者init脚本启动或者重启后,firewalld将通知NetworkManager把网络连接增加到区域。


由脚本控制的网络

对于由网络脚本控制的连接有一条限制:没有守护进程通知 firewalld 将连接增加到区域。这项工作仅在 ifcfg-post 脚本进行。因此,此后对网络连接的重命名将不能被应用到firewalld。同样,在连接活动时重启 firewalld 将导致与其失去关联。现在有意修复此情况。最简单的是将全部未配置连接加入默认区域。

区域定义了本区域中防火墙的特性:


使用firewalld

你可以通过图形界面工具 firewall-config 或者命令行客户端 firewall-cmd 启用或者关闭防火墙特性。


使用firewall-cmd

命令行工具 firewall-cmd 支持全部防火墙特性。对于状态和查询模式,命令只返回状态,没有其他输出。


一般应用

获取 firewalld 状态
firewall-cmd --state

此举返回 firewalld 的状态,没有任何输出。可以使用以下方式获得状态输出:
firewall-cmd --state && echo "Running" || echo "Not running"

Fedora 19 中, 状态输出比此前直观:
# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd --state
not running

在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload

如果你使用–complete-reload,状态信息将会丢失。这个选项应当仅用于处理防火墙问题时,例如,状态信息和防火墙规则都正常,但是不能建立任何连接的情况。

获取支持的区域列表
firewall-cmd --get-zones

这条命令输出用空格分隔的列表。

获取所有支持的服务
firewall-cmd --get-services

这条命令输出用空格分隔的列表。

获取所有支持的ICMP类型
firewall-cmd --get-icmptypes

这条命令输出用空格分隔的列表。

列出全部启用的区域的特性
firewall-cmd --list-all-zones

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13070.html