什么是防火墙,如何在CentOS 7上禁用防火墙?

2年前 (2022)发布 酷星
0 0

有时必须在CentOS中禁用防火墙,出于安全原因,必须在生产服务器上运行防火墙,我们不能充分强调正确配置防火墙管理工具的重要性。

在本教程中,学习如何在CentOS 7上启用和使用Firewalld。

什么是防火墙?

Firewalld是CentOS 7上的默认防火墙管理器。它已预先安装,并在首次启动时处于活动状态。它使用默认区域和自定义区域来允许或禁止传入流量。

先决条件

  • 具有sudo特权的用户

  • 访问命令行(Ctrl-Alt-T)

  • 一台CentOS 7机器

如何检查防火墙状态

首先启动您的CentOS 7服务器,并检查firewalld是否正在运行。为此,请打开终端(CTRL-ALT-T)并运行以下命令:

sudo systemctl status firewalld

您可能会收到一些输出。

活动:活动(运行中)

如果输出显示Active: active (running),则防火墙处于活动状态。如果不确定系统重启后防火墙管理器是否已启动,请考虑发出以下命令:

sudo systemctl enable firewalld

该命令将系统配置为在每台服务器重新引导后启动防火墙。

有效:无效(无效)

如果输出显示 Active: inactive (dead),则防火墙未运行。转到本文的“启用和启动防火墙”部分。

已加载:已屏蔽(/ dev / null;错误)

输出可能表明该服务处于非活动状态并被屏蔽。有关更多详细信息,请参见下图。

在这里,防火墙服务被符号链接屏蔽。管理员可能会屏蔽该服务,因此其他软件包不会自动激活它。您必须在启用服务之前取消屏蔽该服务。

要取消屏蔽防火墙服务,请运行以下命令:

sudo systemctl unmask --now firewalld

输出应指示符号链接已被删除。

现在,您可以继续本文的“启用和启动防火墙”部分。

如何启用和启动防火墙

要在CentOS 7上启用防火墙,请以sudo的身份运行以下命令:

sudo systemctl enable firewalld

启用防火墙后,启动firewalld服务:

sudo systemctl start firewalld

系统执行命令时,没有输出。因此,验证防火墙是否已成功激活是明智的。

使用以下方法检查防火墙状态:

sudo systemctl status firewalld

输出应指示firewalld处于活动状态并且正在运行。

<防火墙区域

Firewalld建立“区域”,并将所有传入流量归类到所述区域。每个网络区域都有其自己的规则集,基于这些规则,它接受或拒绝传入流量。换句话说,区域决定允许哪个数据包以及哪个数据包不起作用。与iptables相比,此方法可提供更大的灵活性,因为您可以为设备所连接的特定网络设置不同的区域。

要查看所有可用区域的完整列表,请键入:

sudo firewall-cmd  --get-zones

对于全新安装,很可能会获得以下输出:

Output  block dmz drop external home internal public trusted work

这些是预配置的区域。要验证将哪个区域设置为默认区域,请运行以下命令:

sudo firewall-cmd --get-default-zone

Firewalld提供了所有预配置区域和区域描述的列表。下面的列表是根据信任级别(从最低信任到最高信任)排序的。

drop:最低级别的信任。所有传入的连接都将被丢弃而不会回复,并且只有传出的连接是可能的。

block:与上面的类似,但不是简单地丢弃连接,而是使用icmp-host-prohibited或icmp6-adm-prohibited消息拒绝传入的请求。

public:表示不信任的公共网络。您不信任其他计算机,但可能会视情况允许选择的传入连接。

external:如果您使用防火墙作为网关,则为外部网络。将其配置为伪装NAT,以便您的内部网络保持私有但可访问。

内部:外部区域的另一侧,用于网关的内部。这些计算机相当可靠,并且可以使用一些其他服务。

dmz:用于DMZ中的计算机(将无法访问网络其余部分的隔离计算机)。仅允许某些传入连接。

工作:用于工作机。信任网络中的大多数计算机。可能还允许其他一些服务。

家庭:家庭环境。通常,这意味着您信任其他大多数计算机,并且将接受其他一些服务。

Trusted:信任网络中的所有计算机。可用选项中最开放的,应谨慎使用。

验证活动防火墙区域

要验证哪个区域处于活动状态,请键入:

sudo firewall-cmd --get-active-zones

输出将指示活动区域以及它所控制的网络接口。如果未进行其他配置,则默认区域将是唯一的活动区域。

防火墙区域规则

要查看哪些规则与默认区域相关联,请运行以下命令:

sudo firewall-cmd --list-all

让我们考虑所有列出的元素并定义它们:

target:默认值表示该区域是默认区域。它还可能指示某个区域处于活动状态。在上面的示例中,公共区域未处于活动状态,因为它没有与之关联的任何网络接口。

icmp-block-inversion:这是一个可选元素,可反转icmp-block处理。

interfaces:此区域控制的所有网络接口。

来源:此区域的来源(IP地址)。

服务:显示允许的服务。在上面的示例中,它是ssh dhcpv6-client。有关通过firewalld可用的服务的完整列表,请运行firewall-cmd –get-services命令。

ports:允许通过防火墙的端口列表。这对于允许在firewalld中未定义的服务非常有用。

冒充:如果没有,则禁用IP冒充。启用后,它允许IP转发。这实际上意味着您的服务器将充当路由器。

forward-ports:显示所有转发端口的列表。

source-ports:列出与该区域有关的所有源端口和协议。

icmp-blocks:显示被阻止的icmp流量。

丰富规则:与区域相关联的所有高级规则的列表。
   要获取与特定区域关联的规则的列表,请将–zone=参数添加到–list-all命令中。例如,

sudo firewall-cmd --zone=work --list-all

上面的命令将生成与工作 区关联的规则列表

如何更改接口区域

将另一个区域重新分配给网络接口很容易。使用该–zone标志指定区域,然后添加–change-interface标志以指定网络接口。

sudo firewall-cmd --zone=home --change-interface=eth1

验证更改是否生效:

firewall-cmd --get-active-zones

Firewalld应该已经将归属区域应用于通过eth1网络接口的所有流量。

警告:更改接口的区域时,可能会影响活动服务的状态。例如,如果您正在使用SSH并将网络接口移至不支持SSH服务的区域,则连接可能会断开。此外,您将无法登录。

更改默认的防火墙区域

您可以轻松更改默认区域。使用该–set-default-zone标志指示要将哪个区域设置为默认区域。在下面的示例中,我们将工作区设置为默认区域。

sudo firewall-cmd --set-default-zone=work

更改默认区域后,您应该收到指示更改成功的输出。有关更多详细信息,请参见上图。

您还可以通过运行以下命令来验证修改:

sudo firewall-cmd --get-default-zone

输出应显示该工作区确实是默认区域。

结论

通过遵循本教程,您应该能够成功检查防火墙状态,以及在CentOS 7上启用和启动防火墙。

我们还介绍了基本的防火墙概念,例如区域。您还学习了如何操纵默认防火墙区域的用法,以及如何取消屏蔽服务。理解防火墙在CentOS 7上如何工作的所有重要的第一步。

您必须登录才能参与评论!
立即登录