HCRM博客

CentOS 7 中的 firewalld 是什么,如何使用它来管理防火墙规则?

CentOS 7 firewalld

背景介绍

CentOS 7 中的 firewalld 是什么,如何使用它来管理防火墙规则?-图1
(图片来源网络,侵权删除)

firewalld 是 CentOS 7 的默认防火墙管理工具,它通过充当 Linux 内核的 netfilter 框架的前端来提供防火墙功能,与传统的 iPTABLes 相比,firewalld 提供了更易于使用的界面和更多的功能,例如动态配置、服务管理以及基于区域的规则管理,本文将详细介绍 firewalld 的基本概念和使用方法,帮助用户在 CentOS 7 中高效地管理和配置防火墙。

基本概念

区域(Zones)

区域是 firewalld 的核心概念之一,用于定义网络连接的信任级别,每个区域都有一组预定义的规则,这些规则决定了该区域内允许或拒绝的流量,常见的区域包括:

public: 用于不受信任的公共区域。

external: 用于在系统充当网关或路由器时启用 NAT 伪装的外部网络。

internal: 当系统充当网关或路由器时,可在内部网络上使用。

CentOS 7 中的 firewalld 是什么,如何使用它来管理防火墙规则?-图2
(图片来源网络,侵权删除)

work: 用于工作机。

home: 用于家庭计算机。

trusted: 接受所有网络连接。

dmz: 用于位于非军事区的计算机,这些计算机对网络其余部分的访问将受到限制。

block: 拒绝所有传入连接,但允许传出连接。

drop: 删除所有传入连接,而无任何通知,仅允许传出连接。

CentOS 7 中的 firewalld 是什么,如何使用它来管理防火墙规则?-图3
(图片来源网络,侵权删除)

服务(Services)

服务是预定义的规则集,代表一组端口和协议,便于管理,HTTP 服务对应于 80 端口的 TCP 流量。

规则(Rules)

规则决定哪些流量被允许或拒绝,规则可以应用于特定的区域、服务或端口。

安装和启动 firewalld

在 CentOS 7 中,firewalld 默认已经安装,你可以通过以下命令检查其状态:

sudo systemctl status firewalld

如果未安装,可以使用以下命令进行安装:

sudo yum install firewalld

启动并设置为开机自启动:

sudo systemctl start firewalld
sudo systemctl enable firewalld

基本配置

查看当前区域和规则

你可以使用以下命令查看当前配置的区域和规则:

sudo firewallcmd getactivezones
sudo firewallcmd listall

添加和删除服务

firewalld 允许通过服务名称添加规则,要允许 HTTP 服务:

sudo firewallcmd zone=public addservice=http permanent

要删除服务,可以使用:

sudo firewallcmd zone=public removeservice=http permanent

添加和删除端口

如果你需要直接管理端口,可以使用以下命令:

添加端口(8080):

sudo firewallcmd zone=public addport=8080/tcp permanent

删除端口:

sudo firewallcmd zone=public removeport=8080/tcp permanent

重新加载防火墙

在进行任何更改后,需重新加载防火墙以使其生效:

sudo firewallcmd reload

查看和监控日志

防火墙的日志可以帮助你监控流量和潜在的安全问题,可以通过 journalctl 查看相关日志:

sudo journalctl u firewalld

常见问题解答(FAQs)

Q1: 如何更改默认区域?

A1: 要更改默认区域,可以使用以下命令:

sudo firewallcmd setdefaultzone=home

然后重新加载防火墙:

sudo firewallcmd reload

Q2: 如何允许特定 IP 访问某个端口?

A2: 你可以使用 rich rule 来允许特定 IP 访问某个端口,允许 IP 地址192.168.1.100 访问 HTTP 服务的 80 端口:

sudo firewallcmd permanent addrichrule="rule family=ipv4 source address=192.168.1.100/32 port port=80 protocol=tcp accept"
sudo firewallcmd reload

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/19625.html

分享:
扫描分享到社交APP
上一篇
下一篇