如何在 CentOS 7 上禁用或关闭 Firewalld?
简介
Firewalld 是 CentOS 7 中内置的动态防火墙管理工具。它取代了之前的 iptables 服务,成为 CentOS 7 的默认防火墙工具。
Firewalld 旨在简化防火墙规则的管理,并在定义策略和规则集方面提供更大的灵活性。CentOS 7 上 Firewalld 的主要目的是通过阻止不符合特定规则或策略的入站流量来保护您的系统免受未经授权的访问。
它还允许您根据对特定网络或接口的信任级别,定义具有不同安全级别的不同网络区域。尽管 Firewalld 有很多好处,但出于某些原因,人们可能还是想禁用或关闭它。
了解 CentOS 7 上的 Firewalld
Firewalld 是 CentOS 7 捆绑提供的防火墙管理工具。它旨在为管理员提供易于使用的界面来管理系统上的防火墙规则。Firewalld 使用区域 (zone) 根据预期用途对传入流量和服务进行分组。
默认情况下,CentOS 7 有多个预定义区域:公共区域 (public)、外部区域 (external)、内部区域 (internal)、非军事区 (DMZ) 和其他区域。每个区域都有自己的一组预定义规则,用于规定如何处理传入流量。
例如,公共区域允许传入的 HTTP 和 HTTPS 流量,同时默认阻止所有其他传入流量。外部区域类似,但允许其他协议,例如 SMTP 或 POP3 电子邮件流量。
FirewallD 还拥有丰富的服务,可以根据管理员的需求启用或禁用。这些服务本质上是预定义的端口和协议集合,它们被组合在一起,以便在不同的区域内轻松管理。
Firewalld 中的不同区域
如前所述,Firewalld 使用区域根据预期用途隔离传入流量。以下是 CentOS 7 中可用的不同区域的简要概述 -
公共区域 - 适用于连接到互联网等公共网络的系统。它允许传入的 HTTP 和 HTTPS 流量,同时默认阻止所有其他传入流量。
外部区域 - 与公共区域类似,但允许其他协议,例如 SMTP 或 POP3 电子邮件流量。 - 内部:用于 LAN 系统,允许所有传出流量和客户端通常使用的一些常用服务(例如 DNS、DHCP)。
DMZ− 适用于可从内部和外部网络访问的托管服务器。它允许传入的 HTTP、HTTPS、SMTP 和 SSH 流量,同时默认阻止所有其他流量。
工作− 用于受信任网络环境中的桌面系统,需要启用某些服务,例如 SSH 或 VNC 远程访问。要了解 Firewalld 在 CentOS 7 上的工作原理,需要掌握它的两个关键组件:区域和服务。
在 CentOS 7 上禁用或关闭 Firewalld
Firewalld 是 CentOS 7 中一项重要的安全功能,但在某些情况下,您可能需要暂时或永久禁用或关闭它。在本节中,我们将讨论在 CentOS 7 上禁用或关闭 Firewalld 的三种方法。
方法 1:使用 systemctl 命令
systemctl 命令是一个系统守护进程控制实用程序,用于在 CentOS 7 中启动和停止服务。要永久禁用 Firewalld 服务,请按照以下步骤操作:
以 root 用户身份打开终端窗口。
输入以下命令:
systemctl stop firewalld
这将立即停止 Firewalld 服务。
输入以下命令 -
systemctl disable firewalld
这将阻止 Firewalld 服务在系统启动时自动启动。
方法 2:使用 firewall-cmd 命令
firewall-cmd 命令行工具允许您直接从终端窗口配置和管理 FirewallD 规则。您可以使用此工具按照以下步骤暂时或永久关闭特定区域 -
以 root 用户身份打开终端窗口。
通过运行此命令确定要禁用哪些区域:
firewall-cmd --get-active-zones
这将显示系统中的所有活动区域。
使用此命令关闭您选择的区域 -
firewall-cmd --zone=public --remove-interface=eth0 --permanent
将"public"替换为您想要的区域名称,将"eth0"替换为您的网络接口名称。
重新加载 FirewallD 规则以使更改生效 -
firewall-cmd --reload
方法 3:删除 Firewalld 软件包
如果您根本不需要 FirewallD,您可以从系统中删除整个软件包。删除 Firewalld 软件包将永久禁用并从 CentOS 7 中删除 FirewallD。请按照以下步骤操作:
以 root 用户身份打开终端窗口。
输入以下命令卸载 firewall-cmd 软件包 -
yum remove firewalld
确认您要继续删除软件包。
等待 yum 完成软件包删除。
注意:删除 Firewalld 软件包可能会导致依赖它的其他服务出现问题。
禁用或关闭 Firewalld 时常见问题的故障排除
检查 firewalld 是否正在运行
在 CentOS 7 系统上禁用或关闭 Firewalld 之前,您首先需要检查该服务是否正在运行。为此,您可以使用以下命令 -
systemctl status firewalld
如果命令输出显示 Firewalld 当前处于活动状态并正在运行,则您需要先将其停止,然后才能禁用或关闭它。您可以使用 `systemctl stop firewalld` 命令停止该服务。
如果由于某种原因,即使在使用这些命令后,Firewalld 仍然保持启动,请运行以下命令,确保 `firewalld` 在 systemd 的启动序列中未启用:
systemctl disable firewalld
检查 iptables 服务是否正在运行
FirewallD 提供了一个用于配置防火墙规则和管理网络流量的高级接口。它在您的系统上作为守护进程运行,并与 iptables/netfilter 内核模块交互以强制执行其规则。
如果您的系统上未安装和/或未启用 `iptables`,则在尝试禁用 FirewallD 时会遇到问题。使用以下命令检查 iptables 服务是否正在运行:-
systemctl status iptables
如果未安装或启用,请运行:-
yum install iptables-services -y systemctl enable iptables systemctl start iptables
启用 `iptables` 后,禁用 FirewallD 应该不会有什么问题。
验证端口是否打开
用户在 CentOS 7 上禁用 FirewallD 时遇到的另一个常见问题是确保所有必需的端口都已打开。如果即使禁用了 firewalld,某些端口仍然默认被阻止,某些服务可能无法正常工作。
要验证系统上当前哪些端口已打开且可访问,您可以使用 `nmap` 命令:``` nmap localhost ```
这将为您提供系统上所有开放端口的列表。如果发现某些端口未打开,则需要将其添加到 iptables 规则或服务文件中,以允许流量通过。
结论
Firewalld 是保护网络安全和 CentOS 7 系统免受未经授权访问的重要工具。但是,在某些情况下,您可能需要暂时或永久禁用或关闭 Firewalld。在本文中,我们讨论了在 CentOS 7 上禁用或关闭 Firewalld 的三种方法:使用 systemctl 命令、使用 firewall-cmd 命令以及完全删除 Firewalld 软件包。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

