Firewalld提供了一种配置在Linux的动态防火墙规则,可以立即被应用,而不需要防火墙重启并且也支持D BUS和区的概念,这使得结构简单。
管理Linux防火墙的有用的防火墙规则
Firewalld取代旧的Fedora的防火墙(Fedora的18起)机制,RHEL / CentOS 7等最新发行依靠这个新机制。 引入新的防火墙系统的最大动机之一是,旧防火墙在进行每次更改后需要重新启动,从而中断所有活动连接。 如上所述,最新的firewalld支持动态区域,这对于通过命令行或使用GUI方法为您的办公室或家庭网络配置不同的区域和规则集是有用的。
最初,firewalld概念看起来很难配置,但服务和区域使它更容易保持在一起,如本文所述。
在我们之前的文章中,我们已经看到了如何使用firewalld及其区域,现在在这篇文章中,我们将看到一些有用的firewalld规则,以使用命令行方式配置当前的Linux系统。
本文中涉及的所有例子在CentOS实际上是测试7分布,也适用于RHEL和Fedora发行版。
在实施firewalld规则之前,请确保首先检查firewalld服务是否已启用并正在运行。
# systemctl status firewalld
防火墙状态检查
上图显示firewalld处于活动状态并正在运行。 现在是时候检查所有活动区域和活动服务。
# firewall-cmd --get-active-zones # firewall-cmd --get-services
检查区域和服务
如果incase,你不熟悉命令行,你也可以从GUI管理firewalld,为此你需要有GUI包安装在系统上,如果不使用以下命令安装它。
# yum install firewalld firewall-config
如上所述,这篇文章是专为命令行爱好者和所有的例子,我们将要覆盖的是基于命令行,没有GUI的方式。
在进一步移动之前,首先确保在哪个公共区域中配置Linux防火墙,并使用以下命令列出所有活动服务,端口和丰富的公共区域规则。
# firewall-cmd --zone=public --list-all
检查公共区域
在上面的图片中,没有添加任何活动规则,让我们看看如何添加,删除和修改规则在本文的剩余部分...。
1.在Firewalld中添加和删除端口
要打开公共区域的任何端口,请使用以下命令。 例如,以下命令将打开公共区域的端口80。
# firewall-cmd --permanent --zone=public --add-port=80/tcp
同样,要删除添加的端口,只需使用'-remove'选项可以firewalld命令,如下图所示。
# firewall-cmd --zone=public --remove-port=80/tcp
添加或删除特定端口后,请确认该端口是否加入或使用'-list端口 “选项去掉。
# firewall-cmd --zone=public --list-ports
在Firewalld中添加端口
2.在Firewalld中添加和删除服务
默认情况下,firewalld附带预定义的服务,如果要添加特定服务的列表,则需要创建一个包含文件中所有服务的新xml文件,或者也可以通过运行以下命令手动定义或删除每个服务命令。
例如,以下命令将帮助您添加或删除特定服务,如我们在本示例中所做的那样。
# firewall-cmd --zone=public --add-service=ftp # firewall-cmd --zone=public --remove-service=ftp # firewall-cmd --zone=public --list-services
在Firewalld中添加服务
3.阻止输入和输出数据包(紧急模式)
如果你想阻止任何传入或传出的连接,你需要使用一个“ 恐慌式 ”模式来阻止这样的请求。 例如,以下规则将删除系统上任何现有已建立的连接。
# firewall-cmd --panic-on
使恐慌模式后,尝试ping任何域(例如google.com),并检查恐慌模式是使用 '-query恐慌 “选项,如下所示。
# ping google.com -c 1 # firewall-cmd --query-panic
阻止防火墙中的传入连接
你在上面的图片中看到,恐慌查询写着“ 未知主机google.com”。 现在尝试禁用紧急模式,然后再次ping和检查。
# firewall-cmd --query-panic # firewall-cmd --panic-off # ping google.com -c 1
在Firewalld中禁用紧急模式
现在这一次,将有来自google.com的ping请求。