0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问Centos7如何配置firewalld防火墙规则?

马哥Linux运维 来源:文江博客 2023-10-09 09:33 次阅读

一、简单介绍

Firewalld是CentOS系统自带的一种动态防火墙管理工具。是一个前端工具,用于管理Linux系统上的netfilter防火墙规则。Firewalld提供了一种简化和易于使用的方法来配置和管理防火墙。

二、特点和功能:

2.1、区域(Zone):

Firewalld使用区域来定义不同的网络环境,如公共网络、内部网络和信任网络等。每个区域都有自己的防火墙规则集合,可以根据网络环境的不同选择适当的区域。预定义的区域包括公共(public)、私有(private)、可信(trusted)、工作(work)和家庭(home)。

2.2、运行时和永久配置:

Firewalld支持运行时和永久配置。运行时配置的更改在重新启动后会被重置,而永久配置则会持久保存并在系统重新启动后生效。

2.3、服务和端口

Firewalld可以通过定义服务和端口来管理访问控制。服务是一组预定义的规则,用于允许或拒绝特定的网络服务。端口规则允许或拒绝特定的端口号。

2.4、动态更新:

Firewalld支持动态更新防火墙规则,这意味着您可以在运行时添加、删除或修改规则,而无需重新加载整个防火墙配置。

2.5、连接跟踪:

Firewalld使用连接跟踪来跟踪网络连接状态。它可以自动识别和允许与现有连接相关的回复流量。

2.6、D-Bus接口

Firewalld提供了一个D-Bus接口,允许其他应用程序通过API与其交互,从而实现更高级的防火墙配置和管理。

总体而言,Firewalld提供了一种灵活而强大的方式来管理CentOS系统上的防火墙。它使管理员能够轻松配置和调整防火墙规则,以保护系统免受未经授权的访问和网络攻击。

三、如何设置规则

例子:使用Firewalld设置防火墙规则,以限制对nginx服务器8088端口的访问,只允许IP为192.168.2.100的运维服务器访问,同时对其他端口不做任何限制。

3.1、首先,确认防火墙服务已经启动并正在运行,如果服务未启动,请启动服务;

#检查防火墙状态

systemctl status firewalld

#启动防火墙服务

systemctl start firewalld

#检查是否设置开机启动

systemctl is-enabled firewalld

#设置开机启动

systemctl enable firewalld

6a6a6e4e-6069-11ee-939d-92fbcf53809c.png

3.2、新建防火墙规则的服务,添加端口的TCP访问规则;

#创建一个名为 "nginxserver" 的新服务,并设置其描述为 "nginx Service"。

firewall-cmd --permanent --new-service=nginxserver --set-description="nginx Service"

6a7bc2c0-6069-11ee-939d-92fbcf53809c.png

#将端口8088/tcp 添加到 "nginxserver" 服务的防火墙规则中。这将允许通过8088端口进行TCP通信

firewall-cmd --permanent --service=nginxserver --add-port=8088/tcp

6a8d2f56-6069-11ee-939d-92fbcf53809c.png

#重新加载防火墙配置,以使新的服务和规则生效。

firewall-cmd --reload

6aa30222-6069-11ee-939d-92fbcf53809c.png

#查询所有已定义的服务

firewall-cmd --get-services

6ab458b0-6069-11ee-939d-92fbcf53809c.png

#查询特定服务的具体信息

firewall-cmd --info-service=nginxserver

6acdc7d2-6069-11ee-939d-92fbcf53809c.png

#删除特定服务的规则

firewall-cmd --permanent --delete-service=nginx-http

firewall-cmd --reload

6ad9db12-6069-11ee-939d-92fbcf53809c.png

3.3、新建一个防火墙区域,将IP地址添加到区域的源地址列表中,将服务添加到区域的服务列表中;

#创建一个名为 "opsserver" 的新区域,并设置其描述为 "Ops Server Zone"。这将在防火墙中创建一个新的区域。

firewall-cmd --permanent --new-zone=opsserver --set-description="Ops Server Zone"

6ae5cdfa-6069-11ee-939d-92fbcf53809c.png

#将IP地址 192.168.2.100 添加到 "opsserver" 区域的源列表中。这意味着只有来自该IP地址的流量才能通过该区域。

firewall-cmd --permanent --zone=opsserver --add-source=192.168.2.100

6ae98436-6069-11ee-939d-92fbcf53809c.png

#将"nginxserver" 服务添加到 "opsserver" 区域的源列表中

firewall-cmd --permanent --zone=opsserver --add-service=nginxserver

6ae98436-6069-11ee-939d-92fbcf53809c.png

