如何在 CentOS 7 Linux 中禁用防火墙

CentOS 7 Linux 操作系统的默认安装已安装并默认启用 firewalld 防火墙作为安全措施,但我们如何禁用它?

在本快速教程中,我们将介绍如何通过命令行在 CentOS 7 中禁用 firewalld 或者 iptables。

在 CentOS 7 中禁用防火墙

默认情况下已安装并启用 Firewalld,在我的 CentOS 7 最小系统上,我们可以确认这一点,如下所示。

[jack@onitroad ~]# systemctl is-enabled firewalld
enabled

启用意味着该服务将在系统启动期间自动启动。
我们可以在这里看到 firewalld 既处于活动状态又处于启用状态。
我们可以禁用它,如下所示。

[jack@onitroad ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

现在 firewalld 被禁用,它不会在系统启动时自动启动。
然而,这不会停止 firewalld 当前正在运行的实例,正如我们在下面看到的,它仍然处于活动状态,这意味着 firewalld 当前正在运行。

[jack@onitroad ~]# systemctl is-active firewalld
active

要停止firewalld运行,我们必须单独停止它,如下所示。

[jack@onitroad ~]# systemctl stop firewalld

现在,如果我们查询 firewalld 是否正在运行和启用,我们应该看到它已被禁用。

[jack@onitroad ~]# systemctl is-enabled firewalld
disabled
[jack@onitroad ~]# systemctl is-active firewalld
unknown

尽管被禁用,目前仍然可以使用“systemctl start firewalld”命令手动启动 firewalld 服务。
为了完全防止它被手动启动,必须屏蔽该服务。

[jack@onitroad ~]# systemctl mask firewalld
Created symlink from /etc/systemd/system/firewalld.service to /dev/null.

现在,即使我们尝试手动启动 firewalld,它也会失败。

[jack@onitroad ~]# systemctl start firewalld
Failed to start firewalld.service: Unit firewalld.service is masked.

在 CentOS 7 中禁用 iptables

正如前面提到的,CentOS 7 中默认使用 firewalld,但有可能是 firewalld 已被删除,而是安装了传统的 iptables。
如果是这种情况,将使用相同的命令,除了我们将在 firewalld 实例中指定 iptables。

systemctl stop iptables
systemctl disable iptables
systemctl mask iptables

值得注意的是,iptables 和 firewalld 是互斥的,任何时候都应该只运行一个。

日期:2020-07-07 20:55:06 来源:oir作者:oir