FirewallD 防火墙使用概述( 二 )

在你配置新的防火墙规则之前,你需要了解如何通过命令查看当前防火墙配置 。查看防火墙当前配置可以通过图形界面或者在终端模式下使用命令进行 。
在图形界面下可以直接通过点击应用程序“firewall-config”图标或者在终端窗口中输入 firewall-config 命令进行防火墙配置 。如果当前用户为非 root 用户,系统将弹出管理员认证窗口,用户正确输入管理员密码后,防火墙配置窗口就会打开,用户即可以按照窗口界面提供的功能进行操作 。
用户也可以在命令行下使用 firewall-cmd工具进行防火墙配置 。命令行工具虽然学习起来需要一定的时间,不过该工具可以完全在系统处于终端模式下进行各种复杂的防火墙全功能配置,用户有必要进行认真的学习和掌握 。
3.2、防火墙基础命令
FirewallD 使用了区域进行数据流的管理,当用户使用 firewall-cmd --list-all 命令时,如果没有使用 --zone 指定区域,那么系统将返回默认区域的当前配置状态 。
默认区域由配置文件 /etc/firewalld/firewalld.conf 中的字段 DefaultZone 定义,初始状态下,默认区域被定义为 public(公共区域) 。
用户可以使用命令:
firewall-cmd --get-zones查看当前系统防火墙设置的的区域名列表,也可以使用命令:
firewall-cmd --get-default-zone查看防火墙当前的默认区域;同时,可使用命令:
firewall-cmd --set-default-zone=[zonename]或者通过直接编辑配置文件中 DefaultZone 字段的值进行默认区域的修改 。
启动防火墙:
systemctl unmask firewalldsystemctl start firewalld让防火墙随系统启动一起启动:
systemctl enable firewalld停止防火墙:
systemctl stop firewalld停止随系统启动:
systemctl disable firewalld停止通过访问 firewalld D-Bus 接口和其他服务需要 firewalld 依赖导致的 firewalld 自动启动,更加干净的关闭 firewalld 服务:
systemctl mask firewalld按照 RedHat 的官方文档定义,防火墙运行之后被称为运行时状态,保存了启动默认参数之后的配置被称为永久状态 。在当前运行状态对防火墙进行的所有配置修改,系统即时生效,但重启后防火墙会恢复到它之前的永久状态,其实这一过程就是从保存之后的配置文件中加载相应配置参数的过程 。
用户可以使用命令:
fiewall-cmd --runtime-to-permanent对当前修改过的规则即时保存为永久配置,也可以使用命令 firewall-cmd --permanent 并在其后添加其它参数永久进行修改 。
重新启动 firewalld 将关闭所有打开的端口并停止网络通信,需要使用命令:
firewall-cmd --reload重新加载永久配置使之生效 。
FirewallD 提供了一种系统受到攻击的紧急操作功能 。假设攻击者对系统进行攻击,用户可以直接使用命令:
firewall-cmd --panic-on关闭网络通信并且切断攻击者,而不用像之前那样通过物理拔除网线来进行断网操作,防止了系统在多网口环境中一次性插拔所有网线可能带来的混乱以及由此引发的系统恢复后延续问题 。
需要恢复网络通信时用户只要使用命令:
firewall-cmd --panic-off关闭恐慌模式即可,用户也可以使用命令:
firewall-cmd --query-panic查询防火墙当前恐慌模式的状态 。
3.2、防火墙服务管理命令
用户可以通过命令行工具添加预定义的服务类型,防火墙会自动根据所需的端口并将其他设置修改为服务定义文件 。
使用命令:
firewall-cmd --list-services可以查看当前区域内被允许的服务 。使用命令:
firewall-cmd --get-services可以列出所有防火墙已经给定的预定义服务名称 。使用命令:
firewall-cmd --add-service=<service-name>可以添加具体服务,服务名称用户可以根据自己的实际需求从预定义服务名称中选取合适的服务名进行添加 。完成之后用户可以使用命令:
firewall-cmd --runtime-to-permanent将对运行时的修改保存为永久 。用户可以通过命令 firewall-config、firewall-cmd 和 firewall-offline-cmd,或者通过直接将 /usr/lib/firewalld/services 目录的默认模板 XML 文件复制到 /etc/firewalld/services 目录中进行编辑来添加一个自定义服务类型 。具体过程如下:
方法一:执行 firewall-cmd –new-service=service-name,系统将直接在 /etc/firewalld/services 目录下创建一个以 .xml 结尾的同名文件,自定义服务类型添加完成 。


推荐阅读