#重新加载firewalld配置,以使新的服务和规则生效。

firewall-cmd --reload

6b218e12-6069-11ee-939d-92fbcf53809c.png

#查询已定义的区域

firewall-cmd --get-zones

6b218e12-6069-11ee-939d-92fbcf53809c.png

#查询特定区域的具体信息

firewall-cmd --zone=opsserver --list-all

6b53ab86-6069-11ee-939d-92fbcf53809c.png

#删除特定区域的规则

firewall-cmd --permanent --delete-zone=

firewall-cmd --reload

#删除特定区域中的规则内容

firewall-cmd --zone=<区域名称> --remove-<规则类型>=<规则内容>

其中,将 <区域名称> 替换为要删除规则的区域名称,<规则类型> 替换为要删除的规则类型(例如rich-rule、service、port等),<规则内容> 替换为要删除的规则内容。

注意:

①确保你有足够的权限执行上述命令,否则可能需要使用 sudo

②以上命令中使用了 `--permanent` 选项,以确保规则在系统重启后仍然有效。如果您想要在不重启系统的情况下立即应用规则,请省略 `--permanent` 选项。

3.4、现在,只有来自 IP 地址为 192.168.2.100 的运维服务器的流量可以访问端口 8088,其他所有流量都将被阻止。对于其他端口,没有任何限制。

①当IP为192.168.2.100时,nginx访问正常,可以ping通,并且端口访问正常;

6b622db4-6069-11ee-939d-92fbcf53809c.png

6b6c6392-6069-11ee-939d-92fbcf53809c.png

6b7d55e4-6069-11ee-939d-92fbcf53809c.png

②当IP为192.168.2.13时,无法ping通nginx服务器,并且端口无法访问,但是其他端口不受限制,可以正常访问;

6b810bee-6069-11ee-939d-92fbcf53809c.png

6b99d764-6069-11ee-939d-92fbcf53809c.png

6bace016-6069-11ee-939d-92fbcf53809c.png

3.5、如果要设置仅可通过192.168.2.100访问nginx服务器的8088端口,而其他所有端口和IP都禁止访问,那么可以将默认的 Firewalld 区域设置为 "drop",在 "drop" 区域中,所有入站和出站的网络连接都将被丢弃,而不会给任何响应。

#将默认的防火墙区域设置为 "drop",即丢弃所有连接。

firewall-cmd --set-default-zone=drop

firewall-cmd --reload

6bc7313c-6069-11ee-939d-92fbcf53809c.png

如何需要限制其他端口和IP访问,只需要替换上面例子中的IP地址和端口号为你实际使用的值即可。

四、简单的规则设置

在上面的方法中,我们通过新建规则中的服务和区域实现对特定服务的访问控制,并根据网络环境的安全性要求来限制不同区域的访问权限。

当然,如果不需要复杂的控制也可直接在public区域中添加要限制的端口和IP地址就可以了。

4.1、检查默认的区域,如果默认的Zone不是Public,则需切换到Public Zone;

#查询默认的区域

firewall-cmd --get-default-zone

#将默认区域设置为public

firewall-cmd --set-default-zone=public

4.2、添加限制端口及IP的规则

#添加允许访问端口8088的规则,只允许IP为192.168.2.100的访问

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.2.100" port protocol="tcp" port="8088" accept'

#重新加载防火墙配置:

firewall-cmd --reload

4.3、验证规则是否生效:

firewall-cmd --list-all

通过以上步骤同样可以实现限制对端口8088的访问,只允许IP为192.168.2.100的运维服务器访问,并不对其他端口做任何限制。

五、查询防火墙配置

#查看当前生效的防火墙规则

firewall-cmd --list-all

这将显示当前活动区域的所有规则,包括允许的端口、源地址等信息。

#查看特定区域的规则

firewall-cmd --zone=--list-all

将``替换为你要查看规则的区域名称,例如`public`、`restricted`等。

#查看特定端口的规则

firewall-cmd --zone=--list-ports

将``替换为你要查看规则的区域名称。这将显示指定区域中允许的端口列表。

#查看特定服务的规则

firewall-cmd --zone=--list-services

将``替换为你要查看规则的区域名称。这将显示指定区域中允许的服务列表。

通过以上命令将显示与防火墙规则相关的信息,包括允许的端口、源地址、服务等。另外,也可以直接查看配置文件,Firewalld的配置目录为/etc/firewalld/。

六、最后要说的

