HCRM博客

如何在CentOS中配置防火墙以开放特定端口?

CentOS防火墙端口管理详解

在CentOS 7及更高版本中,firewalld服务取代了传统的iptables作为默认的防火墙管理工具,本文将详细介绍如何在CentOS系统中使用firewalld来管理防火墙,包括添加、移除和查询端口等操作。

如何在CentOS中配置防火墙以开放特定端口?-图1
(图片来源网络,侵权删除)

一、基本概念

`firewalld`简介

firewalld是一个动态管理的防火墙守护进程,它支持络/防火墙区域(zone)的概念,允许管理员为不同的区域设置不同的规则,每个区域可以有独立的配置,如允许或拒绝特定端口的流量。

区域(Zone)

firewalld中的区域用于定义一组接口上的安全级别,常见的区域包括:

public: 公共区域,适用于外部互联网接入。

internal: 内部网络区域,通常用于内部局域网。

external: 外部网络区域,通常用于访问外部资源。

如何在CentOS中配置防火墙以开放特定端口?-图2
(图片来源网络,侵权删除)

trusted: 可信区域,通常用于内部受信任的网络。

work: 工作区域,适用于企业环境。

home: 家庭区域,适用于家庭网络。

dmz: 隔离区(Demilitarized Zone),半信任区域。

二、常用命令

启动、停止与重启firewalld服务

如何在CentOS中配置防火墙以开放特定端口?-图3
(图片来源网络,侵权删除)

启动:systemctl start firewalld.service

停止:systemctl stop firewalld.service

重启:systemctl restart firewalld.service

查看状态:systemctl status firewalld.service

开机自启:systemctl enable firewalld.service

取消开机自启:systemctl disable firewalld.service

添加端口

要向特定区域添加一个端口,可以使用以下命令:

firewallcmd zone=public addport=8080/tcp permanent

此命令将在public区域添加TCP协议的8080端口,并且设置为永久生效。

移除端口

要从某个区域移除一个已经添加的端口,可以使用以下命令:

firewallcmd zone=public removeport=8080/tcp permanent

刷新规则

任何对防火墙规则的修改都需要通过以下命令使其生效:

firewallcmd reload

查询端口是否开放

要检查某个端口是否已经在防火墙规则中开放,可以使用以下命令:

firewallcmd queryport=8080/tcp

返回结果将是yesno

查看已有规则

要查看当前所有区域的防火墙规则,可以使用以下命令:

firewallcmd listall

三、示例操作

开放HTTP和HTTPS端口

firewallcmd zone=public addport=80/tcp permanent
firewallcmd zone=public addport=443/tcp permanent
firewallcmd reload

开放多个端口范围

firewallcmd zone=public addport=2000021000/tcp permanent
firewallcmd reload

移除已开放的端口

firewallcmd zone=public removeport=8080/tcp permanent
firewallcmd reload

四、高级操作

开放特定IP访问特定端口

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

这条规则允许IP地址为192.168.1.100的设备访问TCP协议的8080端口。

禁止特定IP访问特定端口

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

这条规则拒绝IP地址为192.168.1.100的设备访问TCP协议的8080端口。

五、归纳

firewalld提供了一种灵活且强大的方式来管理CentOS系统的防火墙规则,通过合理配置区域和规则,可以有效地控制进出系统的流量,提高系统的安全性,本文介绍了基本的启动、停止、添加、移除和查询端口的操作,以及一些高级功能的配置方法,希望这些信息能帮助你更好地管理你的CentOS防火墙。

六、常见问题解答(FAQs)

Q1: 如何更改防火墙的默认区域?

A1: 你可以通过以下命令更改默认的防火墙区域:

firewallcmd setdefaultzone=internal

这将把默认区域设置为internal

Q2: 如何临时开放一个端口而不永久保存?

A2: 如果只需要临时开放一个端口,不加permanent参数即可。

firewallcmd zone=public addport=9090/tcp

这样,端口9090将在当前会话中开放,但不会在重启后保留。

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