HCRM博客

如何在CentOS上配置和管理防火墙规则?

CentOS防火墙(Firewalld)全面指南

CentOS 7及更高版本默认使用firewalld 作为防火墙管理工具,本文将详细介绍firewalld 的概念、常用命令和操作实例,帮助你更好地理解和管理服务器的网络连接。

如何在CentOS上配置和管理防火墙规则?-图1
(图片来源网络,侵权删除)

一、基本概念

firewalldiptables 的前端,通过区域和服务的方式简化了配置过程,以下是一些核心概念:

1、区域(Zone):网络接口分组,每个区域可以定义一组预定义的安全规则,例如公共、私有、内部、信任等。

2、服务(Service):一组预定义的规则集合,可以通过名称来指代一组特定的端口和协议,例如HTTP服务通常使用端口80,HTTPS服务通常使用端口443。

3、端口(Port):用于标识网络服务的数字,每个网络服务都会监听特定的端口以便于通信。

二、常用命令

启动/停止/重启firewalld 服务

启动 firewalld
systemctl start firewalld
查看 firewalld 状态
systemctl status firewalld
停止 firewalld
systemctl stop firewalld
重启 firewalld
systemctl restart firewalld

查看所有区域

如何在CentOS上配置和管理防火墙规则?-图2
(图片来源网络,侵权删除)
firewallcmd getzones

查看指定区域的规则

firewallcmd zone=public listall

开放端口

添加端口到 public 区域
firewallcmd zone=public addport=80/tcp permanent
重新加载防火墙配置
firewallcmd reload

添加服务

添加 HTTP 服务到 public 区域
firewallcmd zone=public addservice=http permanent
重新加载防火墙配置
firewallcmd reload

删除端口/服务

删除端口 80 从 public 区域
firewallcmd zone=public removeport=80/tcp permanent
重新加载防火墙配置
firewallcmd reload

三、实例操作

开放 SSH 访问(端口 22)

firewallcmd zone=public addservice=ssh permanent
firewallcmd reload

开放 HTTP 和 HTTPS 服务

如何在CentOS上配置和管理防火墙规则?-图3
(图片来源网络,侵权删除)
firewallcmd zone=public addservice=http permanent
firewallcmd zone=public addservice=https permanent
firewallcmd reload

将网络接口从默认的 public 区域移动到 trusted 区域

firewallcmd zone=trusted changeinterface=eth0 permanent
firewallcmd reload

禁止 Ping 请求

firewallcmd zone=public icmpblockinversion permanent
firewallcmd reload

允许特定 IP 访问 SSH 端口

firewallcmd zone=public addrichrule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' permanent
firewallcmd reload

四、配置文件路径

firewalld 的配置文件位于/etc/firewalld/ 目录下,其中主要的配置文件有:

1、firewalld.conffirewalld 的主要配置文件。

2、zones/:每个区域的配置文件都在这个目录下,例如public.xml,internal.xml 等。

3、services/:包含每个服务的 XML 文件,例如http.xml,ssh.xml 等。

五、FAQs

Q1:如何永久关闭防火墙?

A1: 要永久关闭firewalld,你需要先停止服务,然后禁用开机启动。

停止 firewalld 服务
systemctl stop firewalld
禁用 firewalld 开机启动
systemctl disable firewalld

Q2:如何查看当前活跃的区域及其绑定的网络接口?

A2: 你可以使用以下命令查看当前活跃的区域及其绑定的网络接口:

firewallcmd getactivezones

firewalld 是一个功能强大且灵活的防火墙管理工具,适用于各种复杂的网络环境,通过上述内容,你应该能够熟练地使用firewalld 来保护和管理你的 CentOS 服务器,记得根据实际需求和安全策略及时更新防火墙规则,以确保服务器的安全性和稳定性。

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