因为是边学边写的这篇文章,所以内容很简陋仅有一个例子,但也希望通过这一遍文章能够让你对firewalld防火墙配置有一点点了解,如果要熟练的掌握还需要深入的学习和不断的练习,文章中如有错误请您留言指出,感谢感谢。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CMD命令
    +关注

    关注

    0

    文章

    28

    浏览量

    8306
  • CentOS
    +关注

    关注

    0

    文章

    77

    浏览量

    13742
  • TCP通信
    +关注

    关注

    0

    文章

    146

    浏览量

    4221

原文标题:Centos7如何配置firewalld防火墙规则

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux系统iptables和firewall防火墙配置方法

    防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全,目前 Linux 系统的防火墙类型主要有两种:分别是 [iptables] 和 firewalld
    发表于 07-17 10:34 1367次阅读
    Linux系统iptables和firewall<b class='flag-5'>防火墙</b>的<b class='flag-5'>配置</b>方法

    Linux系统firewalld防火墙实战指南

    本文浩道跟大家分享Linux系统firewalld防火墙硬核干货,通过对其介绍、相关概念回顾,数据包处理流程、其安装过程、其常用命令用法、其添加规则相关用法去开展,让大家在****Linux系统中的安全防范再添一块技能砖!
    发表于 10-16 16:47 797次阅读
    Linux系统<b class='flag-5'>firewalld</b><b class='flag-5'>防火墙</b>实战指南

    Linux防火墙配置方法(firewalld服务)

    红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config。执行firewall-config命令
    发表于 10-30 12:27

    发现 STM32 防火墙的安全配置

    里提供了几个不同的防火墙配置。那么问题来了,什么是STM32防火墙的应该使用的安全配置呢?本文以STM32参考手册为基础,以最大化安全为目标,来探索发现STM32
    发表于 07-27 11:04

    Centos7Nginx安装与配置步骤

    Centos7 Nginx安装与配置防火墙开启端口监听
    发表于 06-02 12:58

    请问如何自动加载iptables的防火墙规则

    系统启动后,如何自动加载iptables的防火墙规则
    发表于 01-07 08:46

    防火墙技术

    防火墙技术.ppt 防火墙及相关概念包过滤型防火墙代理服务型防火墙 防火墙配置分布
    发表于 06-16 23:41 0次下载

    防火墙配置

    实验十三、防火墙配置 一. 实验原理1.1 防火墙原理网络的主要功能是向其他通信实体提供信息传输服务。网络安全技术的主
    发表于 09-24 13:55 2154次阅读
    <b class='flag-5'>防火墙</b>的<b class='flag-5'>配置</b>

    防火墙配置--过滤规则示例

    防火墙配置--过滤规则示例
    发表于 12-07 14:16 9266次阅读
    <b class='flag-5'>防火墙</b>的<b class='flag-5'>配置</b>--过滤<b class='flag-5'>规则</b>示例

    如何配置Cisco PIX防火墙

    如何配置Cisco PIX防火墙配置PIX防火墙之前,先来介绍一下防火墙的物理特性。防火墙
    发表于 01-13 13:26 584次阅读

    Cent OS 7 上的防火墙设置教程来了

    当设置后,网站就挂了,经过多次折腾,判断就是这条红色命令的问题,后来又是在网上一通查,最终问题的 firewalld 的问题,对 firewalld 不熟悉,只好安装 CentOS 6 中通用的 iptables 查询,来设置
    的头像 发表于 05-14 14:38 9829次阅读
    Cent OS <b class='flag-5'>7</b> 上的<b class='flag-5'>防火墙</b>设置教程来了

    什么是防火墙防火墙如何工作?

    防火墙是网络与万维网之间的关守,它位于网络的入口和出口。 它评估网络流量,仅允许某些流量进出。防火墙分析网络数据包头,其中包含有关要进入或退出网络的流量的信息。然后,基于防火墙配置
    的头像 发表于 09-30 14:35 5330次阅读

    如何列出和删除防火墙规则UFW

    UFW意为简单的防火墙,是用于管理iptables/netfilter防火墙规则的用户友好的前端。
    的头像 发表于 12-06 17:52 7263次阅读

    Linux防火墙配置(iptables和firewalld)

    防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全,目前 Linux 系统的防火墙类型主要有两种:分别是 [iptables] 和 firewalld
    的头像 发表于 03-31 10:09 1044次阅读

    浅析Centos7 防火墙技术示例

    iptables防火墙由Netfilter项目开发,自2001年1月在Linux2.4内核发布以来就是Linux的一部分了。
    发表于 03-11 17:27 408次阅读
    浅析<b class='flag-5'>Centos7</b> <b class='flag-5'>防火墙</b>技术示例