如何检查 Redhat 7 上的防火墙是否已停止

如何检查 Redhat 7 上的防火墙是否已停止

验证 Redhat 7 计算机上的防火墙是否已停止/处于非活动状态的优雅方法是什么?

例子:

我们停止防火墙:

systemctl  status firewalld.service

我验证防火墙状态的方法是这样的:

systemctl  status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor 
preset: enabled)
Active: inactive (dead)

所以

在我的 bash 脚本中,我执行以下操作以检查防火墙是否已停止/不活动

if [[ `  systemctl  status firewalld.service | grep Active | awk '{print $2}' ` = inactive ]] 
then
       firewall_status=inactive
else
       firewall_status=active
fi

但以这种方式检查结果有点笨拙。

答案1

有一种更好、更干净的方法:

systemctl is-active firewalld

true如果firewalld处于活动状态并且正在运行,则将简单地返回,false否则。

所以你的测试变成:

if [ `systemctl is-active firewalld` ]
then
    firewall_status=active
else
    firewall_status=inactive
fi

答案2

firewall-cmdRHEL 7 引入了与防火墙配合使用的命令。但问题是它需要 root 访问权限。

如果您以 root 身份运行脚本,则可以使用以下代码:

if [[ `firewall-cmd --state` = running ]]
then
    firewall_status=active
else
    firewall_status=inactive
fi

但是,如果您没有以 root 身份运行脚本,那么不幸的是,您的脚本是唯一的方法。

答案3

您可以使用以下命令检查 Redhat Linux 7 中防火墙的状态

systemctl status firewalld

您将看到状态 -

firewalld.service - firewalld - 动态防火墙守护进程已加载:已加载(/usr/lib/systemd/system/firewalld.service;已禁用)
活跃:不活跃(死亡)

8月21日14:55:54主机systemd[1]:启动firewalld - 动态防火墙守护进程... 8月21日14:55:57主机systemd[1]:启动firewalld - 动态防火墙守护进程。 9月24日15:43:03主机systemd [1]:停止firewalld - 动态防火墙守护进程... 9月24日15:43:04主机systemd [1]:停止firewalld - 动态防火墙守护进程。

相关内容