Centos7如何配置firewalld防火墙规则

本文涉及的产品
云防火墙,500元 1000GB
简介: Centos7如何配置firewalld防火墙规则

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。

🍅文末获取源码下载地址🍅

👇🏻 精彩专栏推荐订阅👇🏻 欢迎点赞收藏评论拍砖........

【Docker Swarm总结】《容器技术 Docker+K8S专栏》

【uniapp+uinicloud多用户社区博客实战项目】《完整开发文档-从零到完整项目》

【Springcloud Alibaba微服务分布式架构 | Spring Cloud】《系列教程-更新完毕》

【SpringSecurity-从入门到精通】《学习完整笔记-附(完整demo源码)》

【从零开始Vue项目中使用MapboxGL开发三维地图教程】《系列教程-不定时更新》

【Vue.js学习详细课程系列】《共32节专栏收录内容》

感兴趣的可以先收藏起来相关问题都可以给我留言咨询,希望帮助更多的人。



一、简单介绍

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

3.2、新建防火墙规则

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

#创建一个名为 "nginxserver" 的新服务,并设置其描述为 "nginx Service"。
 
firewall-cmd --permanent --new-service=nginxserver --set-description="nginx Service"
#将端口8088/tcp 添加到 "nginxserver" 服务的防火墙规则中。这将允许通过8088端口进行TCP通信。
 
firewall-cmd --permanent --service=nginxserver --add-port=8088/tcp
#重新加载防火墙配置,以使新的服务和规则生效。
 
firewall-cmd --reload
#查询所有已定义的服务
 
firewall-cmd --get-services
#查询特定服务的具体信息
 
firewall-cmd --info-service=nginxserver
#删除特定服务的规则
 
firewall-cmd --permanent --delete-service=nginx-http
 
firewall-cmd --reload

3.3、新建防火墙区域

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

#创建一个名为 "opsserver" 的新区域,并设置其描述为 "Ops Server Zone"。这将在防火墙中创建一个新的区域。
 
firewall-cmd --permanent --new-zone=opsserver --set-description="Ops Server Zone"
#将IP地址 192.168.2.100 添加到 "opsserver" 区域的源列表中。这意味着只有来自该IP地址的流量才能通过该区域。
 
firewall-cmd --permanent --zone=opsserver --add-source=192.168.2.100
#将"nginxserver" 服务添加到 "opsserver" 区域的源列表中
 
firewall-cmd --permanent --zone=opsserver --add-service=nginxserver
#重新加载firewalld配置,以使新的服务和规则生效。
 
firewall-cmd --reload
#查询已定义的区域
 
firewall-cmd --get-zones
#查询特定区域的具体信息
 
firewall-cmd --zone=opsserver --list-all

#删除特定区域的规则
 
firewall-cmd --permanent --delete-zone=
 
firewall-cmd --reload
#删除特定区域中的规则内容
 
firewall-cmd --zone=<区域名称> --remove-<规则类型>=<规则内容>

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

注意:

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

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

3.4、检验1

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

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

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

3.5、检验2

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

#将默认的防火墙区域设置为 "drop",即丢弃所有连接。
 
firewall-cmd --set-default-zone=drop
 
firewall-cmd --reload

如何需要限制其他端口和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/。

目录
相关文章
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
615 87
|
1月前
|
网络协议 Linux 网络安全
CentOS防火墙管理:查询与配置开放端口的技巧
遵循以上步骤,CentOS系统管理员能够灵活地查询和管理系统端口的开放情况,并且能适用于大多数防火墙管理场合。务必在改变防火墙规则后认真审核和测试,以确保网络安全性与服务的正常运行。
352 0
|
2月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
137 16
|
2月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
364 9
|
4月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
1277 29
|
4月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
161 5
|
5月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1442 26
|
5月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
218 10
|
安全 Linux 应用服务中间件
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?