如何在CentOS 7上禁用或关闭Firewalld?
介绍
Firewalld 是CentOS 7中包含的一个动态防火墙管理工具。它取代了之前的iptables服务,成为CentOS 7的默认防火墙工具。
Firewalld旨在简化防火墙规则的管理,并提供在定义策略和规则集方面更大的灵活性。CentOS 7上Firewalld的主要目的是通过阻止与特定规则或策略不匹配的入站流量来保护您的系统免受未授权访问。
它还允许您根据对特定网络或接口的信任级别定义具有不同安全级别的不同网络区域。尽管它有很多优点,但有些原因可能会导致有人想要禁用或关闭Firewalld。
理解CentOS 7上的Firewalld
Firewalld是一个与CentOS 7捆绑在一起的防火墙管理工具。它旨在为管理员提供一个易于使用的界面,用于管理系统上的防火墙规则。Firewalld使用区域根据其预期用途对传入流量和服务进行分组。
默认情况下,CentOS 7具有几个预定义区域:公共区域(public)、外部区域(external)、内部区域(internal)、DMZ区域(dmz)和其他区域。每个区域都有自己的一组预定义规则,这些规则决定如何处理传入流量。
例如,公共区域允许传入HTTP和HTTPS流量,同时默认阻止所有其他传入流量。外部区域类似,但允许其他协议,例如SMTP或POP3电子邮件流量。
Firewalld还拥有一套丰富的服务,可以根据管理员的需求启用或禁用。这些服务本质上是预定义的端口和协议集合,为了方便管理,它们在不同的区域中组合在一起。
Firewalld中的不同区域
如前所述,Firewalld使用区域根据其预期用途对传入流量进行隔离。以下是CentOS 7中可用不同区域的简要概述:
公共区域 (Public) − 适用于连接到公共网络(如互联网)的系统。它允许传入HTTP和HTTPS流量,同时默认阻止所有其他传入流量。
外部区域 (External) − 与公共区域类似,但允许其他协议,例如SMTP或POP3电子邮件流量。- **内部区域 (Internal):** 用于局域网系统,它允许所有出站流量和客户端通常使用的一些常见服务(例如,DNS、DHCP)。
DMZ区域 (DMZ) − 适用于托管可从内部和外部网络访问的服务器。它允许传入HTTP、HTTPS、SMTP和SSH流量,同时默认阻止其他所有流量。
工作区域 (Work) − 用于受信任网络环境中的桌面系统,需要启用某些服务,例如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包。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP